diff --git a/.github/.wordlist.txt b/.github/.wordlist.txt
index 09443babc81..32419a0dc31 100644
--- a/.github/.wordlist.txt
+++ b/.github/.wordlist.txt
@@ -910,6 +910,7 @@ mcumgr
MCUs
mcux
MCUXpresso
+MCXW
mdash
MDNS
MediaInput
diff --git a/.github/workflows/check-data-model-directory-updates.yaml b/.github/workflows/check-data-model-directory-updates.yaml
index ecd7745516b..0c791bebd0d 100644
--- a/.github/workflows/check-data-model-directory-updates.yaml
+++ b/.github/workflows/check-data-model-directory-updates.yaml
@@ -45,11 +45,6 @@ jobs:
run: |
scripts/run_in_build_env.sh './scripts/build_python.sh --install_virtual_env out/venv --enable_ble false --extra_packages lxml'
- - name: Check for changes to master data_model directory without a SHA update
- if: (!contains(github.event.pull_request.labels.*.name, 'data-model-file-structural-change-dm-tt-use-only'))
- run: |
- scripts/run_in_python_env.sh out/venv 'python3 scripts/dm_xml_ci_change_enforcement.py data_model/master'
-
- name: Check for changes to 1.3 data_model directory without a SHA update
if: (!contains(github.event.pull_request.labels.*.name, 'data-model-file-structural-change-dm-tt-use-only'))
run: |
diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml
index fb5906a4b7c..2f5067064d6 100644
--- a/.github/workflows/examples-linux-arm.yaml
+++ b/.github/workflows/examples-linux-arm.yaml
@@ -38,7 +38,7 @@ jobs:
if: github.actor != 'restyled-io[bot]'
container:
- image: ghcr.io/project-chip/chip-build-crosscompile:174
+ image: ghcr.io/project-chip/chip-build-crosscompile:182
steps:
- name: Checkout
diff --git a/.github/workflows/examples-linux-standalone.yaml b/.github/workflows/examples-linux-standalone.yaml
index cdd98289243..aae9ea4d2a9 100644
--- a/.github/workflows/examples-linux-standalone.yaml
+++ b/.github/workflows/examples-linux-standalone.yaml
@@ -38,7 +38,7 @@ jobs:
if: github.actor != 'restyled-io[bot]'
container:
- image: ghcr.io/project-chip/chip-build:174
+ image: ghcr.io/project-chip/chip-build:182
steps:
- name: Checkout
diff --git a/.github/workflows/examples-nxp.yaml b/.github/workflows/examples-nxp.yaml
index c9980da1c69..0e98e4fcdcb 100644
--- a/.github/workflows/examples-nxp.yaml
+++ b/.github/workflows/examples-nxp.yaml
@@ -43,7 +43,7 @@ jobs:
if: github.actor != 'restyled-io[bot]'
container:
- image: ghcr.io/project-chip/chip-build-nxp:174
+ image: ghcr.io/project-chip/chip-build-nxp:176
volumes:
- "/tmp/bloat_reports:/tmp/bloat_reports"
steps:
@@ -73,21 +73,21 @@ jobs:
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
- --target nxp-mcxw71-freertos-contact-sensor-thread-mtd-low-power-cmake-frdm \
+ --target nxp-mcxw71-freertos-contact-sensor-thread-mtd-low-power-frdm-ota-factory \
build \
"
- name: Get MCXW71 contact sensor size stats
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
nxp mcxw71+release contact \
- out/nxp-mcxw71-freertos-contact-sensor-thread-mtd-low-power-cmake-frdm/app.elf \
+ out/nxp-mcxw71-freertos-contact-sensor-thread-mtd-low-power-frdm-ota-factory/app.elf \
/tmp/bloat_reports/
- name: Build MCXW72 examples
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
- --target nxp-mcxw72-freertos-contact-sensor-thread-mtd-low-power-cmake-frdm \
+ --target nxp-mcxw72-freertos-contact-sensor-thread-mtd-low-power-frdm-ota-factory \
build \
"
@@ -101,7 +101,7 @@ jobs:
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
- --target nxp-rt1060-freertos-thermostat-thread-wifi-ota-evkc-iwx12-cmake \
+ --target nxp-rt1060-freertos-thermostat-thread-wifi-ota-evkc-iwx12 \
build \
"
@@ -115,7 +115,7 @@ jobs:
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
- --target nxp-rt1170-freertos-thermostat-thread-wifi-ota-iwx12-cmake \
+ --target nxp-rt1170-freertos-thermostat-thread-wifi-ota-iwx12 \
build \
"
@@ -126,15 +126,15 @@ jobs:
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
- --target nxp-rw61x-freertos-thermostat-thread-wifi-ota-factory-cmake \
- --target nxp-rw61x-freertos-thermostat-wifi-se05x-cmake \
+ --target nxp-rw61x-freertos-thermostat-thread-wifi-ota-factory \
+ --target nxp-rw61x-freertos-thermostat-wifi-se05x \
build \
"
- name: Build RW61X thermostat ethernet example app
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
- --target nxp-rw61x-freertos-thermostat-ethernet-cmake-frdm \
+ --target nxp-rw61x-freertos-thermostat-ethernet-frdm \
build \
"
@@ -153,7 +153,7 @@ jobs:
if: github.actor != 'restyled-io[bot]'
container:
- image: ghcr.io/project-chip/chip-build-nxp-zephyr:174
+ image: ghcr.io/project-chip/chip-build-nxp-zephyr:176
steps:
- name: Checkout
diff --git a/.github/workflows/java-tests.yaml b/.github/workflows/java-tests.yaml
index c06288f6838..62e1f2303eb 100644
--- a/.github/workflows/java-tests.yaml
+++ b/.github/workflows/java-tests.yaml
@@ -44,7 +44,7 @@ jobs:
runs-on: ubuntu-latest
container:
- image: ghcr.io/project-chip/chip-build-java:174
+ image: ghcr.io/project-chip/chip-build-java:182
options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0
net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0"
diff --git a/.github/workflows/kotlin-style.yaml b/.github/workflows/kotlin-style.yaml
index e281d1176d9..d55b050082c 100644
--- a/.github/workflows/kotlin-style.yaml
+++ b/.github/workflows/kotlin-style.yaml
@@ -13,8 +13,11 @@ concurrency:
jobs:
+
+ # This test is currently disabled due to Issue #41932
detekt:
name: Static code analysis
+ if: false
runs-on: ubuntu-latest
steps:
diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index 890b0aedca1..70bc3924759 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -63,6 +63,9 @@ jobs:
container:
image: ghcr.io/project-chip/chip-build:174
+ volumes:
+ - "/:/runner-root-volume"
+ - "/tmp/log_output:/tmp/test_logs"
options: >-
--privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0
net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1"
@@ -596,7 +599,7 @@ jobs:
runs-on: ubuntu-latest
container:
- image: ghcr.io/project-chip/chip-build:174
+ image: ghcr.io/project-chip/chip-build:182
options: >-
--privileged
--sysctl net.ipv6.conf.all.disable_ipv6=0
diff --git a/.gitmodules b/.gitmodules
index 07cd7d41d23..4028d75f16e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -10,6 +10,7 @@
path = third_party/mbedtls/repo
url = https://github.com/ARMmbed/mbedtls.git
branch = mbedtls-2.28
+ excluded-platforms = esp32
[submodule "qrcode"]
path = examples/common/QRCode/repo
url = https://github.com/nayuki/QR-Code-generator.git
@@ -50,7 +51,7 @@
path = third_party/freertos/repo
url = https://github.com/FreeRTOS/FreeRTOS-Kernel.git
branch = V10.3.1-kernel-only
- platforms = ameba,cc13xx_26xx,bouffalolab,esp32,infineon,qpg,cc32xx,realtek
+ platforms = ameba,cc13xx_26xx,bouffalolab,infineon,qpg,cc32xx,realtek
[submodule "simw-top-mini"]
path = third_party/simw-top-mini/repo
url = https://github.com/NXP/plug-and-trust.git
@@ -204,6 +205,7 @@
path = third_party/boringssl/repo/src
url = https://github.com/google/boringssl.git
branch = master
+ excluded-platforms = esp32
[submodule "third_party/mt793x_sdk/filogic"]
path = third_party/mt793x_sdk/filogic
url = https://github.com/MediaTek-Labs/genio-matter-bsp.git
@@ -300,7 +302,7 @@
[submodule "third_party/lwip/repo"]
path = third_party/lwip/repo
url = https://github.com/lwip-tcpip/lwip.git
- excluded-platforms = darwin
+ excluded-platforms = darwin,esp32
[submodule "third_party/abseil-cpp/src"]
path = third_party/abseil-cpp/src
url = https://github.com/abseil/abseil-cpp.git
@@ -326,6 +328,7 @@
[submodule "third_party/libtrustymatter/repo"]
path = third_party/libtrustymatter/repo
url = https://github.com/nxp-imx/libtrustymatter
+ platforms = nxp
[submodule "third_party/amazon-kinesis-video-streams-webrtc-sdk-c/repo"]
path = third_party/amazon-kinesis-video-streams-webrtc-sdk-c/repo
url = https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c
diff --git a/config/esp32/args.gni b/config/esp32/args.gni
index 33de39cfc51..25060a328f2 100644
--- a/config/esp32/args.gni
+++ b/config/esp32/args.gni
@@ -26,7 +26,6 @@ lwip_platform = "external"
#Enabling this causes some error
#chip_inet_config_enable_tun_endpoint = false
-chip_inet_config_enable_tcp_endpoint = false
chip_inet_config_enable_udp_endpoint = true
chip_config_memory_management = "platform"
diff --git a/config/esp32/components/chip/CMakeLists.txt b/config/esp32/components/chip/CMakeLists.txt
index 5fefa91d891..eaa248de1c1 100644
--- a/config/esp32/components/chip/CMakeLists.txt
+++ b/config/esp32/components/chip/CMakeLists.txt
@@ -121,6 +121,12 @@ if(CONFIG_DISABLE_IPV4)
endif()
endif()
+if(CONFIG_ENABLE_TCP_TRANSPORT)
+ chip_gn_arg_append("chip_inet_config_enable_tcp_endpoint" "true")
+else()
+ chip_gn_arg_append("chip_inet_config_enable_tcp_endpoint" "false")
+endif()
+
if(CONFIG_DISABLE_READ_CLIENT)
chip_gn_arg_append("chip_enable_read_client" "false")
endif()
@@ -135,7 +141,15 @@ if(CONFIG_ENABLE_ICD_SERVER)
chip_gn_arg_append("chip_icd_report_on_active_mode" "true")
endif()
if(CONFIG_ENABLE_ICD_LIT)
- chip_gn_arg_append("chip_enable_icd_lit" "true")
+ chip_gn_arg_append("chip_enable_icd_lit" "true")
+ chip_gn_arg_append("chip_enable_icd_checkin" "true")
+ chip_gn_arg_append("chip_enable_icd_user_active_mode_trigger" "true")
+ if (CONFIG_ENABLE_ICD_DSLS)
+ chip_gn_arg_append("chip_enable_icd_dsls" "true")
+ else()
+ chip_gn_arg_append("chip_enable_icd_dsls" "false")
+ endif()
+ else()
if(CONFIG_ENABLE_ICD_CIP)
chip_gn_arg_append("chip_enable_icd_checkin" "true")
else()
diff --git a/config/esp32/components/chip/Kconfig b/config/esp32/components/chip/Kconfig
index 5d8f7f2e734..b266a0f75a1 100644
--- a/config/esp32/components/chip/Kconfig
+++ b/config/esp32/components/chip/Kconfig
@@ -32,7 +32,7 @@ menu "CHIP Core"
default 8
help
The maximum number of simultaneously active CHIP exchange contexts.
-
+
An exchange context object is used to track the state of an ongoing CHIP message
exchange (conversation) with a peer, e.g. a cloud service, a mobile application, or
another device.
@@ -257,6 +257,14 @@ menu "CHIP Core"
Here, we are also enabling LWIP_CHECK_THREAD_SAFETY which will assert when
LwIP code gets called from any other context or without holding the LwIP lock.
+ config USE_LWIP_PBUF_RAM_PACKETBUFFER
+ bool "Use lwIP PBUF_RAM type for CHIP packet buffer"
+ default n
+ help
+ Enable this option to use lwIP PBUF_RAM type for CHIP packet buffer. Configure via
+ MAX_LARGE_BUFFER_SIZE_BYTES to support larger packets exceeding IPv6 MTU.
+ If not enabled, CHIP will use lwIP PBUF_POOL type for packet buffer.
+
endmenu # "Networking Options"
menu "System Options"
@@ -285,8 +293,8 @@ menu "CHIP Core"
depends on ENABLE_OTA_REQUESTOR
default n
help
- Enable this option for delta OTA image updates.
- Delta OTA updates allow for smaller, more efficient updates by only
+ Enable this option for delta OTA image updates.
+ Delta OTA updates allow for smaller, more efficient updates by only
sending the changes between the current and new firmware versions.
config OTA_AUTO_REBOOT_ON_APPLY
@@ -447,12 +455,22 @@ menu "CHIP Device Layer"
bool "Enable Long Idle Time ICD"
depends on ENABLE_ICD_SERVER
default n
+ select ENABLE_ICD_CIP
+ select ENABLE_ICD_USER_ACTIVE_MODE_TRIGGER
help
Enables or Disables LIT ICD
+ config ENABLE_ICD_DSLS
+ bool "Enable Dynamic SIT LIT Support"
+ depends on ENABLE_ICD_LIT
+ default y
+ help
+ Enables or Disables dynamic switching from SIT to LIT operating modes.
+
+
config ENABLE_ICD_CIP
bool "Enable Check-in protocol"
- depends on ENABLE_ICD_LIT
+ depends on ENABLE_ICD_SERVER
default y
help
Enables or Disables ICD Check-in protocol
@@ -480,12 +498,12 @@ menu "CHIP Device Layer"
config ENABLE_ICD_USER_ACTIVE_MODE_TRIGGER
bool "Enable User Active Mode Trigger feature"
- depends on ENABLE_ICD_LIT
+ depends on ENABLE_ICD_SERVER
default y
help
Enables or Disables ICD User Active Mode Trigger feature
- config ENABLE_BG_EVENT_PROCESSING
+ menuconfig ENABLE_BG_EVENT_PROCESSING
bool "Enable Background event processing"
default n
help
@@ -1214,6 +1232,23 @@ menu "CHIP Device Layer"
endmenu
+ menu "Matter TCP transport options"
+ config ENABLE_TCP_TRANSPORT
+ bool "Enable TCP transport"
+ select USE_LWIP_PBUF_RAM_PACKETBUFFER
+ default n
+ help
+ Enable TCP transport. If enabled, USE_LWIP_PBUF_RAM_PACKETBUFFER must be configured.
+
+ config MAX_LARGE_BUFFER_SIZE_BYTES
+ int "Max buffer size for TCP payloads"
+ depends on ENABLE_TCP_TRANSPORT
+ default 1530
+ help
+ Max TCP payload buffer size.
+
+ endmenu
+
menu "Network Commissioning Driver Endpoint Id"
config THREAD_NETWORK_COMMISSIONING_DRIVER
bool "Use the generic Thread network commissioning driver"
diff --git a/config/nrfconnect/chip-module/Kconfig b/config/nrfconnect/chip-module/Kconfig
index 6b0a9b1c3b4..a045d211055 100644
--- a/config/nrfconnect/chip-module/Kconfig
+++ b/config/nrfconnect/chip-module/Kconfig
@@ -96,24 +96,6 @@ config CHIP_OTA_REQUESTOR
imply STREAM_FLASH
imply STREAM_FLASH_ERASE
-config CHIP_OTA_REQUESTOR_BUFFER_SIZE
- int "OTA Requestor image buffer size"
- default 1024
- depends on CHIP_OTA_REQUESTOR
- help
- Configures the size of the buffer used by OTA Requestor when downloading
- and writing a new firmware image to flash.
-
-config CHIP_OTA_REQUESTOR_REBOOT_ON_APPLY
- bool "Auto-reboot when firmware update is applied"
- default y
- depends on CHIP_OTA_REQUESTOR
- imply REBOOT
- help
- Reboots the device automatically after downloading a new firmware update
- to swap the old and the new firmware images. The reboot happens only when
- a user consents to apply the firmware update.
-
config CHIP_EXAMPLE_DEVICE_INFO_PROVIDER
bool "Include default device information provider build"
default y
@@ -300,14 +282,6 @@ config CHIP_FACTORY_RESET_ERASE_SETTINGS
default y
depends on NVS || ZMS
-config CHIP_LOG_SIZE_OPTIMIZATION
- bool "Disable some detailed logs to decrease flash usage"
- help
- Disables some log levels for specific Matter log modules that provide
- information that is too detailed to be used in most cases. You can find
- full configuration enabled by this option in the
- platform/nrfconnect/CHIPPlatformConfig.h file.
-
config CHIP_IPV4
bool "IPv4 support for Matter"
default n
diff --git a/config/nxp/README.md b/config/nxp/README.md
index 1d41618ba81..e5663d1bf22 100644
--- a/config/nxp/README.md
+++ b/config/nxp/README.md
@@ -6,7 +6,7 @@ structured as follows :
| File/Folder | Contents |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| chip-gn | GN project used to build selected CHIP libraries with the _nxp_zephyr_ platform integration layer |
+| chip-gn | GN project used to build selected CHIP libraries with the _zephyr_ platform integration layer |
| chip-module | CMake wrapper for the GN project defined in `chip-gn` directory, and other components that allow one to use CHIP as a Zephyr module |
| app | Common and optional Kconfig configuration files that can be used in NXP Zephyr applications |
| chip-gn-freertos | GN project used to build selected CHIP libraries with the NXP FreeRTOS platform integration layer |
diff --git a/config/nxp/chip-gn/BUILD.gn b/config/nxp/chip-gn/BUILD.gn
index b7e1aa60256..902ca7c5cab 100644
--- a/config/nxp/chip-gn/BUILD.gn
+++ b/config/nxp/chip-gn/BUILD.gn
@@ -23,7 +23,7 @@ declare_args() {
chip_build_example_providers = false
}
-group("nxp_zephyr") {
+group("zephyr") {
deps = [ "${chip_root}/src/lib" ]
if (chip_build_tests) {
@@ -36,5 +36,5 @@ group("nxp_zephyr") {
}
group("default") {
- deps = [ ":nxp_zephyr" ]
+ deps = [ ":zephyr" ]
}
diff --git a/config/nxp/chip-gn/args.gni b/config/nxp/chip-gn/args.gni
index 702e9537b4b..bd0f171cf98 100644
--- a/config/nxp/chip-gn/args.gni
+++ b/config/nxp/chip-gn/args.gni
@@ -16,7 +16,7 @@ import("//build_overrides/chip.gni")
import("${chip_root}/src/crypto/crypto.gni")
-chip_device_platform = "nxp_zephyr"
+chip_device_platform = "zephyr"
chip_build_tests = false
diff --git a/config/nxp/chip-module/CMakeLists.txt b/config/nxp/chip-module/CMakeLists.txt
index 4371efc9d69..c21c57962e1 100644
--- a/config/nxp/chip-module/CMakeLists.txt
+++ b/config/nxp/chip-module/CMakeLists.txt
@@ -17,7 +17,7 @@
#
# @file
# CMake sub-project defining 'chip' target which represents CHIP library
-# and other optional libraries like unit tests, built with 'nxp_zephyr'
+# and other optional libraries like unit tests, built with 'zephyr'
# platform.
# Since CHIP doesn't provide native CMake support, ExternalProject
# module is used to build the required artifacts with GN meta-build
@@ -106,10 +106,7 @@ matter_add_gn_arg_string("zephyr_ar" ${CMAKE_AR})
matter_add_gn_arg_string("zephyr_cc" ${CMAKE_C_COMPILER})
matter_add_gn_arg_string("zephyr_cxx" ${CMAKE_CXX_COMPILER})
-if (CONFIG_CHIP_FACTORY_DATA)
- matter_add_gn_arg_bool("chip_use_transitional_commissionable_data_provider" FALSE)
- matter_add_gn_arg_bool("chip_enable_factory_data" TRUE)
-elseif (CONFIG_CHIP_FACTORY_DATA_CUSTOM_BACKEND)
+if (CONFIG_CHIP_FACTORY_DATA OR CONFIG_CHIP_FACTORY_DATA_CUSTOM_BACKEND)
matter_add_gn_arg_bool("chip_use_transitional_commissionable_data_provider" FALSE)
endif()
diff --git a/config/nxp/chip-module/Kconfig b/config/nxp/chip-module/Kconfig
index 022f6d441b0..685d8267929 100644
--- a/config/nxp/chip-module/Kconfig
+++ b/config/nxp/chip-module/Kconfig
@@ -203,14 +203,6 @@ config CHIP_FACTORY_RESET_ERASE_SETTINGS
endif
-config CHIP_LOG_SIZE_OPTIMIZATION
- bool "Disable some detailed logs to decrease flash usage"
- help
- Disables some log levels for specific Matter log modules that provide
- information that is too detailed to be used in most cases. You can find
- full configuration enabled by this option in the
- platform/nxp/CHIPPlatformConfig.h file.
-
config CHIP_IPV4
bool "IPv4 support for Matter"
default n
@@ -229,41 +221,3 @@ config BOOTLOADER_MCUBOOT
select IMG_MANAGER
select STREAM_FLASH
select STREAM_FLASH_ERASE
-
-config CHIP_OTA_REQUESTOR_BUFFER_SIZE
- int "OTA Requestor image buffer size"
- default 256
- depends on CHIP_OTA_REQUESTOR
- help
- Configures the size of the buffer used by OTA Requestor when downloading
- and writing a new firmware image to flash.
-
-config CHIP_OTA_REQUESTOR_REBOOT_ON_APPLY
- bool "Auto-reboot when firmware update is applied"
- default y
- depends on CHIP_OTA_REQUESTOR
- imply REBOOT
- help
- Reboots the device automatically after downloading a new firmware update
- to swap the old and the new firmware images. The reboot happens only when
- a user consents to apply the firmware update.
-
-choice CHIP_OTA_REQUEST_UPGRADE_TYPE
- prompt "Type of the upgrade to apply on new images"
- default CHIP_OTA_REQUEST_UPGRADE_TEST
- depends on CHIP_OTA_REQUESTOR
-
- config CHIP_OTA_REQUEST_UPGRADE_PERMANENT
- bool "Mark the image as permanent"
- help
- The upgrade will be permanent on the next reboot.
- No coming back to the old image.
-
- config CHIP_OTA_REQUEST_UPGRADE_TEST
- bool "Mark the image as a test"
- help
- The upgrade will be marked as a test.
- Image will be run on the next reboot, if confirmed it
- becomes permanent, otherwise the new image is reverted.
-
-endchoice
diff --git a/config/nxp/chip-module/Kconfig.defaults b/config/nxp/chip-module/Kconfig.defaults
index b229b253575..b86b78ec3d9 100644
--- a/config/nxp/chip-module/Kconfig.defaults
+++ b/config/nxp/chip-module/Kconfig.defaults
@@ -23,6 +23,29 @@ if CHIP
config CHIP_OPERATIONAL_TIME_SAVE_INTERVAL
default 1
+config CHIP_ENABLE_WIFI_STATION
+ default y if CHIP_WIFI
+
+config CHIP_SYSTEM_THREAD_LOCAL_STORAGE
+ default n
+
+config CHIP_SYSTEM_USE_ZEPHYR_SOCKET_EXTENSIONS
+ default n
+
+config CHIP_TASK_PRIORITY
+ default 5
+
+config MAX_EVENT_QUEUE_SIZE
+ default 64
+
+config CHIP_MRP_LOCAL_ACTIVE_RETRY_INTERVAL
+ default 800 if NET_L2_OPENTHREAD
+ default 2000
+
+config CHIP_MRP_LOCAL_IDLE_RETRY_INTERVAL
+ default 800 if NET_L2_OPENTHREAD
+ default 2000
+
if CHIP_FACTORY_DATA
config CHIP_DEVICE_VENDOR_ID
@@ -226,6 +249,13 @@ config HCI_NXP_ENABLE_AUTO_SLEEP
config CHIP_OTA_REQUESTOR
default n
+if CHIP_OTA_REQUESTOR
+
+config CHIP_OTA_REQUESTOR_BUFFER_SIZE
+ default 256
+
+endif # CHIP_OTA_REQUESTOR
+
config CHIP_DEVICE_SOFTWARE_VERSION
default 1
diff --git a/config/nxp/cmake/Kconfig.matter.common b/config/nxp/cmake/Kconfig.matter.common
index 6e8d3c9fce1..f18ef24eaeb 100644
--- a/config/nxp/cmake/Kconfig.matter.common
+++ b/config/nxp/cmake/Kconfig.matter.common
@@ -352,13 +352,6 @@ config CHIP_ICD_IDLE_MODE_DURATION
It determines the maximum amount of time the device can stay in the idle mode, which means the
device may be unreachable and not able to receive messages.
-config CHIP_ICD_IDLE_MODE_INTERVAL_MS
- int "Intermittently Connected Device idle mode interval (ms)"
- default 2000
- help
- Provides the ICD idle mode interval in milliseconds.
-
-
config CHIP_ICD_ACTIVE_MODE_DURATION
int "Intermittently Connected Device active mode duration (ms)"
default 10000
@@ -366,12 +359,6 @@ config CHIP_ICD_ACTIVE_MODE_DURATION
Provides the Intermittently Connected Device active mode duration in milliseconds.
It determines the minimum amount of time the device shall stay in the active mode.
-config CHIP_ICD_ACTIVE_MODE_INTERVAL_MS
- int "Intermittently Connected Device active mode interval (ms)"
- default 500
- help
- Provides the ICD active mode interval in milliseconds.
-
config CHIP_ICD_ACTIVE_MODE_THRESHOLD
int "Intermittently Connected Device active mode threshold (ms)"
default 5000
diff --git a/config/silabs/Kconfig b/config/silabs/Kconfig
index 23caeeb1ab0..632902fa500 100644
--- a/config/silabs/Kconfig
+++ b/config/silabs/Kconfig
@@ -35,24 +35,6 @@ config CHIP_OTA_REQUESTOR
imply STREAM_FLASH
imply STREAM_FLASH_ERASE
-config CHIP_OTA_REQUESTOR_BUFFER_SIZE
- int "OTA Requestor image buffer size"
- default 1024
- depends on CHIP_OTA_REQUESTOR
- help
- Configures the size of the buffer used by OTA Requestor when downloading
- and writing a new firmware image to flash.
-
-config CHIP_OTA_REQUESTOR_REBOOT_ON_APPLY
- bool "Auto-reboot when firmware update is applied"
- default y
- depends on CHIP_OTA_REQUESTOR
- imply REBOOT
- help
- Reboots the device automatically after downloading a new firmware update
- to swap the old and the new firmware images. The reboot happens only when
- a user consents to apply the firmware update.
-
config CHIP_OTA_IMAGE_BUILD
bool
default y if CHIP_OTA_REQUESTOR
@@ -213,14 +195,6 @@ config CHIP_FACTORY_RESET_ERASE_SETTINGS
default y
depends on NVS || ZMS
-config CHIP_LOG_SIZE_OPTIMIZATION
- bool "Disable some detailed logs to decrease flash usage"
- help
- Disables some log levels for specific Matter log modules that provide
- information that is too detailed to be used in most cases. You can find
- full configuration enabled by this option in the
- platform/silabs/CHIPPlatformConfig.h file.
-
config CHIP_OPENTHREAD_JOINER_ENABLED
bool "Specify whether the Thread Joiner functionality is used when it is enabled"
default n
diff --git a/config/telink/chip-module/Kconfig b/config/telink/chip-module/Kconfig
index 6cd2496c1c7..aceb5dd6326 100644
--- a/config/telink/chip-module/Kconfig
+++ b/config/telink/chip-module/Kconfig
@@ -56,24 +56,6 @@ config BOOTLOADER_MCUBOOT
select STREAM_FLASH_ERASE
select TELINK_W91_N22_MATTER_OTA_LAYOUT if BOARD_TLSR9118BDK40D || BOARD_TLSR9118BDK40D_V1
-config CHIP_OTA_REQUESTOR_BUFFER_SIZE
- int "OTA Requestor image buffer size"
- default 256
- depends on CHIP_OTA_REQUESTOR
- help
- Configures the size of the buffer used by OTA Requestor when downloading
- and writing a new firmware image to flash.
-
-config CHIP_OTA_REQUESTOR_REBOOT_ON_APPLY
- bool "Auto-reboot when firmware update is applied"
- default y
- depends on CHIP_OTA_REQUESTOR
- imply REBOOT
- help
- Reboots the device automatically after downloading a new firmware update
- to swap the old and the new firmware images. The reboot happens only when
- a user consents to apply the firmware update.
-
# See config/zephyr/Kconfig for full definition
config CHIP_OTA_IMAGE_BUILD
bool
@@ -196,14 +178,6 @@ config CHIP_FACTORY_RESET_ERASE_SETTINGS
endif
-config CHIP_LOG_SIZE_OPTIMIZATION
- bool "Disable some detailed logs to decrease flash usage"
- help
- Disables some log levels for specific Matter log modules that provide
- information that is too detailed to be used in most cases. You can find
- full configuration enabled by this option in the
- platform/telink/CHIPPlatformConfig.h file.
-
config CHIP_IPV4
bool "IPv4 support for Matter"
default n
diff --git a/config/telink/chip-module/Kconfig.defaults b/config/telink/chip-module/Kconfig.defaults
index 273ccfa5ebd..dd656d6360c 100644
--- a/config/telink/chip-module/Kconfig.defaults
+++ b/config/telink/chip-module/Kconfig.defaults
@@ -244,6 +244,13 @@ config RISCV_MTVEC_VECTORED_MODE
config CHIP_OTA_REQUESTOR
default y
+if CHIP_OTA_REQUESTOR
+
+config CHIP_OTA_REQUESTOR_BUFFER_SIZE
+ default 256
+
+endif # CHIP_OTA_REQUESTOR
+
config MCUBOOT_SIGNATURE_KEY_FILE
default "bootloader/mcuboot/root-ec-p256.pem" if BOARD_TLSR9118BDK40D || BOARD_TLSR9118BDK40D_V1
depends on BOOTLOADER_MCUBOOT
diff --git a/config/zephyr/Kconfig b/config/zephyr/Kconfig
index 583ed9d0044..c5a17c04d0f 100644
--- a/config/zephyr/Kconfig
+++ b/config/zephyr/Kconfig
@@ -50,6 +50,14 @@ config CHIP_APP_LOG_LEVEL
option only within the application. To set the logging level for the
Matter stack, use the MATTER_LOG_LEVEL configuration option.
+config CHIP_LOG_SIZE_OPTIMIZATION
+ bool "Disable some detailed logs to decrease flash usage"
+ help
+ Disables some log levels for specific Matter log modules that provide
+ information that is too detailed to be used in most cases. You can find
+ full configuration enabled by this option in the
+ platform CHIPPlatformConfig.h file.
+
# Device and firmware identifers
config CHIP_DEVICE_VENDOR_ID
@@ -245,6 +253,44 @@ config CHIP_OTA_REQUESTOR
Device Firmware Upgrade by quering and downloading a new firmware image
from a peer OTA Provider node.
+config CHIP_OTA_REQUESTOR_BUFFER_SIZE
+ int "OTA Requestor image buffer size"
+ default 1024
+ depends on CHIP_OTA_REQUESTOR
+ help
+ Configures the size of the buffer used by OTA Requestor when downloading
+ and writing a new firmware image to flash.
+
+config CHIP_OTA_REQUESTOR_REBOOT_ON_APPLY
+ bool "Auto-reboot when firmware update is applied"
+ default y
+ depends on CHIP_OTA_REQUESTOR
+ imply REBOOT
+ help
+ Reboots the device automatically after downloading a new firmware update
+ to swap the old and the new firmware images. The reboot happens only when
+ a user consents to apply the firmware update.
+
+choice CHIP_OTA_REQUEST_UPGRADE_TYPE
+ prompt "Type of the upgrade to apply on new images"
+ default CHIP_OTA_REQUEST_UPGRADE_TEST
+ depends on CHIP_OTA_REQUESTOR
+
+ config CHIP_OTA_REQUEST_UPGRADE_PERMANENT
+ bool "Mark the image as permanent"
+ help
+ The upgrade will be permanent on the next reboot.
+ No coming back to the old image.
+
+ config CHIP_OTA_REQUEST_UPGRADE_TEST
+ bool "Mark the image as a test"
+ help
+ The upgrade will be marked as a test.
+ Image will be run on the next reboot, if confirmed it
+ becomes permanent, otherwise the new image is reverted.
+
+endchoice
+
config CHIP_ROTATING_DEVICE_ID
bool "Generate rotating device ID"
help
@@ -460,6 +506,22 @@ config CHIP_OPENTHREAD_CONFIG
is specified, it replaces the OpenThread configuration file supplied by
Zephyr.
+# Wi-Fi network features
+
+config CHIP_ENABLE_WIFI_STATION
+ bool "Enable Wi-Fi Station mode"
+ depends on WIFI
+ help
+ Enable Wi-Fi station (client) mode for Matter-over-Wi-Fi devices.
+ This allows the device to connect to an existing Wi-Fi network.
+
+config CHIP_ENABLE_WIFI_AP
+ bool "Enable Wi-Fi Access Point mode"
+ depends on WIFI
+ help
+ Enable Wi-Fi Access Point mode for SoftAP commissioning.
+ This allows the device to create its own Wi-Fi network for onboarding.
+
# Platform additions and configuration
config CHIP_CERTIFICATION_DECLARATION_STORAGE
@@ -527,6 +589,52 @@ config CHIP_MALLOC_SYS_HEAP_WATERMARKS_SUPPORT
endif
+config CHIP_SYSTEM_THREAD_LOCAL_STORAGE
+ bool "Enable thread-local storage for Matter System Layer"
+ default y
+ help
+ Enable use of thread-local storage (TLS) in the Matter System Layer.
+
+config CHIP_SYSTEM_USE_ZEPHYR_SOCKET_EXTENSIONS
+ bool "Use Zephyr socket extensions in Matter System Layer"
+ default y
+ help
+ Enables the use of Zephyr socket extensions in the Matter System Layer
+ socket implementation.
+
+config CHIP_TASK_PRIORITY
+ int "Matter task priority"
+ default 1
+ help
+ Set the Zephyr thread priority for the Matter main task (CHIP event loop).
+ This value is passed to K_PRIO_PREEMPT(). Lower values mean higher priority.
+
+config CHIP_TASK_STACK_SIZE
+ int "Matter task stack size"
+ default 8192
+ help
+ Set the stack size (in bytes) for the Matter main task (CHIP event loop).
+
+config MAX_EVENT_QUEUE_SIZE
+ int "Maximum Matter event queue size"
+ default 100
+ help
+ Set the maximum number of events that can be queued in the Matter event loop.
+
+config CHIP_MRP_LOCAL_ACTIVE_RETRY_INTERVAL
+ int "MRP Local Active Retry Interval (ms)"
+ default 2000 if NET_L2_OPENTHREAD
+ default 300
+ help
+ Sets the local active retry interval (in milliseconds) for Matter Message Reliability Protocol (MRP).
+
+config CHIP_MRP_LOCAL_IDLE_RETRY_INTERVAL
+ int "MRP Local Idle Retry Interval (ms)"
+ default 2000 if NET_L2_OPENTHREAD
+ default 500
+ help
+ Sets the local idle retry interval (in milliseconds) for Matter Message Reliability Protocol (MRP).
+
module = MATTER
module-str = Matter
source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"
diff --git a/config/zephyr/chip-module/CMakeLists.txt b/config/zephyr/chip-module/CMakeLists.txt
index e0b113a5bb3..8f303a9df96 100644
--- a/config/zephyr/chip-module/CMakeLists.txt
+++ b/config/zephyr/chip-module/CMakeLists.txt
@@ -100,6 +100,7 @@ if(CONFIG_CHIP)
matter_add_gn_arg_bool("chip_malloc_sys_heap" CONFIG_CHIP_MALLOC_SYS_HEAP)
matter_add_gn_arg_bool("chip_inet_config_enable_tcp_endpoint" FALSE)
matter_add_gn_arg_bool("chip_enable_read_client" CONFIG_CHIP_ENABLE_READ_CLIENT)
+ matter_add_gn_arg_bool("chip_enable_ota_requestor" CONFIG_CHIP_OTA_REQUESTOR)
if(BOARD STREQUAL "native_sim")
matter_add_gn_arg_string("target_cpu" "x86")
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/cd.der b/credentials/development/commissioner_dut/struct_cd_official_cd/cd.der
new file mode 100644
index 00000000000..5824db7f400
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_official_cd/cd.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Cert.der
new file mode 100644
index 00000000000..03f067d11d0
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Cert.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Cert.pem
new file mode 100644
index 00000000000..ae5a8d043f8
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB5DCCAYqgAwIBAgIIKyooBBJc5nQwCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP
+TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB
+gqJ8AgIMBDgwMDAwIBcNMjUxMjE4MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx
+GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx
+FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+lQrwIKwOIC9saf8QqLh7pfTgpv68T0cVpgY5tgn0mEffbCTv3MLUOnPXLw6Sl/E3
+XMgqERWgHWWL9bkRgRkrXqNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC
+B4AwHQYDVR0OBBYEFJPT5pkurVwfltlAsFi+sGxd9BuNMB8GA1UdIwQYMBaAFM+i
+4fA2NWjPI+iIB+HaLxmtyYCsMAoGCCqGSM49BAMCA0gAMEUCIEJMLR8LjvF84oKU
+Qz61KUtQbku67VWHvmZTAhGl5pkVAiEA9TSYENOJBfHCpOCNBJHxXz1QRgV8RElJ
+v46VNdR+miE=
+-----END CERTIFICATE-----
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Key.der
new file mode 100644
index 00000000000..34b130f909b
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Key.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Key.pem
new file mode 100644
index 00000000000..27ab05fe567
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_official_cd/dac-Key.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PRIVATE KEY-----
+MHcCAQEEIH6lkj3Y/KwY/PaPmtbt4n7lVzImR4zbO4jFhnDeLhNloAoGCCqGSM49
+AwEHoUQDQgAElQrwIKwOIC9saf8QqLh7pfTgpv68T0cVpgY5tgn0mEffbCTv3MLU
+OnPXLw6Sl/E3XMgqERWgHWWL9bkRgRkrXg==
+-----END EC PRIVATE KEY-----
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Cert.der
new file mode 100644
index 00000000000..dccf80cc7ae
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Cert.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Cert.pem
new file mode 100644
index 00000000000..e642e8373c9
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Cert.pem
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB1DCCAXqgAwIBAgIIJMq+OwWnvTcwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP
+TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yNTEyMTgw
+MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg
+UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw
+WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARy2GTqddl5i6AHh7vfbgDu7kZFqQ/3
+bqqmj27V9Jp36+8yIVmZ5gGnNvD1laeSTJQ+lQvIwZx7PWcQwsdVF5YZo2YwZDAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUz6Lh
+8DY1aM8j6IgH4dovGa3JgKwwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh
+cX4wCgYIKoZIzj0EAwIDSAAwRQIgfX7ptLB8sfl8l0gKYouAI5XP0FlYQ6KxANbq
+WUN6SxoCIQD/iN5J2A6EJuFhnuRJIoUJNF71ek4+3Xmxq7eugY1gSw==
+-----END CERTIFICATE-----
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Key.der
new file mode 100644
index 00000000000..df84d665cba
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Key.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Key.pem
new file mode 100644
index 00000000000..6eb4b463968
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_official_cd/pai-Key.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PRIVATE KEY-----
+MHcCAQEEII713s3R6MxdfTFw8zW4dhOxGTRzsC2BcLb/JR274ZeNoAoGCCqGSM49
+AwEHoUQDQgAEcthk6nXZeYugB4e7324A7u5GRakP926qpo9u1fSad+vvMiFZmeYB
+pzbw9ZWnkkyUPpULyMGcez1nEMLHVReWGQ==
+-----END EC PRIVATE KEY-----
diff --git a/credentials/development/commissioner_dut/struct_cd_official_cd/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_official_cd/test_case_vector.json
new file mode 100644
index 00000000000..27214fcfcd5
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_official_cd/test_case_vector.json
@@ -0,0 +1,10 @@
+{
+ "description": "CD Test Vector: CD certification type is official (signed by test key)",
+ "is_success_case": "false",
+ "basic_info_pid": 32768,
+ "dac_cert": "308201e43082018aa00302010202082b2a2804125ce674300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3235313231383030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004950af020ac0e202f6c69ff10a8b87ba5f4e0a6febc4f4715a60639b609f49847df6c24efdcc2d43a73d72f0e9297f1375cc82a1115a01d658bf5b91181192b5ea360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041493d3e6992ead5c1f96d940b058beb06c5df41b8d301f0603551d23041830168014cfa2e1f0363568cf23e88807e1da2f19adc980ac300a06082a8648ce3d04030203480030450220424c2d1f0b8ef17ce28294433eb5294b506e4bbaed5587be66530211a5e69915022100f5349810d38905f1c2a4e08d0491f15f3d5046057c444949bf8e9535d47e9a21",
+ "pai_cert": "308201d43082017aa003020102020824cabe3b05a7bd37300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3235313231383030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d0301070342000472d864ea75d9798ba00787bbdf6e00eeee4645a90ff76eaaa68f6ed5f49a77ebef32215999e601a736f0f595a7924c943e950bc8c19c7b3d6710c2c755179619a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414cfa2e1f0363568cf23e88807e1da2f19adc980ac301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034800304502207d7ee9b4b07cb1f97c97480a628b802395cfd0595843a2b100d6ea59437a4b1a022100ff88de49d80e8426e1619ee449228509345ef57a4e3edd79b1abb7ae818d604b",
+ "certification_declaration": "3081ea06092a864886f70d010702a081dc3081d9020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080218317e307c020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204483046022100ffc0e45750c1700c00e53d8bc2027c6b6d9a280250c954afac0d7aa6f379ca48022100c98e261525b5751b6f57b0999f79e822ea35786164613a1a186ef363a7002ec4",
+ "dac_private_key": "7ea5923dd8fcac18fcf68f9ad6ede27ee5573226478cdb3b88c58670de2e1365",
+ "dac_public_key": "04950af020ac0e202f6c69ff10a8b87ba5f4e0a6febc4f4715a60639b609f49847df6c24efdcc2d43a73d72f0e9297f1375cc82a1115a01d658bf5b91181192b5e"
+}
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/cd.der b/credentials/development/commissioner_dut/struct_cd_provisional_cd/cd.der
new file mode 100644
index 00000000000..8424b0b19d5
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_provisional_cd/cd.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Cert.der b/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Cert.der
new file mode 100644
index 00000000000..22c2b1421bb
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Cert.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Cert.pem b/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Cert.pem
new file mode 100644
index 00000000000..bcb21aab7ad
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB5DCCAYqgAwIBAgIIRyNVuEs6FO0wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP
+TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB
+gqJ8AgIMBDgwMDAwIBcNMjUxMjE4MDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMEYx
+GDAWBgNVBAMMD01hdHRlciBUZXN0IERBQzEUMBIGCisGAQQBgqJ8AgEMBEZGRjEx
+FDASBgorBgEEAYKifAICDAQ4MDAwMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+P6zjjUwfL6emrqH80RES8rEfebRmtZdenDKfh2n1PFin6Lq9qFXWYvCXOQKrbrFj
+UUbFHqLms0y4MsviWHo95KNgMF4wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMC
+B4AwHQYDVR0OBBYEFONi5OQ45LYfTFXuzSBSCtU2w4v6MB8GA1UdIwQYMBaAFGKE
+t597Pkz8pETDtazvdHk+2ZvGMAoGCCqGSM49BAMCA0gAMEUCIQCXi12KK8b0/TRX
+s/n3trlfumL0j1o50K2u0OssZ5rM+QIgYQAVcME6Fo70u+8l/32aVMTwUuz7ltfs
+ek9kxbBngEA=
+-----END CERTIFICATE-----
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Key.der b/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Key.der
new file mode 100644
index 00000000000..cdef80526c3
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Key.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Key.pem b/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Key.pem
new file mode 100644
index 00000000000..fd7f6d0d03b
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_provisional_cd/dac-Key.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PRIVATE KEY-----
+MHcCAQEEIDwXMs1KWvnbsKT2wetgCz4ko/jDdGDoUDJWekMgygFHoAoGCCqGSM49
+AwEHoUQDQgAEP6zjjUwfL6emrqH80RES8rEfebRmtZdenDKfh2n1PFin6Lq9qFXW
+YvCXOQKrbrFjUUbFHqLms0y4MsviWHo95A==
+-----END EC PRIVATE KEY-----
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Cert.der b/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Cert.der
new file mode 100644
index 00000000000..886e238f8b3
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Cert.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Cert.pem b/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Cert.pem
new file mode 100644
index 00000000000..23ebfe2e67d
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Cert.pem
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB0zCCAXqgAwIBAgIIfbKH8HQfBXIwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP
+TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yNTEyMTgw
+MDAwMDBaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg
+UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw
+WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR/F768JPlG0kXPayNjOVY5/Y5D5Wji
+/d7k5k6C0p+2ZXJO4ddpgavqiofPkbJdUTNrYNknJCcMNn6e4byRAL6io2YwZDAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUYoS3
+n3s+TPykRMO1rO90eT7Zm8YwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh
+cX4wCgYIKoZIzj0EAwIDRwAwRAIgPNXqv2WnkfF0+IQAnkRSgf/DHow+gjtFpIUy
+TeVbhcoCIEDYM+fkb/15ymzaerCBh014tyGJqTOrEAjtDaf7rKF6
+-----END CERTIFICATE-----
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Key.der b/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Key.der
new file mode 100644
index 00000000000..4800747c857
Binary files /dev/null and b/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Key.der differ
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Key.pem b/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Key.pem
new file mode 100644
index 00000000000..5581dea8e12
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_provisional_cd/pai-Key.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PRIVATE KEY-----
+MHcCAQEEICOK6RcdmRNsr98k0O4+TrijwtIRyASYomIQ27m9vXV5oAoGCCqGSM49
+AwEHoUQDQgAEfxe+vCT5RtJFz2sjYzlWOf2OQ+Vo4v3e5OZOgtKftmVyTuHXaYGr
+6oqHz5GyXVEza2DZJyQnDDZ+nuG8kQC+og==
+-----END EC PRIVATE KEY-----
diff --git a/credentials/development/commissioner_dut/struct_cd_provisional_cd/test_case_vector.json b/credentials/development/commissioner_dut/struct_cd_provisional_cd/test_case_vector.json
new file mode 100644
index 00000000000..72c667fbf9f
--- /dev/null
+++ b/credentials/development/commissioner_dut/struct_cd_provisional_cd/test_case_vector.json
@@ -0,0 +1,10 @@
+{
+ "description": "CD Test Vector: CD certification type is provisional (signed by test key)",
+ "is_success_case": "true",
+ "basic_info_pid": 32768,
+ "dac_cert": "308201e43082018aa0030201020208472355b84b3a14ed300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3235313231383030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742044414331143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200043face38d4c1f2fa7a6aea1fcd11112f2b11f79b466b5975e9c329f8769f53c58a7e8babda855d662f0973902ab6eb1635146c51ea2e6b34cb832cbe2587a3de4a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414e362e4e438e4b61f4c55eecd20520ad536c38bfa301f0603551d230418301680146284b79f7b3e4cfca444c3b5acef74793ed99bc6300a06082a8648ce3d0403020348003045022100978b5d8a2bc6f4fd3457b3f9f7b6b95fba62f48f5a39d0adaed0eb2c679accf9022061001570c13a168ef4bbef25ff7d9a54c4f052ecfb96d7ec7a4f64c5b0678040",
+ "pai_cert": "308201d33082017aa00302010202087db287f0741f0572300a06082a8648ce3d04030230303118301606035504030c0f4d617474657220546573742050414131143012060a2b0601040182a27c02010c04464646313020170d3235313231383030303030305a180f39393939313233313233353935395a30463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200047f17bebc24f946d245cf6b2363395639fd8e43e568e2fddee4e64e82d29fb665724ee1d76981abea8a87cf91b25d51336b60d92724270c367e9ee1bc9100bea2a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e041604146284b79f7b3e4cfca444c3b5acef74793ed99bc6301f0603551d230418301680146afd22771f511fecbf1641976710dcdc31a1717e300a06082a8648ce3d040302034700304402203cd5eabf65a791f174f884009e445281ffc31e8c3e823b45a485324de55b85ca022040d833e7e46ffd79ca6cda7ab081874d78b72189a933ab1008ed0da7fbaca17a",
+ "certification_declaration": "3081e906092a864886f70d010702a081db3081d8020103310d300b0609608648016503040201304506092a864886f70d010701a0380436152400012501f1ff360205008018250334122c04135a494732303134315a423333303030312d32342405002406002507769824080118317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d04030204473045022100a9e755726b990a5b86d22d7dc0df813fa54624d5494676e4e50ded9a8964be8002206831532ab38b2d7594823552a0ed22a4040dc75a517f45871b2fc6e2d2e7e4bf",
+ "dac_private_key": "3c1732cd4a5af9dbb0a4f6c1eb600b3e24a3f8c37460e85032567a4320ca0147",
+ "dac_public_key": "043face38d4c1f2fa7a6aea1fcd11112f2b11f79b466b5975e9c329f8769f53c58a7e8babda855d662f0973902ab6eb1635146c51ea2e6b34cb832cbe2587a3de4"
+}
diff --git a/credentials/fetch_paa_certs_from_dcl.py b/credentials/fetch_paa_certs_from_dcl.py
index 3bcd74b6534..d37302e3aa3 100755
--- a/credentials/fetch_paa_certs_from_dcl.py
+++ b/credentials/fetch_paa_certs_from_dcl.py
@@ -136,9 +136,13 @@ def use_dcld(dcld, production, cmdlist):
@optgroup.option('--use-test-net-http', is_flag=True, type=str, help="Use RESTful API with HTTPS against public TestNet observer.")
@optgroup.group('Optional arguments')
@optgroup.option('--paa-trust-store-path', default='paa-root-certs', type=str, metavar='PATH', help="PAA trust store path (default: paa-root-certs)")
-def main(use_main_net_dcld, use_test_net_dcld, use_main_net_http, use_test_net_http, paa_trust_store_path):
- """DCL PAA mirroring tools"""
- fetch_paa_certs(use_main_net_dcld, use_test_net_dcld, use_main_net_http, use_test_net_http, paa_trust_store_path)
+@optgroup.option('--cd-output-path')
+def main(use_main_net_dcld, use_test_net_dcld, use_main_net_http, use_test_net_http, paa_trust_store_path, cd_output_path):
+ """DCL mirroring tools"""
+ if cd_output_path is not None:
+ fetch_cd_signing_certs(cd_output_path)
+ else:
+ fetch_paa_certs(use_main_net_dcld, use_test_net_dcld, use_main_net_http, use_test_net_http, paa_trust_store_path)
def get_cert_from_rest(rest_node_url, subject, subject_key_id):
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_001_O_CSA_vid_0xC5A0.der b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_001_O_CSA_vid_0xC5A0.der
new file mode 100644
index 00000000000..0bcdc2c37db
Binary files /dev/null and b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_001_O_CSA_vid_0xC5A0.der differ
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_001_O_CSA_vid_0xC5A0.pem b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_001_O_CSA_vid_0xC5A0.pem
new file mode 100644
index 00000000000..07bce8cc079
--- /dev/null
+++ b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_001_O_CSA_vid_0xC5A0.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICBzCCAa2gAwIBAgIHY3NhY2RrMTAKBggqhkjOPQQDAjBSMQwwCgYDVQQKDAND
+U0ExLDAqBgNVBAMMI01hdHRlciBDZXJ0aWZpY2F0aW9uIGFuZCBUZXN0aW5nIENB
+MRQwEgYKKwYBBAGConwCAQwEQzVBMDAgFw0yMjEwMDMxOTI4NTVaGA8yMDcyMDky
+MDE5Mjg1NVowWDEMMAoGA1UECgwDQ1NBMTIwMAYDVQQDDClDZXJ0aWZpY2F0aW9u
+IERlY2xhcmF0aW9uIFNpZ25pbmcgS2V5IDAwMTEUMBIGCisGAQQBgqJ8AgEMBEM1
+QTAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATN7uk+RPi3K+PRqcB+IZaLmv/z
+tAPwXhZp17Hlyu5vx3FLQufiNpXpLNdjVHOigK5ojze7lInhFim5uU/3sJkpo2Yw
+ZDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQU
+/jQ/lZlHdjth7kU5ExM4SU/mfY4wHwYDVR0jBBgwFoAUl+Rp0MUEFMJvxwH3fpR3
+OQmN9qUwCgYIKoZIzj0EAwIDSAAwRQIgEDWOcdKsVGtUh3evHbBd1lq4aS7yQtOp
+6GrOQ3/zXBsCIQDxorh2RXSaI8m2RCcoWaiWa0nLzQepNm3C2jrQVJmC2Q==
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_002_O_CSA_vid_0xC5A0.der b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_002_O_CSA_vid_0xC5A0.der
new file mode 100644
index 00000000000..3e6046ac47a
Binary files /dev/null and b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_002_O_CSA_vid_0xC5A0.der differ
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_002_O_CSA_vid_0xC5A0.pem b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_002_O_CSA_vid_0xC5A0.pem
new file mode 100644
index 00000000000..c656bc86ee8
--- /dev/null
+++ b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_002_O_CSA_vid_0xC5A0.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCDCCAa2gAwIBAgIHY3NhY2RrMjAKBggqhkjOPQQDAjBSMQwwCgYDVQQKDAND
+U0ExLDAqBgNVBAMMI01hdHRlciBDZXJ0aWZpY2F0aW9uIGFuZCBUZXN0aW5nIENB
+MRQwEgYKKwYBBAGConwCAQwEQzVBMDAgFw0yMjEwMDMxOTM2NDZaGA8yMDcyMDky
+MDE5MzY0NlowWDEMMAoGA1UECgwDQ1NBMTIwMAYDVQQDDClDZXJ0aWZpY2F0aW9u
+IERlY2xhcmF0aW9uIFNpZ25pbmcgS2V5IDAwMjEUMBIGCisGAQQBgqJ8AgEMBEM1
+QTAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQDGTfo+UJRBF3ydFe7RiU+43VO
+jBKuKFV9gCe51MNW2RtAjP8yJ1AXsl+Mi6IFFtXIOvK3JBKAE9/Mj5XSAKkLo2Yw
+ZDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQU
+3QTbWFshTBxYFYfmVo30h7bdxwEwHwYDVR0jBBgwFoAUl+Rp0MUEFMJvxwH3fpR3
+OQmN9qUwCgYIKoZIzj0EAwIDSQAwRgIhAJruzxZ806cP/LoQ07PN9xAbjLdwUalV
+h0Qfx304Tb92AiEAk+jnf2qtyfKyTEHpT3Xf3bfekqUOA+8ikB1yjL5oTsI=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_003_O_CSA_vid_0xC5A0.der b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_003_O_CSA_vid_0xC5A0.der
new file mode 100644
index 00000000000..6fd2138beb4
Binary files /dev/null and b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_003_O_CSA_vid_0xC5A0.der differ
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_003_O_CSA_vid_0xC5A0.pem b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_003_O_CSA_vid_0xC5A0.pem
new file mode 100644
index 00000000000..68c930c44c9
--- /dev/null
+++ b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_003_O_CSA_vid_0xC5A0.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICBjCCAa2gAwIBAgIHY3NhY2RrMzAKBggqhkjOPQQDAjBSMQwwCgYDVQQKDAND
+U0ExLDAqBgNVBAMMI01hdHRlciBDZXJ0aWZpY2F0aW9uIGFuZCBUZXN0aW5nIENB
+MRQwEgYKKwYBBAGConwCAQwEQzVBMDAgFw0yMjEwMDMxOTQxMDFaGA8yMDcyMDky
+MDE5NDEwMVowWDEMMAoGA1UECgwDQ1NBMTIwMAYDVQQDDClDZXJ0aWZpY2F0aW9u
+IERlY2xhcmF0aW9uIFNpZ25pbmcgS2V5IDAwMzEUMBIGCisGAQQBgqJ8AgEMBEM1
+QTAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASfV1zV/bdSHxCk3zHwc5ErYUco
+8tN/W2uWvCy/fAsRlpBXfVVdIaCWYKiwgqM56lMPeoEthpO1b9dkGF+rzTL1o2Yw
+ZDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQU
+RxA158BOqqi+fE1ME+PkwgmVqEswHwYDVR0jBBgwFoAUl+Rp0MUEFMJvxwH3fpR3
+OQmN9qUwCgYIKoZIzj0EAwIDRwAwRAIgIFecbY+1mVVNqxH9+8IMB8+safdyIJU2
+AqqtZ/w7AkQCIHiVlYTaCnJsnW5/cvj9GfIv7Eb0cjdmcAkrYGbnPQzX
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_004_O_CSA_vid_0xC5A0.der b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_004_O_CSA_vid_0xC5A0.der
new file mode 100644
index 00000000000..8ac5b038ed8
Binary files /dev/null and b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_004_O_CSA_vid_0xC5A0.der differ
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_004_O_CSA_vid_0xC5A0.pem b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_004_O_CSA_vid_0xC5A0.pem
new file mode 100644
index 00000000000..afe9a365a39
--- /dev/null
+++ b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_004_O_CSA_vid_0xC5A0.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICBjCCAa2gAwIBAgIHY3NhY2RrNDAKBggqhkjOPQQDAjBSMQwwCgYDVQQKDAND
+U0ExLDAqBgNVBAMMI01hdHRlciBDZXJ0aWZpY2F0aW9uIGFuZCBUZXN0aW5nIENB
+MRQwEgYKKwYBBAGConwCAQwEQzVBMDAgFw0yMjEwMDMxOTQzMjFaGA8yMDcyMDky
+MDE5NDMyMVowWDEMMAoGA1UECgwDQ1NBMTIwMAYDVQQDDClDZXJ0aWZpY2F0aW9u
+IERlY2xhcmF0aW9uIFNpZ25pbmcgS2V5IDAwNDEUMBIGCisGAQQBgqJ8AgEMBEM1
+QTAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR8/I2IEKic9PoZF3jyr+x4+FF6
+l6Plf8ITutiI42EedP+2hL3rqKaLJSNKXDWPNzurm20wThMG3XYgpSjRFhwLo2Yw
+ZDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQU
+9oYDo2kumBByQZ6h4as4VL13ldMwHwYDVR0jBBgwFoAUl+Rp0MUEFMJvxwH3fpR3
+OQmN9qUwCgYIKoZIzj0EAwIDRwAwRAIgLqAfkbtLYYdmQsnbn0CWv3G1/lbE36nz
+HbLbW5t6PY4CIE8oyIHsVhNSTPcb3mwRp+Vxhs8tKhbAdwv5BGgDaAHj
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_005_O_CSA_vid_0xC5A0.der b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_005_O_CSA_vid_0xC5A0.der
new file mode 100644
index 00000000000..5ca3b5a6ccb
Binary files /dev/null and b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_005_O_CSA_vid_0xC5A0.der differ
diff --git a/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_005_O_CSA_vid_0xC5A0.pem b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_005_O_CSA_vid_0xC5A0.pem
new file mode 100644
index 00000000000..6782c680895
--- /dev/null
+++ b/credentials/production/cd-certs/dcld_mirror_CN_Certification_Declaration_Signing_Key_005_O_CSA_vid_0xC5A0.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICBzCCAa2gAwIBAgIHY3NhY2RrNTAKBggqhkjOPQQDAjBSMQwwCgYDVQQKDAND
+U0ExLDAqBgNVBAMMI01hdHRlciBDZXJ0aWZpY2F0aW9uIGFuZCBUZXN0aW5nIENB
+MRQwEgYKKwYBBAGConwCAQwEQzVBMDAgFw0yMjEwMDMxOTQ3MTVaGA8yMDcyMDky
+MDE5NDcxNVowWDEMMAoGA1UECgwDQ1NBMTIwMAYDVQQDDClDZXJ0aWZpY2F0aW9u
+IERlY2xhcmF0aW9uIFNpZ25pbmcgS2V5IDAwNTEUMBIGCisGAQQBgqJ8AgEMBEM1
+QTAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARDilLGYqKm1yZH+V63UxNu5K4P
+2zqpwWkxQms9CGf5EDrn16G4h+n4E6byb3a7zak1k3h8EneMqPKXXcRaIEL5o2Yw
+ZDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQU
+Y38mNK1i6v5q9mLvuW9v0vy//C8wHwYDVR0jBBgwFoAUl+Rp0MUEFMJvxwH3fpR3
+OQmN9qUwCgYIKoZIzj0EAwIDSAAwRQIhAM1HQpvkHKxLJByWaSYAPRZgh3Bis18W
+AViq7c/mtzEAAiBZO0lVe6Qo9iQPIBWZaVx/S/YSNO9uKNa/pvFu3V+nIg==
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/data_model/master/clusters/ACL-Cluster.xml b/data_model/1.5.1/clusters/ACL-Cluster.xml
similarity index 100%
rename from data_model/master/clusters/ACL-Cluster.xml
rename to data_model/1.5.1/clusters/ACL-Cluster.xml
diff --git a/data_model/master/clusters/AccountLogin.xml b/data_model/1.5.1/clusters/AccountLogin.xml
similarity index 100%
rename from data_model/master/clusters/AccountLogin.xml
rename to data_model/1.5.1/clusters/AccountLogin.xml
diff --git a/data_model/master/clusters/ActionsCluster.xml b/data_model/1.5.1/clusters/ActionsCluster.xml
similarity index 100%
rename from data_model/master/clusters/ActionsCluster.xml
rename to data_model/1.5.1/clusters/ActionsCluster.xml
diff --git a/data_model/master/clusters/AdminCommissioningCluster.xml b/data_model/1.5.1/clusters/AdminCommissioningCluster.xml
similarity index 99%
rename from data_model/master/clusters/AdminCommissioningCluster.xml
rename to data_model/1.5.1/clusters/AdminCommissioningCluster.xml
index 67e19d51e4e..dc059a4cceb 100644
--- a/data_model/master/clusters/AdminCommissioningCluster.xml
+++ b/data_model/1.5.1/clusters/AdminCommissioningCluster.xml
@@ -124,6 +124,9 @@ Davis, CA 95616, USA
+
+
+
diff --git a/data_model/master/clusters/AirQuality.xml b/data_model/1.5.1/clusters/AirQuality.xml
similarity index 99%
rename from data_model/master/clusters/AirQuality.xml
rename to data_model/1.5.1/clusters/AirQuality.xml
index 929921bacbd..1146fff31a5 100644
--- a/data_model/master/clusters/AirQuality.xml
+++ b/data_model/1.5.1/clusters/AirQuality.xml
@@ -113,7 +113,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/AlarmBase.xml b/data_model/1.5.1/clusters/AlarmBase.xml
similarity index 88%
rename from data_model/master/clusters/AlarmBase.xml
rename to data_model/1.5.1/clusters/AlarmBase.xml
index 626134d57cf..a8ac0426a74 100644
--- a/data_model/master/clusters/AlarmBase.xml
+++ b/data_model/1.5.1/clusters/AlarmBase.xml
@@ -75,22 +75,22 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -102,14 +102,14 @@ Davis, CA 95616, USA
-
+
-
+
@@ -118,16 +118,16 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
diff --git a/data_model/master/clusters/ApplicationBasic.xml b/data_model/1.5.1/clusters/ApplicationBasic.xml
similarity index 99%
rename from data_model/master/clusters/ApplicationBasic.xml
rename to data_model/1.5.1/clusters/ApplicationBasic.xml
index f2ef33bfd11..8ea20956843 100644
--- a/data_model/master/clusters/ApplicationBasic.xml
+++ b/data_model/1.5.1/clusters/ApplicationBasic.xml
@@ -108,7 +108,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/ApplicationLauncher.xml b/data_model/1.5.1/clusters/ApplicationLauncher.xml
similarity index 100%
rename from data_model/master/clusters/ApplicationLauncher.xml
rename to data_model/1.5.1/clusters/ApplicationLauncher.xml
diff --git a/data_model/master/clusters/AudioOutput.xml b/data_model/1.5.1/clusters/AudioOutput.xml
similarity index 97%
rename from data_model/master/clusters/AudioOutput.xml
rename to data_model/1.5.1/clusters/AudioOutput.xml
index 243d1d4ae66..4d2b2e7f68d 100644
--- a/data_model/master/clusters/AudioOutput.xml
+++ b/data_model/1.5.1/clusters/AudioOutput.xml
@@ -103,6 +103,9 @@ Davis, CA 95616, USA
+
+
+
@@ -135,6 +138,9 @@ Davis, CA 95616, USA
+
+
+
diff --git a/data_model/master/clusters/BasicInformationCluster.xml b/data_model/1.5.1/clusters/BasicInformationCluster.xml
similarity index 92%
rename from data_model/master/clusters/BasicInformationCluster.xml
rename to data_model/1.5.1/clusters/BasicInformationCluster.xml
index b399975afc4..b516e60f4fe 100644
--- a/data_model/master/clusters/BasicInformationCluster.xml
+++ b/data_model/1.5.1/clusters/BasicInformationCluster.xml
@@ -63,7 +63,7 @@ Davis, CA 95616, USA
-
+
@@ -83,7 +83,7 @@ Davis, CA 95616, USA
-
- -
+
-
-
@@ -159,13 +159,19 @@ Davis, CA 95616, USA
-
+
+
+
+
-
+
+
+
+
@@ -320,7 +326,15 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
+
@@ -333,12 +347,22 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
-
+
+
+
+
+
+
@@ -346,25 +370,27 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/data_model/master/clusters/Binding-Cluster.xml b/data_model/1.5.1/clusters/Binding-Cluster.xml
similarity index 100%
rename from data_model/master/clusters/Binding-Cluster.xml
rename to data_model/1.5.1/clusters/Binding-Cluster.xml
diff --git a/data_model/master/clusters/BooleanState.xml b/data_model/1.5.1/clusters/BooleanState.xml
similarity index 97%
rename from data_model/master/clusters/BooleanState.xml
rename to data_model/1.5.1/clusters/BooleanState.xml
index f9c269123d5..08b72d5e836 100644
--- a/data_model/master/clusters/BooleanState.xml
+++ b/data_model/1.5.1/clusters/BooleanState.xml
@@ -57,9 +57,10 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -68,7 +69,6 @@ Davis, CA 95616, USA
-
diff --git a/data_model/master/clusters/BooleanStateConfiguration.xml b/data_model/1.5.1/clusters/BooleanStateConfiguration.xml
similarity index 94%
rename from data_model/master/clusters/BooleanStateConfiguration.xml
rename to data_model/1.5.1/clusters/BooleanStateConfiguration.xml
index dfa4b0cda1c..5e73d643f5b 100644
--- a/data_model/master/clusters/BooleanStateConfiguration.xml
+++ b/data_model/1.5.1/clusters/BooleanStateConfiguration.xml
@@ -104,17 +104,25 @@ Davis, CA 95616, USA
-
+
-
+
+
+ subtract
+
+
+
+
+
+
-
+
@@ -134,10 +142,18 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
-
+
@@ -146,7 +162,7 @@ Davis, CA 95616, USA
-
+
@@ -162,7 +178,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/BridgedDeviceBasicInformationCluster.xml b/data_model/1.5.1/clusters/BridgedDeviceBasicInformationCluster.xml
similarity index 68%
rename from data_model/master/clusters/BridgedDeviceBasicInformationCluster.xml
rename to data_model/1.5.1/clusters/BridgedDeviceBasicInformationCluster.xml
index 26f4b022402..aa400fae6e1 100644
--- a/data_model/master/clusters/BridgedDeviceBasicInformationCluster.xml
+++ b/data_model/1.5.1/clusters/BridgedDeviceBasicInformationCluster.xml
@@ -63,7 +63,7 @@ Davis, CA 95616, USA
-
+
@@ -71,9 +71,130 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
+
-
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -215,7 +336,15 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
+
@@ -228,7 +357,12 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
@@ -246,20 +380,17 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
@@ -287,24 +418,36 @@ Davis, CA 95616, USA
-
+
+
+
+
-
+
-
+
-
+
+
+
+
+
+
+
-
+
+
+
+
diff --git a/data_model/master/clusters/CameraAVSettingsUserLevelManagement.xml b/data_model/1.5.1/clusters/CameraAVSettingsUserLevelManagement.xml
similarity index 76%
rename from data_model/master/clusters/CameraAVSettingsUserLevelManagement.xml
rename to data_model/1.5.1/clusters/CameraAVSettingsUserLevelManagement.xml
index d52507423d9..70c42a322c4 100644
--- a/data_model/master/clusters/CameraAVSettingsUserLevelManagement.xml
+++ b/data_model/1.5.1/clusters/CameraAVSettingsUserLevelManagement.xml
@@ -62,14 +62,12 @@ Davis, CA 95616, USA
-
-
-
+
-
+
@@ -91,6 +89,22 @@ Davis, CA 95616, USA
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
@@ -114,7 +128,7 @@ Davis, CA 95616, USA
-
+
@@ -129,7 +143,7 @@ Davis, CA 95616, USA
-
+
@@ -144,7 +158,7 @@ Davis, CA 95616, USA
-
+
@@ -162,6 +176,7 @@ Davis, CA 95616, USA
+
@@ -170,33 +185,35 @@ Davis, CA 95616, USA
-
+
-
+
+
-
+
-
+
-
-
+
+
+
-
+
@@ -208,7 +225,7 @@ Davis, CA 95616, USA
-
+
@@ -216,23 +233,23 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -240,22 +257,32 @@ Davis, CA 95616, USA
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
@@ -313,21 +340,47 @@ Davis, CA 95616, USA
-
+
-
+
-
-
+
+
+ multiply
+
+
+
+ subtract
+
+
+
+
+
+
+
+
+
+
+
+
+ subtract
+
+
+
+
+
+
+
+
@@ -337,8 +390,34 @@ Davis, CA 95616, USA
-
-
+
+
+ multiply
+
+
+
+ subtract
+
+
+
+
+
+
+
+
+
+
+
+
+ subtract
+
+
+
+
+
+
+
+
@@ -348,8 +427,30 @@ Davis, CA 95616, USA
-
-
+
+
+ multiply
+
+
+
+ subtract
+
+
+
+
+
+
+
+
+
+
+ subtract
+
+
+
+
+
+
diff --git a/data_model/master/clusters/CameraAVStreamManagement.xml b/data_model/1.5.1/clusters/CameraAVStreamManagement.xml
similarity index 91%
rename from data_model/master/clusters/CameraAVStreamManagement.xml
rename to data_model/1.5.1/clusters/CameraAVStreamManagement.xml
index 20400009fc9..1b2f249d4b0 100644
--- a/data_model/master/clusters/CameraAVStreamManagement.xml
+++ b/data_model/1.5.1/clusters/CameraAVStreamManagement.xml
@@ -62,9 +62,7 @@ Davis, CA 95616, USA
-
-
-
+
@@ -120,6 +118,14 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
@@ -137,20 +143,9 @@ Davis, CA 95616, USA
-
-
-
- -
-
-
- -
+
-
- -
-
-
- -
-
-
-
@@ -175,19 +170,41 @@ Davis, CA 95616, USA
- -
+
-
- -
+
-
- -
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -248,7 +265,7 @@ Davis, CA 95616, USA
-
+
@@ -263,7 +280,7 @@ Davis, CA 95616, USA
-
+
@@ -301,7 +318,7 @@ Davis, CA 95616, USA
-
+
@@ -334,7 +351,7 @@ Davis, CA 95616, USA
-
+
@@ -343,6 +360,16 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
@@ -441,50 +468,26 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
+
-
-
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -517,14 +520,14 @@ Davis, CA 95616, USA
-
+
-
+
-
+
@@ -584,20 +587,20 @@ Davis, CA 95616, USA
-
+
-
+
-
+
@@ -605,7 +608,7 @@ Davis, CA 95616, USA
-
+
@@ -613,7 +616,7 @@ Davis, CA 95616, USA
-
+
@@ -621,24 +624,22 @@ Davis, CA 95616, USA
-
+
-
-
-
+
-
+
-
+
-
+
-
+
@@ -650,21 +651,15 @@ Davis, CA 95616, USA
-
-
-
-
-
-
+
+
+
-
-
-
-
+
@@ -674,7 +669,7 @@ Davis, CA 95616, USA
-
+
@@ -723,7 +718,7 @@ Davis, CA 95616, USA
-
+
@@ -803,7 +798,7 @@ Davis, CA 95616, USA
-
+
@@ -813,7 +808,7 @@ Davis, CA 95616, USA
-
+
@@ -842,11 +837,26 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -907,6 +917,21 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -951,31 +976,21 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
+
-
-
-
+
-
+
-
+
@@ -1004,14 +1019,14 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -1052,12 +1067,12 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1086,14 +1101,14 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
diff --git a/data_model/master/clusters/Channel.xml b/data_model/1.5.1/clusters/Channel.xml
similarity index 100%
rename from data_model/master/clusters/Channel.xml
rename to data_model/1.5.1/clusters/Channel.xml
diff --git a/data_model/master/clusters/Chime.xml b/data_model/1.5.1/clusters/Chime.xml
similarity index 95%
rename from data_model/master/clusters/Chime.xml
rename to data_model/1.5.1/clusters/Chime.xml
index 7eed47786f7..48bb721d885 100644
--- a/data_model/master/clusters/Chime.xml
+++ b/data_model/1.5.1/clusters/Chime.xml
@@ -62,9 +62,7 @@ Davis, CA 95616, USA
-
-
-
+
@@ -96,12 +94,12 @@ Davis, CA 95616, USA
-
+
-
+
diff --git a/data_model/master/clusters/ClosureControl.xml b/data_model/1.5.1/clusters/ClosureControl.xml
similarity index 82%
rename from data_model/master/clusters/ClosureControl.xml
rename to data_model/1.5.1/clusters/ClosureControl.xml
index 066d7d1d2bd..b7e3bfd50fe 100644
--- a/data_model/master/clusters/ClosureControl.xml
+++ b/data_model/1.5.1/clusters/ClosureControl.xml
@@ -62,9 +62,7 @@ Davis, CA 95616, USA
-
-
-
+
@@ -114,7 +112,7 @@ Davis, CA 95616, USA
-
- -
+
-
-
@@ -127,6 +125,30 @@ Davis, CA 95616, USA
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
-
@@ -159,53 +181,41 @@ Davis, CA 95616, USA
-
- -
-
-
- -
+
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
-
- -
-
-
- -
-
-
- -
+
+
-
+
-
- -
+
+
-
+
-
- -
-
-
-
-
-
+
+
+
+
@@ -214,7 +224,7 @@ Davis, CA 95616, USA
-
+
@@ -224,7 +234,6 @@ Davis, CA 95616, USA
-
@@ -232,26 +241,28 @@ Davis, CA 95616, USA
-
+
-
+
-
-
+
+
+
-
+
+
-
+
@@ -262,7 +273,14 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
@@ -279,16 +297,23 @@ Davis, CA 95616, USA
-
+
-
+
+
+
+
+
+
+
+
@@ -300,20 +325,23 @@ Davis, CA 95616, USA
-
+
-
+
-
+
+
+
+
-
+
@@ -337,7 +365,9 @@ Davis, CA 95616, USA
-
+
+
+
@@ -351,12 +381,7 @@ Davis, CA 95616, USA
-
-
-
-
-
-
+
diff --git a/data_model/master/clusters/ClosureDimension.xml b/data_model/1.5.1/clusters/ClosureDimension.xml
similarity index 79%
rename from data_model/master/clusters/ClosureDimension.xml
rename to data_model/1.5.1/clusters/ClosureDimension.xml
index eeff3d5df94..020c81ae6a5 100644
--- a/data_model/master/clusters/ClosureDimension.xml
+++ b/data_model/1.5.1/clusters/ClosureDimension.xml
@@ -62,13 +62,11 @@ Davis, CA 95616, USA
-
-
-
+
-
+
@@ -89,9 +87,21 @@ Davis, CA 95616, USA
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -155,37 +165,37 @@ Davis, CA 95616, USA
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
@@ -234,21 +244,22 @@ Davis, CA 95616, USA
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -256,7 +267,8 @@ Davis, CA 95616, USA
-
+
+
@@ -264,7 +276,7 @@ Davis, CA 95616, USA
-
+
@@ -289,47 +301,17 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -337,7 +319,7 @@ Davis, CA 95616, USA
-
+
@@ -345,7 +327,7 @@ Davis, CA 95616, USA
-
+
@@ -353,8 +335,9 @@ Davis, CA 95616, USA
-
+
+
@@ -362,24 +345,26 @@ Davis, CA 95616, USA
-
+
+
-
+
+
-
+
@@ -398,51 +383,59 @@ Davis, CA 95616, USA
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
+
+
+
-
+
@@ -459,7 +452,9 @@ Davis, CA 95616, USA
-
+
+
+
diff --git a/data_model/master/clusters/ColorControl.xml b/data_model/1.5.1/clusters/ColorControl.xml
similarity index 89%
rename from data_model/master/clusters/ColorControl.xml
rename to data_model/1.5.1/clusters/ColorControl.xml
index b2ecd8e5c67..b6108945d6b 100644
--- a/data_model/master/clusters/ColorControl.xml
+++ b/data_model/1.5.1/clusters/ColorControl.xml
@@ -57,7 +57,7 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
@@ -66,6 +66,8 @@ Davis, CA 95616, USA
+
+
@@ -241,9 +243,9 @@ Davis, CA 95616, USA
-
+
-
+
@@ -251,9 +253,9 @@ Davis, CA 95616, USA
-
+
-
+
@@ -269,9 +271,9 @@ Davis, CA 95616, USA
-
+
-
+
@@ -279,9 +281,9 @@ Davis, CA 95616, USA
-
+
-
+
@@ -289,20 +291,20 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -310,12 +312,12 @@ Davis, CA 95616, USA
-
+
-
+
@@ -601,89 +603,89 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -694,35 +696,32 @@ Davis, CA 95616, USA
-
-
-
-
+
-
+
-
+
-
+
@@ -750,7 +749,7 @@ Davis, CA 95616, USA
-
+
@@ -766,7 +765,7 @@ Davis, CA 95616, USA
-
+
@@ -801,13 +800,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -825,13 +824,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -852,13 +851,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -882,13 +881,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -906,13 +905,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -933,13 +932,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -969,13 +968,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1005,13 +1004,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1029,13 +1028,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1059,13 +1058,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1089,13 +1088,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1119,13 +1118,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1146,13 +1145,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1179,13 +1178,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1212,13 +1211,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1245,13 +1244,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1267,13 +1266,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1303,13 +1302,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -1345,13 +1344,13 @@ Davis, CA 95616, USA
-
+
-
+
diff --git a/data_model/master/clusters/CommissionerControlCluster.xml b/data_model/1.5.1/clusters/CommissionerControlCluster.xml
similarity index 98%
rename from data_model/master/clusters/CommissionerControlCluster.xml
rename to data_model/1.5.1/clusters/CommissionerControlCluster.xml
index a0d392a652b..6082e2f905d 100644
--- a/data_model/master/clusters/CommissionerControlCluster.xml
+++ b/data_model/1.5.1/clusters/CommissionerControlCluster.xml
@@ -124,6 +124,9 @@ Davis, CA 95616, USA
+
+
+
diff --git a/data_model/master/clusters/CommodityMetering.xml b/data_model/1.5.1/clusters/CommodityMetering.xml
similarity index 89%
rename from data_model/master/clusters/CommodityMetering.xml
rename to data_model/1.5.1/clusters/CommodityMetering.xml
index 1ccb979c1e6..785d9112663 100644
--- a/data_model/master/clusters/CommodityMetering.xml
+++ b/data_model/1.5.1/clusters/CommodityMetering.xml
@@ -64,12 +64,15 @@ Davis, CA 95616, USA
-
+
+
+
+
@@ -82,16 +85,29 @@ Davis, CA 95616, USA
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/clusters/CommodityPrice.xml b/data_model/1.5.1/clusters/CommodityPrice.xml
similarity index 89%
rename from data_model/master/clusters/CommodityPrice.xml
rename to data_model/1.5.1/clusters/CommodityPrice.xml
index 233386dfcad..56ee9dc642d 100644
--- a/data_model/master/clusters/CommodityPrice.xml
+++ b/data_model/1.5.1/clusters/CommodityPrice.xml
@@ -65,9 +65,7 @@ Davis, CA 95616, USA
-
-
-
+
@@ -108,19 +106,35 @@ Davis, CA 95616, USA
+
+
+
+ add
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
+
-
+
-
+
+
+
@@ -148,6 +162,9 @@ Davis, CA 95616, USA
+
+
+
@@ -168,6 +185,7 @@ Davis, CA 95616, USA
+
@@ -177,12 +195,16 @@ Davis, CA 95616, USA
+
+
+
+
@@ -191,14 +213,7 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
+
diff --git a/data_model/master/clusters/CommodityTariff.xml b/data_model/1.5.1/clusters/CommodityTariff.xml
similarity index 94%
rename from data_model/master/clusters/CommodityTariff.xml
rename to data_model/1.5.1/clusters/CommodityTariff.xml
index 9570b5ed2a3..4638a72546c 100644
--- a/data_model/master/clusters/CommodityTariff.xml
+++ b/data_model/1.5.1/clusters/CommodityTariff.xml
@@ -227,7 +227,15 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
@@ -294,31 +302,31 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
-
+
-
+
@@ -424,12 +432,18 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -488,7 +502,10 @@ Davis, CA 95616, USA
-
+
+
+
+
@@ -497,7 +514,10 @@ Davis, CA 95616, USA
-
+
+
+
+
@@ -505,12 +525,18 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -551,7 +577,10 @@ Davis, CA 95616, USA
-
+
+
+
+
diff --git a/data_model/master/clusters/ConcentrationMeasurement.xml b/data_model/1.5.1/clusters/ConcentrationMeasurement.xml
similarity index 95%
rename from data_model/master/clusters/ConcentrationMeasurement.xml
rename to data_model/1.5.1/clusters/ConcentrationMeasurement.xml
index ec8b39a55aa..190ffa82d2b 100644
--- a/data_model/master/clusters/ConcentrationMeasurement.xml
+++ b/data_model/1.5.1/clusters/ConcentrationMeasurement.xml
@@ -57,11 +57,12 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -181,9 +182,9 @@ Davis, CA 95616, USA
-
+
-
+
@@ -198,14 +199,14 @@ Davis, CA 95616, USA
-
+
-
+
@@ -217,9 +218,9 @@ Davis, CA 95616, USA
-
+
-
+
@@ -234,9 +235,8 @@ Davis, CA 95616, USA
-
+
-
@@ -244,9 +244,9 @@ Davis, CA 95616, USA
-
+
-
+
@@ -261,9 +261,8 @@ Davis, CA 95616, USA
-
+
-
@@ -280,19 +279,19 @@ Davis, CA 95616, USA
-
+
-
+
-
+
diff --git a/data_model/master/clusters/ContentAppObserver.xml b/data_model/1.5.1/clusters/ContentAppObserver.xml
similarity index 100%
rename from data_model/master/clusters/ContentAppObserver.xml
rename to data_model/1.5.1/clusters/ContentAppObserver.xml
diff --git a/data_model/master/clusters/ContentControl.xml b/data_model/1.5.1/clusters/ContentControl.xml
similarity index 100%
rename from data_model/master/clusters/ContentControl.xml
rename to data_model/1.5.1/clusters/ContentControl.xml
diff --git a/data_model/master/clusters/ContentLauncher.xml b/data_model/1.5.1/clusters/ContentLauncher.xml
similarity index 100%
rename from data_model/master/clusters/ContentLauncher.xml
rename to data_model/1.5.1/clusters/ContentLauncher.xml
diff --git a/data_model/master/clusters/Descriptor-Cluster.xml b/data_model/1.5.1/clusters/Descriptor-Cluster.xml
similarity index 98%
rename from data_model/master/clusters/Descriptor-Cluster.xml
rename to data_model/1.5.1/clusters/Descriptor-Cluster.xml
index fbef6914fe4..475dd6f8d57 100644
--- a/data_model/master/clusters/Descriptor-Cluster.xml
+++ b/data_model/1.5.1/clusters/Descriptor-Cluster.xml
@@ -129,10 +129,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/clusters/DeviceEnergyManagement.xml b/data_model/1.5.1/clusters/DeviceEnergyManagement.xml
similarity index 95%
rename from data_model/master/clusters/DeviceEnergyManagement.xml
rename to data_model/1.5.1/clusters/DeviceEnergyManagement.xml
index 0fd114ced76..87946abe764 100644
--- a/data_model/master/clusters/DeviceEnergyManagement.xml
+++ b/data_model/1.5.1/clusters/DeviceEnergyManagement.xml
@@ -287,13 +287,13 @@ Davis, CA 95616, USA
-
+
-
+
-
+
@@ -304,10 +304,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -343,7 +343,7 @@ Davis, CA 95616, USA
-
+
@@ -351,15 +351,15 @@ Davis, CA 95616, USA
-
+
-
+
-
+
@@ -367,7 +367,7 @@ Davis, CA 95616, USA
-
+
@@ -494,30 +494,27 @@ Davis, CA 95616, USA
-
-
-
-
+
-
+
-
+
-
+
@@ -526,14 +523,14 @@ Davis, CA 95616, USA
-
+
-
+
@@ -543,7 +540,7 @@ Davis, CA 95616, USA
-
+
@@ -684,7 +681,7 @@ Davis, CA 95616, USA
-
+
@@ -705,7 +702,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/DiagnosticLogsCluster.xml b/data_model/1.5.1/clusters/DiagnosticLogsCluster.xml
similarity index 98%
rename from data_model/master/clusters/DiagnosticLogsCluster.xml
rename to data_model/1.5.1/clusters/DiagnosticLogsCluster.xml
index b5edc2489c9..74031d793ba 100644
--- a/data_model/master/clusters/DiagnosticLogsCluster.xml
+++ b/data_model/1.5.1/clusters/DiagnosticLogsCluster.xml
@@ -83,7 +83,7 @@ Davis, CA 95616, USA
-
- -
+
-
-
diff --git a/data_model/master/clusters/DiagnosticsEthernet.xml b/data_model/1.5.1/clusters/DiagnosticsEthernet.xml
similarity index 100%
rename from data_model/master/clusters/DiagnosticsEthernet.xml
rename to data_model/1.5.1/clusters/DiagnosticsEthernet.xml
diff --git a/data_model/master/clusters/DiagnosticsGeneral.xml b/data_model/1.5.1/clusters/DiagnosticsGeneral.xml
similarity index 99%
rename from data_model/master/clusters/DiagnosticsGeneral.xml
rename to data_model/1.5.1/clusters/DiagnosticsGeneral.xml
index a5b75aeef4d..b8d6de81083 100644
--- a/data_model/master/clusters/DiagnosticsGeneral.xml
+++ b/data_model/1.5.1/clusters/DiagnosticsGeneral.xml
@@ -60,7 +60,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/DiagnosticsSoftware.xml b/data_model/1.5.1/clusters/DiagnosticsSoftware.xml
similarity index 100%
rename from data_model/master/clusters/DiagnosticsSoftware.xml
rename to data_model/1.5.1/clusters/DiagnosticsSoftware.xml
diff --git a/data_model/master/clusters/DiagnosticsThread.xml b/data_model/1.5.1/clusters/DiagnosticsThread.xml
similarity index 99%
rename from data_model/master/clusters/DiagnosticsThread.xml
rename to data_model/1.5.1/clusters/DiagnosticsThread.xml
index 9874ffcd080..c14db197e1c 100644
--- a/data_model/master/clusters/DiagnosticsThread.xml
+++ b/data_model/1.5.1/clusters/DiagnosticsThread.xml
@@ -317,6 +317,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
diff --git a/data_model/master/clusters/DiagnosticsWiFi.xml b/data_model/1.5.1/clusters/DiagnosticsWiFi.xml
similarity index 100%
rename from data_model/master/clusters/DiagnosticsWiFi.xml
rename to data_model/1.5.1/clusters/DiagnosticsWiFi.xml
diff --git a/data_model/master/clusters/DishwasherAlarm.xml b/data_model/1.5.1/clusters/DishwasherAlarm.xml
similarity index 100%
rename from data_model/master/clusters/DishwasherAlarm.xml
rename to data_model/1.5.1/clusters/DishwasherAlarm.xml
diff --git a/data_model/master/clusters/DoorLock.xml b/data_model/1.5.1/clusters/DoorLock.xml
similarity index 83%
rename from data_model/master/clusters/DoorLock.xml
rename to data_model/1.5.1/clusters/DoorLock.xml
index f2b8d62ee4e..f8353b20d18 100644
--- a/data_model/master/clusters/DoorLock.xml
+++ b/data_model/1.5.1/clusters/DoorLock.xml
@@ -57,7 +57,7 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
@@ -68,6 +68,7 @@ Davis, CA 95616, USA
+
@@ -78,7 +79,10 @@ Davis, CA 95616, USA
-
+
+
+
+
@@ -102,19 +106,15 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
@@ -125,10 +125,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -215,17 +215,17 @@ Davis, CA 95616, USA
- -
+
-
- -
+
-
- -
+
-
@@ -509,7 +509,7 @@ Davis, CA 95616, USA
- -
+
-
@@ -711,7 +711,7 @@ Davis, CA 95616, USA
-
+
@@ -719,7 +719,7 @@ Davis, CA 95616, USA
-
+
@@ -738,7 +738,7 @@ Davis, CA 95616, USA
-
+
@@ -764,28 +764,28 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -795,7 +795,7 @@ Davis, CA 95616, USA
-
+
@@ -805,7 +805,7 @@ Davis, CA 95616, USA
-
+
@@ -815,42 +815,42 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
-
+
-
+
@@ -859,7 +859,6 @@ Davis, CA 95616, USA
-
@@ -867,65 +866,54 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
+
-
-
-
-
-
-
-
+
-
@@ -939,9 +927,8 @@ Davis, CA 95616, USA
-
+
-
@@ -957,7 +944,6 @@ Davis, CA 95616, USA
-
@@ -967,9 +953,8 @@ Davis, CA 95616, USA
-
+
-
@@ -983,7 +968,6 @@ Davis, CA 95616, USA
-
@@ -994,7 +978,7 @@ Davis, CA 95616, USA
-
+
@@ -1004,7 +988,7 @@ Davis, CA 95616, USA
-
+
@@ -1024,7 +1008,7 @@ Davis, CA 95616, USA
-
+
@@ -1039,7 +1023,7 @@ Davis, CA 95616, USA
-
+
@@ -1049,7 +1033,7 @@ Davis, CA 95616, USA
-
+
@@ -1064,21 +1048,21 @@ Davis, CA 95616, USA
-
+
-
+
-
+
@@ -1130,197 +1114,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1430,7 +1223,7 @@ Davis, CA 95616, USA
-
+
@@ -1583,7 +1376,7 @@ Davis, CA 95616, USA
-
+
@@ -1685,7 +1478,7 @@ Davis, CA 95616, USA
-
+
@@ -1724,197 +1517,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1944,21 +1546,18 @@ Davis, CA 95616, USA
-
+
-
+
-
-
-
@@ -1973,9 +1572,6 @@ Davis, CA 95616, USA
-
-
-
@@ -2015,9 +1611,6 @@ Davis, CA 95616, USA
-
-
-
@@ -2054,35 +1647,26 @@ Davis, CA 95616, USA
-
+
-
+
-
-
-
-
-
-
-
-
-
@@ -2183,9 +1767,6 @@ Davis, CA 95616, USA
-
-
-
@@ -2200,9 +1781,6 @@ Davis, CA 95616, USA
-
-
-
@@ -2252,7 +1830,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/EcosystemInformationCluster.xml b/data_model/1.5.1/clusters/EcosystemInformationCluster.xml
similarity index 95%
rename from data_model/master/clusters/EcosystemInformationCluster.xml
rename to data_model/1.5.1/clusters/EcosystemInformationCluster.xml
index f5ecc9a7a72..8a2e5e934a0 100644
--- a/data_model/master/clusters/EcosystemInformationCluster.xml
+++ b/data_model/1.5.1/clusters/EcosystemInformationCluster.xml
@@ -66,6 +66,17 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/clusters/ElectricalEnergyMeasurement.xml b/data_model/1.5.1/clusters/ElectricalEnergyMeasurement.xml
similarity index 63%
rename from data_model/master/clusters/ElectricalEnergyMeasurement.xml
rename to data_model/1.5.1/clusters/ElectricalEnergyMeasurement.xml
index 6ec89010b6a..5a6f1707e25 100644
--- a/data_model/master/clusters/ElectricalEnergyMeasurement.xml
+++ b/data_model/1.5.1/clusters/ElectricalEnergyMeasurement.xml
@@ -93,6 +93,59 @@ Davis, CA 95616, USA
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
@@ -135,7 +188,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
@@ -144,7 +205,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
@@ -176,6 +245,124 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ subtract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -183,7 +370,7 @@ Davis, CA 95616, USA
-
+
@@ -193,7 +380,7 @@ Davis, CA 95616, USA
-
+
@@ -203,7 +390,7 @@ Davis, CA 95616, USA
-
+
@@ -213,7 +400,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/ThreadBorderRouterDiagnostics.xml b/data_model/1.5.1/clusters/ElectricalGridConditions.xml
similarity index 63%
rename from data_model/master/clusters/ThreadBorderRouterDiagnostics.xml
rename to data_model/1.5.1/clusters/ElectricalGridConditions.xml
index a62d41572cc..11317fc3657 100644
--- a/data_model/master/clusters/ThreadBorderRouterDiagnostics.xml
+++ b/data_model/1.5.1/clusters/ElectricalGridConditions.xml
@@ -57,53 +57,94 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
-
+
-
+
-
+
+
+
+
+
+
-
- -
+
+
-
- -
+
-
- -
+
-
-
- -
+
+
-
- -
+
+
+
-
- -
+
+
+
+ add
+
+
+
+
+
+
+
+
+
-
- -
+
+
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/clusters/ElectricalPowerMeasurement.xml b/data_model/1.5.1/clusters/ElectricalPowerMeasurement.xml
similarity index 68%
rename from data_model/master/clusters/ElectricalPowerMeasurement.xml
rename to data_model/1.5.1/clusters/ElectricalPowerMeasurement.xml
index c28e75a5be4..3349108215d 100644
--- a/data_model/master/clusters/ElectricalPowerMeasurement.xml
+++ b/data_model/1.5.1/clusters/ElectricalPowerMeasurement.xml
@@ -91,6 +91,59 @@ Davis, CA 95616, USA
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
-
@@ -103,13 +156,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -120,6 +173,124 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ subtract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -150,7 +321,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
@@ -163,7 +342,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
@@ -174,7 +361,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
@@ -187,7 +382,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
@@ -202,7 +405,7 @@ Davis, CA 95616, USA
-
+
@@ -281,7 +484,7 @@ Davis, CA 95616, USA
-
+
@@ -370,7 +573,7 @@ Davis, CA 95616, USA
-
+
@@ -378,10 +581,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -389,7 +592,7 @@ Davis, CA 95616, USA
-
+
@@ -428,6 +631,14 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
diff --git a/data_model/master/clusters/EnergyEVSE.xml b/data_model/1.5.1/clusters/EnergyEVSE.xml
similarity index 95%
rename from data_model/master/clusters/EnergyEVSE.xml
rename to data_model/1.5.1/clusters/EnergyEVSE.xml
index 203fab75022..8951f4228c7 100644
--- a/data_model/master/clusters/EnergyEVSE.xml
+++ b/data_model/1.5.1/clusters/EnergyEVSE.xml
@@ -57,11 +57,12 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -72,25 +73,16 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
@@ -243,7 +235,7 @@ Davis, CA 95616, USA
-
+
@@ -284,19 +276,19 @@ Davis, CA 95616, USA
-
+
-
+
-
+
@@ -304,7 +296,7 @@ Davis, CA 95616, USA
-
+
@@ -312,7 +304,7 @@ Davis, CA 95616, USA
-
+
@@ -320,7 +312,7 @@ Davis, CA 95616, USA
-
+
@@ -346,21 +338,21 @@ Davis, CA 95616, USA
-
+
-
+
-
+
@@ -370,7 +362,7 @@ Davis, CA 95616, USA
-
+
@@ -387,14 +379,14 @@ Davis, CA 95616, USA
-
+
-
+
@@ -404,7 +396,7 @@ Davis, CA 95616, USA
-
+
@@ -414,17 +406,17 @@ Davis, CA 95616, USA
-
+
-
+
-
+
@@ -432,7 +424,7 @@ Davis, CA 95616, USA
-
+
@@ -463,7 +455,7 @@ Davis, CA 95616, USA
-
+
@@ -485,7 +477,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/EnergyPreference.xml b/data_model/1.5.1/clusters/EnergyPreference.xml
similarity index 99%
rename from data_model/master/clusters/EnergyPreference.xml
rename to data_model/1.5.1/clusters/EnergyPreference.xml
index 26c17221027..3ee60dc5be5 100644
--- a/data_model/master/clusters/EnergyPreference.xml
+++ b/data_model/1.5.1/clusters/EnergyPreference.xml
@@ -91,7 +91,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/FanControl.xml b/data_model/1.5.1/clusters/FanControl.xml
similarity index 91%
rename from data_model/master/clusters/FanControl.xml
rename to data_model/1.5.1/clusters/FanControl.xml
index f45aef70174..cb10bc88925 100644
--- a/data_model/master/clusters/FanControl.xml
+++ b/data_model/1.5.1/clusters/FanControl.xml
@@ -57,13 +57,14 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -192,7 +193,7 @@ Davis, CA 95616, USA
-
+
@@ -200,12 +201,12 @@ Davis, CA 95616, USA
-
+
-
+
@@ -213,14 +214,14 @@ Davis, CA 95616, USA
-
+
-
+
@@ -233,7 +234,7 @@ Davis, CA 95616, USA
-
+
@@ -245,9 +246,8 @@ Davis, CA 95616, USA
-
+
-
@@ -257,7 +257,7 @@ Davis, CA 95616, USA
-
+
@@ -267,9 +267,8 @@ Davis, CA 95616, USA
-
+
-
@@ -277,7 +276,7 @@ Davis, CA 95616, USA
-
+
@@ -287,9 +286,8 @@ Davis, CA 95616, USA
-
+
-
@@ -297,9 +295,8 @@ Davis, CA 95616, USA
-
+
-
@@ -312,9 +309,6 @@ Davis, CA 95616, USA
-
-
-
diff --git a/data_model/master/clusters/FixedLabel-Cluster.xml b/data_model/1.5.1/clusters/FixedLabel-Cluster.xml
similarity index 100%
rename from data_model/master/clusters/FixedLabel-Cluster.xml
rename to data_model/1.5.1/clusters/FixedLabel-Cluster.xml
diff --git a/data_model/master/clusters/FlowMeasurement.xml b/data_model/1.5.1/clusters/FlowMeasurement.xml
similarity index 92%
rename from data_model/master/clusters/FlowMeasurement.xml
rename to data_model/1.5.1/clusters/FlowMeasurement.xml
index 705917c8a6a..e001c80913c 100644
--- a/data_model/master/clusters/FlowMeasurement.xml
+++ b/data_model/1.5.1/clusters/FlowMeasurement.xml
@@ -57,20 +57,21 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
+
-
+
@@ -96,7 +97,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
diff --git a/data_model/master/clusters/GeneralCommissioningCluster.xml b/data_model/1.5.1/clusters/GeneralCommissioningCluster.xml
similarity index 89%
rename from data_model/master/clusters/GeneralCommissioningCluster.xml
rename to data_model/1.5.1/clusters/GeneralCommissioningCluster.xml
index ed44f942d86..a68c4e1510d 100644
--- a/data_model/master/clusters/GeneralCommissioningCluster.xml
+++ b/data_model/1.5.1/clusters/GeneralCommissioningCluster.xml
@@ -68,10 +68,13 @@ Davis, CA 95616, USA
-
+
-
+
+
+
+
@@ -177,67 +180,39 @@ Davis, CA 95616, USA
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -250,7 +225,7 @@ Davis, CA 95616, USA
-
+
@@ -260,6 +235,13 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
@@ -324,12 +306,9 @@ Davis, CA 95616, USA
-
-
-
-
-
-
+
+
+
@@ -338,12 +317,9 @@ Davis, CA 95616, USA
-
-
-
-
-
-
+
+
+
diff --git a/data_model/master/clusters/Group-Key-Management-Cluster.xml b/data_model/1.5.1/clusters/Group-Key-Management-Cluster.xml
similarity index 96%
rename from data_model/master/clusters/Group-Key-Management-Cluster.xml
rename to data_model/1.5.1/clusters/Group-Key-Management-Cluster.xml
index 31b3fb153e8..1ebe5130841 100644
--- a/data_model/master/clusters/Group-Key-Management-Cluster.xml
+++ b/data_model/1.5.1/clusters/Group-Key-Management-Cluster.xml
@@ -129,11 +129,9 @@ Davis, CA 95616, USA
-
-
@@ -141,12 +139,10 @@ Davis, CA 95616, USA
-
-
@@ -154,12 +150,10 @@ Davis, CA 95616, USA
-
-
@@ -167,17 +161,16 @@ Davis, CA 95616, USA
-
-
+
diff --git a/data_model/master/clusters/Groups.xml b/data_model/1.5.1/clusters/Groups.xml
similarity index 99%
rename from data_model/master/clusters/Groups.xml
rename to data_model/1.5.1/clusters/Groups.xml
index e580c607c27..1be23beef1f 100644
--- a/data_model/master/clusters/Groups.xml
+++ b/data_model/1.5.1/clusters/Groups.xml
@@ -81,7 +81,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/ICDManagement.xml b/data_model/1.5.1/clusters/ICDManagement.xml
similarity index 100%
rename from data_model/master/clusters/ICDManagement.xml
rename to data_model/1.5.1/clusters/ICDManagement.xml
diff --git a/data_model/master/clusters/Identify.xml b/data_model/1.5.1/clusters/Identify.xml
similarity index 96%
rename from data_model/master/clusters/Identify.xml
rename to data_model/1.5.1/clusters/Identify.xml
index 4e334059260..a919486e30f 100644
--- a/data_model/master/clusters/Identify.xml
+++ b/data_model/1.5.1/clusters/Identify.xml
@@ -57,13 +57,14 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -117,11 +118,12 @@ Davis, CA 95616, USA
-
+
+
-
+
diff --git a/data_model/master/clusters/IlluminanceMeasurement.xml b/data_model/1.5.1/clusters/IlluminanceMeasurement.xml
similarity index 92%
rename from data_model/master/clusters/IlluminanceMeasurement.xml
rename to data_model/1.5.1/clusters/IlluminanceMeasurement.xml
index 37d9b5b6779..89e74089a4e 100644
--- a/data_model/master/clusters/IlluminanceMeasurement.xml
+++ b/data_model/1.5.1/clusters/IlluminanceMeasurement.xml
@@ -57,11 +57,12 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -78,9 +79,9 @@ Davis, CA 95616, USA
-
+
-
+
@@ -112,7 +113,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
diff --git a/data_model/master/clusters/JointFabricPKICluster.xml b/data_model/1.5.1/clusters/JointFabricAdministratorCluster.xml
similarity index 50%
rename from data_model/master/clusters/JointFabricPKICluster.xml
rename to data_model/1.5.1/clusters/JointFabricAdministratorCluster.xml
index 3e703831c6f..7a75190ee72 100644
--- a/data_model/master/clusters/JointFabricPKICluster.xml
+++ b/data_model/1.5.1/clusters/JointFabricAdministratorCluster.xml
@@ -57,41 +57,58 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
-
+
-
+
-
- -
+
-
- -
+
-
- -
-
+
+
+ -
+
+
+
+
- -
-
+
-
+
+
+
+
- -
-
+
-
+
+
+
+
- -
-
+
-
+
+
+
+
- -
-
+
-
+
+
+
+
@@ -106,42 +123,139 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
-
-
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/clusters/JointFabricDatastoreCluster.xml b/data_model/1.5.1/clusters/JointFabricDatastoreCluster.xml
similarity index 58%
rename from data_model/master/clusters/JointFabricDatastoreCluster.xml
rename to data_model/1.5.1/clusters/JointFabricDatastoreCluster.xml
index 54f86420bfe..5af24d1cf97 100644
--- a/data_model/master/clusters/JointFabricDatastoreCluster.xml
+++ b/data_model/1.5.1/clusters/JointFabricDatastoreCluster.xml
@@ -68,6 +68,47 @@ Davis, CA 95616, USA
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
-
@@ -89,13 +130,54 @@ Davis, CA 95616, USA
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -116,7 +198,33 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -128,7 +236,7 @@ Davis, CA 95616, USA
-
+
@@ -137,7 +245,6 @@ Davis, CA 95616, USA
-
@@ -155,7 +262,6 @@ Davis, CA 95616, USA
-
@@ -170,7 +276,6 @@ Davis, CA 95616, USA
-
@@ -183,36 +288,82 @@ Davis, CA 95616, USA
+
-
+
+
-
-
-
-
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -227,9 +378,8 @@ Davis, CA 95616, USA
-
-
+
@@ -239,116 +389,168 @@ Davis, CA 95616, USA
-
-
+
-
+
-
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
@@ -359,39 +561,42 @@ Davis, CA 95616, USA
+
-
+
+
-
-
-
-
+
+
-
+
-
+
-
-
+
+
+
+
+
@@ -416,10 +621,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -432,27 +634,52 @@ Davis, CA 95616, USA
-
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
@@ -473,15 +700,21 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
-
-
+
+
+
+
+
@@ -493,15 +726,21 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
-
-
+
+
+
+
+
@@ -513,15 +752,21 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
-
-
+
+
+
+
+
@@ -536,8 +781,11 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
@@ -549,8 +797,11 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
@@ -562,21 +813,27 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
-
+
-
-
+
+
+
+
+
@@ -588,18 +845,24 @@ Davis, CA 95616, USA
-
-
+
+
+
+
+
-
+
-
-
+
+
+
+
+
diff --git a/data_model/master/clusters/KeypadInput.xml b/data_model/1.5.1/clusters/KeypadInput.xml
similarity index 100%
rename from data_model/master/clusters/KeypadInput.xml
rename to data_model/1.5.1/clusters/KeypadInput.xml
diff --git a/data_model/master/clusters/Label-Cluster.xml b/data_model/1.5.1/clusters/Label-Cluster.xml
similarity index 98%
rename from data_model/master/clusters/Label-Cluster.xml
rename to data_model/1.5.1/clusters/Label-Cluster.xml
index b9cd9e7f440..e116355b67e 100644
--- a/data_model/master/clusters/Label-Cluster.xml
+++ b/data_model/1.5.1/clusters/Label-Cluster.xml
@@ -82,7 +82,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/LaundryDryerControls.xml b/data_model/1.5.1/clusters/LaundryDryerControls.xml
similarity index 99%
rename from data_model/master/clusters/LaundryDryerControls.xml
rename to data_model/1.5.1/clusters/LaundryDryerControls.xml
index b7549bbeadf..37cf87d481b 100644
--- a/data_model/master/clusters/LaundryDryerControls.xml
+++ b/data_model/1.5.1/clusters/LaundryDryerControls.xml
@@ -93,7 +93,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/LaundryWasherControls.xml b/data_model/1.5.1/clusters/LaundryWasherControls.xml
similarity index 98%
rename from data_model/master/clusters/LaundryWasherControls.xml
rename to data_model/1.5.1/clusters/LaundryWasherControls.xml
index 350b5c0da4f..00cc966b119 100644
--- a/data_model/master/clusters/LaundryWasherControls.xml
+++ b/data_model/1.5.1/clusters/LaundryWasherControls.xml
@@ -113,7 +113,7 @@ Davis, CA 95616, USA
-
+
@@ -123,7 +123,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/LevelControl.xml b/data_model/1.5.1/clusters/LevelControl.xml
similarity index 87%
rename from data_model/master/clusters/LevelControl.xml
rename to data_model/1.5.1/clusters/LevelControl.xml
index e25c7fc3bbd..bd9ef59feaf 100644
--- a/data_model/master/clusters/LevelControl.xml
+++ b/data_model/1.5.1/clusters/LevelControl.xml
@@ -57,7 +57,7 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
@@ -65,6 +65,7 @@ Davis, CA 95616, USA
+
@@ -115,7 +116,7 @@ Davis, CA 95616, USA
-
+
@@ -130,7 +131,7 @@ Davis, CA 95616, USA
-
+
@@ -139,30 +140,32 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
@@ -172,9 +175,9 @@ Davis, CA 95616, USA
-
+
-
+
@@ -189,13 +192,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -206,7 +209,7 @@ Davis, CA 95616, USA
-
+
@@ -217,7 +220,7 @@ Davis, CA 95616, USA
-
+
@@ -250,7 +253,7 @@ Davis, CA 95616, USA
-
+
@@ -275,13 +278,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -301,13 +304,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -330,13 +333,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -346,13 +349,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -380,7 +383,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/LocalizationConfiguration.xml b/data_model/1.5.1/clusters/LocalizationConfiguration.xml
similarity index 100%
rename from data_model/master/clusters/LocalizationConfiguration.xml
rename to data_model/1.5.1/clusters/LocalizationConfiguration.xml
diff --git a/data_model/master/clusters/LocalizationTimeFormat.xml b/data_model/1.5.1/clusters/LocalizationTimeFormat.xml
similarity index 99%
rename from data_model/master/clusters/LocalizationTimeFormat.xml
rename to data_model/1.5.1/clusters/LocalizationTimeFormat.xml
index a9b3c47acce..946d553194d 100644
--- a/data_model/master/clusters/LocalizationTimeFormat.xml
+++ b/data_model/1.5.1/clusters/LocalizationTimeFormat.xml
@@ -137,7 +137,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/LocalizationUnit.xml b/data_model/1.5.1/clusters/LocalizationUnit.xml
similarity index 100%
rename from data_model/master/clusters/LocalizationUnit.xml
rename to data_model/1.5.1/clusters/LocalizationUnit.xml
diff --git a/data_model/master/clusters/LowPower.xml b/data_model/1.5.1/clusters/LowPower.xml
similarity index 100%
rename from data_model/master/clusters/LowPower.xml
rename to data_model/1.5.1/clusters/LowPower.xml
diff --git a/data_model/master/clusters/MediaInput.xml b/data_model/1.5.1/clusters/MediaInput.xml
similarity index 100%
rename from data_model/master/clusters/MediaInput.xml
rename to data_model/1.5.1/clusters/MediaInput.xml
diff --git a/data_model/master/clusters/MediaPlayback.xml b/data_model/1.5.1/clusters/MediaPlayback.xml
similarity index 100%
rename from data_model/master/clusters/MediaPlayback.xml
rename to data_model/1.5.1/clusters/MediaPlayback.xml
diff --git a/data_model/master/clusters/Messages.xml b/data_model/1.5.1/clusters/Messages.xml
similarity index 93%
rename from data_model/master/clusters/Messages.xml
rename to data_model/1.5.1/clusters/Messages.xml
index 780b77f6b43..186e4cf81a6 100644
--- a/data_model/master/clusters/Messages.xml
+++ b/data_model/1.5.1/clusters/Messages.xml
@@ -166,20 +166,20 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -191,7 +191,7 @@ Davis, CA 95616, USA
-
+
@@ -205,7 +205,7 @@ Davis, CA 95616, USA
-
+
@@ -213,7 +213,7 @@ Davis, CA 95616, USA
-
+
@@ -232,17 +232,17 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -252,7 +252,7 @@ Davis, CA 95616, USA
-
+
@@ -304,13 +304,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -319,7 +319,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/MeterIdentification.xml b/data_model/1.5.1/clusters/MeterIdentification.xml
similarity index 98%
rename from data_model/master/clusters/MeterIdentification.xml
rename to data_model/1.5.1/clusters/MeterIdentification.xml
index 378bab02464..ebb0bcf7e78 100644
--- a/data_model/master/clusters/MeterIdentification.xml
+++ b/data_model/1.5.1/clusters/MeterIdentification.xml
@@ -62,9 +62,7 @@ Davis, CA 95616, USA
-
-
-
+
diff --git a/data_model/master/clusters/MicrowaveOvenControl.xml b/data_model/1.5.1/clusters/MicrowaveOvenControl.xml
similarity index 93%
rename from data_model/master/clusters/MicrowaveOvenControl.xml
rename to data_model/1.5.1/clusters/MicrowaveOvenControl.xml
index c21477f22ca..11ade34f267 100644
--- a/data_model/master/clusters/MicrowaveOvenControl.xml
+++ b/data_model/1.5.1/clusters/MicrowaveOvenControl.xml
@@ -82,7 +82,7 @@ Davis, CA 95616, USA
-
+
@@ -94,7 +94,7 @@ Davis, CA 95616, USA
-
+
@@ -105,7 +105,7 @@ Davis, CA 95616, USA
-
+
@@ -114,7 +114,7 @@ Davis, CA 95616, USA
-
+
@@ -127,7 +127,7 @@ Davis, CA 95616, USA
-
+
@@ -135,12 +135,20 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
-
+
@@ -150,7 +158,7 @@ Davis, CA 95616, USA
-
+
@@ -167,7 +175,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/ModeBase.xml b/data_model/1.5.1/clusters/ModeBase.xml
similarity index 94%
rename from data_model/master/clusters/ModeBase.xml
rename to data_model/1.5.1/clusters/ModeBase.xml
index cb5bb200468..f0fb5498f67 100644
--- a/data_model/master/clusters/ModeBase.xml
+++ b/data_model/1.5.1/clusters/ModeBase.xml
@@ -73,18 +73,18 @@ Davis, CA 95616, USA
-
+
-
+
-
+
@@ -106,7 +106,7 @@ Davis, CA 95616, USA
-
+
@@ -118,7 +118,7 @@ Davis, CA 95616, USA
-
+
@@ -134,7 +134,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/ModeSelect.xml b/data_model/1.5.1/clusters/ModeSelect.xml
similarity index 100%
rename from data_model/master/clusters/ModeSelect.xml
rename to data_model/1.5.1/clusters/ModeSelect.xml
diff --git a/data_model/master/clusters/Mode_DeviceEnergyManagement.xml b/data_model/1.5.1/clusters/Mode_DeviceEnergyManagement.xml
similarity index 100%
rename from data_model/master/clusters/Mode_DeviceEnergyManagement.xml
rename to data_model/1.5.1/clusters/Mode_DeviceEnergyManagement.xml
diff --git a/data_model/master/clusters/Mode_Dishwasher.xml b/data_model/1.5.1/clusters/Mode_Dishwasher.xml
similarity index 100%
rename from data_model/master/clusters/Mode_Dishwasher.xml
rename to data_model/1.5.1/clusters/Mode_Dishwasher.xml
diff --git a/data_model/master/clusters/Mode_EVSE.xml b/data_model/1.5.1/clusters/Mode_EVSE.xml
similarity index 100%
rename from data_model/master/clusters/Mode_EVSE.xml
rename to data_model/1.5.1/clusters/Mode_EVSE.xml
diff --git a/data_model/master/clusters/Mode_LaundryWasher.xml b/data_model/1.5.1/clusters/Mode_LaundryWasher.xml
similarity index 100%
rename from data_model/master/clusters/Mode_LaundryWasher.xml
rename to data_model/1.5.1/clusters/Mode_LaundryWasher.xml
diff --git a/data_model/master/clusters/Mode_MicrowaveOven.xml b/data_model/1.5.1/clusters/Mode_MicrowaveOven.xml
similarity index 100%
rename from data_model/master/clusters/Mode_MicrowaveOven.xml
rename to data_model/1.5.1/clusters/Mode_MicrowaveOven.xml
diff --git a/data_model/master/clusters/Mode_Oven.xml b/data_model/1.5.1/clusters/Mode_Oven.xml
similarity index 97%
rename from data_model/master/clusters/Mode_Oven.xml
rename to data_model/1.5.1/clusters/Mode_Oven.xml
index d7180d0e634..669560acb02 100644
--- a/data_model/master/clusters/Mode_Oven.xml
+++ b/data_model/1.5.1/clusters/Mode_Oven.xml
@@ -93,6 +93,9 @@ Davis, CA 95616, USA
+
+
+
diff --git a/data_model/master/clusters/Mode_RVCClean.xml b/data_model/1.5.1/clusters/Mode_RVCClean.xml
similarity index 95%
rename from data_model/master/clusters/Mode_RVCClean.xml
rename to data_model/1.5.1/clusters/Mode_RVCClean.xml
index 03cc03a7fd7..3a27a4f7702 100644
--- a/data_model/master/clusters/Mode_RVCClean.xml
+++ b/data_model/1.5.1/clusters/Mode_RVCClean.xml
@@ -57,12 +57,13 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -73,10 +74,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -96,6 +94,11 @@ Davis, CA 95616, USA
+
+ -
+
+
+
diff --git a/data_model/master/clusters/Mode_RVCRun.xml b/data_model/1.5.1/clusters/Mode_RVCRun.xml
similarity index 86%
rename from data_model/master/clusters/Mode_RVCRun.xml
rename to data_model/1.5.1/clusters/Mode_RVCRun.xml
index ce5b6a28bfb..e4c4540ba42 100644
--- a/data_model/master/clusters/Mode_RVCRun.xml
+++ b/data_model/1.5.1/clusters/Mode_RVCRun.xml
@@ -57,11 +57,12 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -72,10 +73,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -94,6 +92,32 @@ Davis, CA 95616, USA
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
diff --git a/data_model/master/clusters/Mode_Refrigerator.xml b/data_model/1.5.1/clusters/Mode_Refrigerator.xml
similarity index 100%
rename from data_model/master/clusters/Mode_Refrigerator.xml
rename to data_model/1.5.1/clusters/Mode_Refrigerator.xml
diff --git a/data_model/master/clusters/Mode_WaterHeater.xml b/data_model/1.5.1/clusters/Mode_WaterHeater.xml
similarity index 100%
rename from data_model/master/clusters/Mode_WaterHeater.xml
rename to data_model/1.5.1/clusters/Mode_WaterHeater.xml
diff --git a/data_model/master/clusters/NetworkCommissioningCluster.xml b/data_model/1.5.1/clusters/NetworkCommissioningCluster.xml
similarity index 83%
rename from data_model/master/clusters/NetworkCommissioningCluster.xml
rename to data_model/1.5.1/clusters/NetworkCommissioningCluster.xml
index 71c2ef2ec94..b08f8d9fe4a 100644
--- a/data_model/master/clusters/NetworkCommissioningCluster.xml
+++ b/data_model/1.5.1/clusters/NetworkCommissioningCluster.xml
@@ -57,11 +57,10 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
-
@@ -77,14 +76,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
@@ -181,12 +172,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
@@ -201,36 +186,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -508,36 +463,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -602,23 +527,15 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ subtract
+
+
+
+
+
+
@@ -688,50 +605,5 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/clusters/OTAProvider.xml b/data_model/1.5.1/clusters/OTAProvider.xml
similarity index 96%
rename from data_model/master/clusters/OTAProvider.xml
rename to data_model/1.5.1/clusters/OTAProvider.xml
index 8676524416f..cc1bbb2e2fb 100644
--- a/data_model/master/clusters/OTAProvider.xml
+++ b/data_model/1.5.1/clusters/OTAProvider.xml
@@ -150,13 +150,16 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/clusters/OTARequestor.xml b/data_model/1.5.1/clusters/OTARequestor.xml
similarity index 100%
rename from data_model/master/clusters/OTARequestor.xml
rename to data_model/1.5.1/clusters/OTARequestor.xml
diff --git a/data_model/master/clusters/OccupancySensing.xml b/data_model/1.5.1/clusters/OccupancySensing.xml
similarity index 98%
rename from data_model/master/clusters/OccupancySensing.xml
rename to data_model/1.5.1/clusters/OccupancySensing.xml
index 80619ad421a..09dd01fd6e9 100644
--- a/data_model/master/clusters/OccupancySensing.xml
+++ b/data_model/1.5.1/clusters/OccupancySensing.xml
@@ -57,13 +57,14 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -135,6 +136,14 @@ Davis, CA 95616, USA
+
+
+
+
+ 10
+
+
+
@@ -154,7 +163,6 @@ Davis, CA 95616, USA
-
diff --git a/data_model/master/clusters/OnOff.xml b/data_model/1.5.1/clusters/OnOff.xml
similarity index 97%
rename from data_model/master/clusters/OnOff.xml
rename to data_model/1.5.1/clusters/OnOff.xml
index a58d4fcdf65..a8fc72fb245 100644
--- a/data_model/master/clusters/OnOff.xml
+++ b/data_model/1.5.1/clusters/OnOff.xml
@@ -139,30 +139,30 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
-
+
@@ -205,7 +205,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/OperationalCredentialCluster.xml b/data_model/1.5.1/clusters/OperationalCredentialCluster.xml
similarity index 96%
rename from data_model/master/clusters/OperationalCredentialCluster.xml
rename to data_model/1.5.1/clusters/OperationalCredentialCluster.xml
index 0a1c2df3e26..e2550060f71 100644
--- a/data_model/master/clusters/OperationalCredentialCluster.xml
+++ b/data_model/1.5.1/clusters/OperationalCredentialCluster.xml
@@ -60,7 +60,7 @@ Davis, CA 95616, USA
-
+
@@ -139,10 +139,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -164,10 +161,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -424,10 +418,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -446,10 +437,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -467,10 +455,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/clusters/OperationalState.xml b/data_model/1.5.1/clusters/OperationalState.xml
similarity index 100%
rename from data_model/master/clusters/OperationalState.xml
rename to data_model/1.5.1/clusters/OperationalState.xml
diff --git a/data_model/master/clusters/OperationalState_Oven.xml b/data_model/1.5.1/clusters/OperationalState_Oven.xml
similarity index 100%
rename from data_model/master/clusters/OperationalState_Oven.xml
rename to data_model/1.5.1/clusters/OperationalState_Oven.xml
diff --git a/data_model/master/clusters/OperationalState_RVC.xml b/data_model/1.5.1/clusters/OperationalState_RVC.xml
similarity index 87%
rename from data_model/master/clusters/OperationalState_RVC.xml
rename to data_model/1.5.1/clusters/OperationalState_RVC.xml
index f5bfbfac193..a4e1110d28a 100644
--- a/data_model/master/clusters/OperationalState_RVC.xml
+++ b/data_model/1.5.1/clusters/OperationalState_RVC.xml
@@ -106,46 +106,25 @@ Davis, CA 95616, USA
-
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
+
- -
-
-
-
-
+
-
+
-
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
+
@@ -171,28 +150,16 @@ Davis, CA 95616, USA
-
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
+
diff --git a/data_model/master/clusters/PowerSourceCluster.xml b/data_model/1.5.1/clusters/PowerSourceCluster.xml
similarity index 100%
rename from data_model/master/clusters/PowerSourceCluster.xml
rename to data_model/1.5.1/clusters/PowerSourceCluster.xml
diff --git a/data_model/master/clusters/PowerSourceConfigurationCluster.xml b/data_model/1.5.1/clusters/PowerSourceConfigurationCluster.xml
similarity index 100%
rename from data_model/master/clusters/PowerSourceConfigurationCluster.xml
rename to data_model/1.5.1/clusters/PowerSourceConfigurationCluster.xml
diff --git a/data_model/master/clusters/PowerTopology.xml b/data_model/1.5.1/clusters/PowerTopology.xml
similarity index 91%
rename from data_model/master/clusters/PowerTopology.xml
rename to data_model/1.5.1/clusters/PowerTopology.xml
index 077100432e5..09c20f78208 100644
--- a/data_model/master/clusters/PowerTopology.xml
+++ b/data_model/1.5.1/clusters/PowerTopology.xml
@@ -81,6 +81,23 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/clusters/PressureMeasurement.xml b/data_model/1.5.1/clusters/PressureMeasurement.xml
similarity index 88%
rename from data_model/master/clusters/PressureMeasurement.xml
rename to data_model/1.5.1/clusters/PressureMeasurement.xml
index 49d99fc6824..31296b89da1 100644
--- a/data_model/master/clusters/PressureMeasurement.xml
+++ b/data_model/1.5.1/clusters/PressureMeasurement.xml
@@ -57,11 +57,12 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -75,7 +76,7 @@ Davis, CA 95616, USA
-
+
@@ -102,7 +103,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
@@ -114,7 +123,7 @@ Davis, CA 95616, USA
-
+
@@ -131,7 +140,7 @@ Davis, CA 95616, USA
-
+
@@ -141,7 +150,7 @@ Davis, CA 95616, USA
-
+
@@ -149,7 +158,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
@@ -163,7 +180,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/PumpConfigurationControl.xml b/data_model/1.5.1/clusters/PumpConfigurationControl.xml
similarity index 99%
rename from data_model/master/clusters/PumpConfigurationControl.xml
rename to data_model/1.5.1/clusters/PumpConfigurationControl.xml
index b652c5286f4..ceda5550b5a 100644
--- a/data_model/master/clusters/PumpConfigurationControl.xml
+++ b/data_model/1.5.1/clusters/PumpConfigurationControl.xml
@@ -57,12 +57,13 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -318,7 +319,6 @@ Davis, CA 95616, USA
-
@@ -342,7 +342,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/PushAVStreamTransport.xml b/data_model/1.5.1/clusters/PushAVStreamTransport.xml
similarity index 62%
rename from data_model/master/clusters/PushAVStreamTransport.xml
rename to data_model/1.5.1/clusters/PushAVStreamTransport.xml
index 5fbaedc2726..87667a60da1 100644
--- a/data_model/master/clusters/PushAVStreamTransport.xml
+++ b/data_model/1.5.1/clusters/PushAVStreamTransport.xml
@@ -57,14 +57,13 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
-
-
+
@@ -80,6 +79,23 @@ Davis, CA 95616, USA
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
-
@@ -103,16 +119,28 @@ Davis, CA 95616, USA
-
- -
+
-
+
+
+ -
+
+
+ -
- -
+
-
- -
+
-
- -
+
-
+
+
+ -
+
+
+ -
@@ -145,28 +173,87 @@ Davis, CA 95616, USA
-
+ -
+
+
-
-
+
+
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ divide
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -180,14 +267,28 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -198,22 +299,22 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -223,14 +324,20 @@ Davis, CA 95616, USA
-
+
-
+
-
+
+
+
+
+
+
+
@@ -247,37 +354,70 @@ Davis, CA 95616, USA
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
@@ -295,7 +435,7 @@ Davis, CA 95616, USA
-
+
@@ -304,22 +444,22 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -331,19 +471,32 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
+
@@ -374,6 +527,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -381,6 +540,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -402,6 +567,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -409,14 +580,22 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
-
+
-
+
@@ -434,6 +613,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -442,25 +627,53 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
diff --git a/data_model/master/clusters/RefrigeratorAlarm.xml b/data_model/1.5.1/clusters/RefrigeratorAlarm.xml
similarity index 100%
rename from data_model/master/clusters/RefrigeratorAlarm.xml
rename to data_model/1.5.1/clusters/RefrigeratorAlarm.xml
diff --git a/data_model/master/clusters/ResourceMonitoring.xml b/data_model/1.5.1/clusters/ResourceMonitoring.xml
similarity index 99%
rename from data_model/master/clusters/ResourceMonitoring.xml
rename to data_model/1.5.1/clusters/ResourceMonitoring.xml
index 9fe85266ecb..462ad35e71f 100644
--- a/data_model/master/clusters/ResourceMonitoring.xml
+++ b/data_model/1.5.1/clusters/ResourceMonitoring.xml
@@ -149,7 +149,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/Scenes.xml b/data_model/1.5.1/clusters/Scenes.xml
similarity index 96%
rename from data_model/master/clusters/Scenes.xml
rename to data_model/1.5.1/clusters/Scenes.xml
index ed5da7e063d..4f2303181b7 100644
--- a/data_model/master/clusters/Scenes.xml
+++ b/data_model/1.5.1/clusters/Scenes.xml
@@ -62,9 +62,7 @@ Davis, CA 95616, USA
-
-
-
+
@@ -120,25 +118,25 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
-
+
@@ -149,9 +147,10 @@ Davis, CA 95616, USA
+
-
+
diff --git a/data_model/master/clusters/ServiceArea.xml b/data_model/1.5.1/clusters/ServiceArea.xml
similarity index 100%
rename from data_model/master/clusters/ServiceArea.xml
rename to data_model/1.5.1/clusters/ServiceArea.xml
diff --git a/data_model/master/clusters/SmokeCOAlarm.xml b/data_model/1.5.1/clusters/SmokeCOAlarm.xml
similarity index 100%
rename from data_model/master/clusters/SmokeCOAlarm.xml
rename to data_model/1.5.1/clusters/SmokeCOAlarm.xml
diff --git a/data_model/master/clusters/SoilMeasurement.xml b/data_model/1.5.1/clusters/SoilMeasurement.xml
similarity index 90%
rename from data_model/master/clusters/SoilMeasurement.xml
rename to data_model/1.5.1/clusters/SoilMeasurement.xml
index 7ab20bce177..89065f9e3ba 100644
--- a/data_model/master/clusters/SoilMeasurement.xml
+++ b/data_model/1.5.1/clusters/SoilMeasurement.xml
@@ -62,20 +62,14 @@ Davis, CA 95616, USA
-
-
-
+
-
-
+
-
-
-
@@ -84,10 +78,14 @@ Davis, CA 95616, USA
-
+
+
+
-
+
+
+
diff --git a/data_model/master/clusters/Switch.xml b/data_model/1.5.1/clusters/Switch.xml
similarity index 81%
rename from data_model/master/clusters/Switch.xml
rename to data_model/1.5.1/clusters/Switch.xml
index 07a7e4a2bdc..5c989c7d8fa 100644
--- a/data_model/master/clusters/Switch.xml
+++ b/data_model/1.5.1/clusters/Switch.xml
@@ -114,7 +114,7 @@ Davis, CA 95616, USA
-
+
@@ -122,15 +122,23 @@ Davis, CA 95616, USA
-
+
-
+
+
+ subtract
+
+
+
+
+
+
-
+
@@ -152,7 +160,15 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
@@ -167,7 +183,15 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
@@ -182,7 +206,15 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
@@ -197,7 +229,15 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
@@ -212,7 +252,15 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
@@ -232,7 +280,15 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
@@ -258,7 +314,15 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
diff --git a/data_model/master/clusters/TLSCertificateManagement.xml b/data_model/1.5.1/clusters/TLSCertificateManagement.xml
similarity index 82%
rename from data_model/master/clusters/TLSCertificateManagement.xml
rename to data_model/1.5.1/clusters/TLSCertificateManagement.xml
index df72e3dff57..1033bd89555 100644
--- a/data_model/master/clusters/TLSCertificateManagement.xml
+++ b/data_model/1.5.1/clusters/TLSCertificateManagement.xml
@@ -62,9 +62,7 @@ Davis, CA 95616, USA
-
-
-
+
@@ -73,6 +71,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -85,8 +89,15 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
@@ -107,7 +118,7 @@ Davis, CA 95616, USA
-
+
@@ -129,13 +140,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -163,7 +174,7 @@ Davis, CA 95616, USA
-
+
@@ -173,13 +184,19 @@ Davis, CA 95616, USA
+
+
+
+
+
+
-
+
@@ -216,6 +233,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -224,24 +247,46 @@ Davis, CA 95616, USA
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
@@ -249,7 +294,7 @@ Davis, CA 95616, USA
-
+
@@ -262,9 +307,32 @@ Davis, CA 95616, USA
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -308,6 +376,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -316,6 +390,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
diff --git a/data_model/master/clusters/TLSClientManagement.xml b/data_model/1.5.1/clusters/TLSClientManagement.xml
similarity index 75%
rename from data_model/master/clusters/TLSClientManagement.xml
rename to data_model/1.5.1/clusters/TLSClientManagement.xml
index a3e1f9d817e..09b2435539b 100644
--- a/data_model/master/clusters/TLSClientManagement.xml
+++ b/data_model/1.5.1/clusters/TLSClientManagement.xml
@@ -62,24 +62,37 @@ Davis, CA 95616, USA
-
-
-
+
-
- -
+
+
-
- -
+
-
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
@@ -92,22 +105,34 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -124,9 +149,7 @@ Davis, CA 95616, USA
-
-
-
+
@@ -146,15 +169,27 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -164,6 +199,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -172,6 +213,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -179,6 +226,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
@@ -187,6 +240,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
diff --git a/data_model/master/clusters/TargetNavigator.xml b/data_model/1.5.1/clusters/TargetNavigator.xml
similarity index 100%
rename from data_model/master/clusters/TargetNavigator.xml
rename to data_model/1.5.1/clusters/TargetNavigator.xml
diff --git a/data_model/master/clusters/TemperatureControl.xml b/data_model/1.5.1/clusters/TemperatureControl.xml
similarity index 92%
rename from data_model/master/clusters/TemperatureControl.xml
rename to data_model/1.5.1/clusters/TemperatureControl.xml
index e0633027869..92f8be5084c 100644
--- a/data_model/master/clusters/TemperatureControl.xml
+++ b/data_model/1.5.1/clusters/TemperatureControl.xml
@@ -102,7 +102,15 @@ Davis, CA 95616, USA
-
+
+
+ subtract
+
+
+
+
+
+
@@ -122,7 +130,20 @@ Davis, CA 95616, USA
-
+
+
+
+
+ subtract
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/clusters/TemperatureMeasurement.xml b/data_model/1.5.1/clusters/TemperatureMeasurement.xml
similarity index 93%
rename from data_model/master/clusters/TemperatureMeasurement.xml
rename to data_model/1.5.1/clusters/TemperatureMeasurement.xml
index 7742526f923..ccf9f909c1a 100644
--- a/data_model/master/clusters/TemperatureMeasurement.xml
+++ b/data_model/1.5.1/clusters/TemperatureMeasurement.xml
@@ -57,12 +57,13 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -71,7 +72,7 @@ Davis, CA 95616, USA
-
+
@@ -100,7 +101,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
diff --git a/data_model/master/clusters/Thermostat.xml b/data_model/1.5.1/clusters/Thermostat.xml
similarity index 65%
rename from data_model/master/clusters/Thermostat.xml
rename to data_model/1.5.1/clusters/Thermostat.xml
index 0b46bde3878..603032e4799 100644
--- a/data_model/master/clusters/Thermostat.xml
+++ b/data_model/1.5.1/clusters/Thermostat.xml
@@ -67,7 +67,7 @@ Davis, CA 95616, USA
-
+
@@ -93,16 +93,8 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
+
+
@@ -116,20 +108,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -269,10 +247,7 @@ Davis, CA 95616, USA
-
-
-
-
-
+
-
@@ -401,20 +376,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -527,50 +488,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -730,29 +647,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -773,7 +667,7 @@ Davis, CA 95616, USA
-
+
@@ -781,7 +675,7 @@ Davis, CA 95616, USA
-
+
@@ -827,41 +721,16 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
-
-
-
-
+
@@ -968,7 +837,7 @@ Davis, CA 95616, USA
-
+
@@ -1004,45 +873,13 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1061,13 +898,12 @@ Davis, CA 95616, USA
-
-
+
@@ -1086,108 +922,29 @@ Davis, CA 95616, USA
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
@@ -1246,7 +1003,7 @@ Davis, CA 95616, USA
-
+
@@ -1254,10 +1011,13 @@ Davis, CA 95616, USA
-
+
+
+
+
-
+
@@ -1265,38 +1025,53 @@ Davis, CA 95616, USA
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
+
@@ -1306,7 +1081,7 @@ Davis, CA 95616, USA
-
+
@@ -1316,7 +1091,7 @@ Davis, CA 95616, USA
-
+
@@ -1329,7 +1104,7 @@ Davis, CA 95616, USA
-
+
@@ -1337,7 +1112,9 @@ Davis, CA 95616, USA
-
+
+
+
@@ -1345,36 +1122,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1390,85 +1137,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1494,242 +1162,5 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/1.5.1/clusters/ThermostatUserInterfaceConfiguration.xml
similarity index 97%
rename from data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml
rename to data_model/1.5.1/clusters/ThermostatUserInterfaceConfiguration.xml
index 228218d5bc5..2f7b9f41fee 100644
--- a/data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml
+++ b/data_model/1.5.1/clusters/ThermostatUserInterfaceConfiguration.xml
@@ -106,16 +106,10 @@ Davis, CA 95616, USA
-
-
-
-
-
-
diff --git a/data_model/master/clusters/ThreadBorderRouterManagement.xml b/data_model/1.5.1/clusters/ThreadBorderRouterManagement.xml
similarity index 97%
rename from data_model/master/clusters/ThreadBorderRouterManagement.xml
rename to data_model/1.5.1/clusters/ThreadBorderRouterManagement.xml
index b0d2ee580f0..9cc69f53df1 100644
--- a/data_model/master/clusters/ThreadBorderRouterManagement.xml
+++ b/data_model/1.5.1/clusters/ThreadBorderRouterManagement.xml
@@ -88,22 +88,22 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
diff --git a/data_model/master/clusters/ThreadNetworkDirectory.xml b/data_model/1.5.1/clusters/ThreadNetworkDirectory.xml
similarity index 99%
rename from data_model/master/clusters/ThreadNetworkDirectory.xml
rename to data_model/1.5.1/clusters/ThreadNetworkDirectory.xml
index a8011648f8f..49edc8952c0 100644
--- a/data_model/master/clusters/ThreadNetworkDirectory.xml
+++ b/data_model/1.5.1/clusters/ThreadNetworkDirectory.xml
@@ -91,7 +91,7 @@ Davis, CA 95616, USA
-
+
@@ -110,7 +110,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/TimeSync.xml b/data_model/1.5.1/clusters/TimeSync.xml
similarity index 98%
rename from data_model/master/clusters/TimeSync.xml
rename to data_model/1.5.1/clusters/TimeSync.xml
index e4ed10f824b..74c130ff526 100644
--- a/data_model/master/clusters/TimeSync.xml
+++ b/data_model/1.5.1/clusters/TimeSync.xml
@@ -268,7 +268,7 @@ Davis, CA 95616, USA
-
+
@@ -454,6 +454,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
diff --git a/data_model/master/clusters/UserLabel-Cluster.xml b/data_model/1.5.1/clusters/UserLabel-Cluster.xml
similarity index 98%
rename from data_model/master/clusters/UserLabel-Cluster.xml
rename to data_model/1.5.1/clusters/UserLabel-Cluster.xml
index 449e0b38b98..3f108704ce2 100644
--- a/data_model/master/clusters/UserLabel-Cluster.xml
+++ b/data_model/1.5.1/clusters/UserLabel-Cluster.xml
@@ -71,6 +71,9 @@ Davis, CA 95616, USA
+
+
+
diff --git a/data_model/master/clusters/ValveConfigurationControl.xml b/data_model/1.5.1/clusters/ValveConfigurationControl.xml
similarity index 96%
rename from data_model/master/clusters/ValveConfigurationControl.xml
rename to data_model/1.5.1/clusters/ValveConfigurationControl.xml
index 84d00962f57..dcc594bf9a4 100644
--- a/data_model/master/clusters/ValveConfigurationControl.xml
+++ b/data_model/1.5.1/clusters/ValveConfigurationControl.xml
@@ -112,7 +112,7 @@ Davis, CA 95616, USA
-
+
@@ -120,7 +120,7 @@ Davis, CA 95616, USA
-
+
@@ -128,36 +128,36 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/data_model/master/clusters/WakeOnLAN.xml b/data_model/1.5.1/clusters/WakeOnLAN.xml
similarity index 98%
rename from data_model/master/clusters/WakeOnLAN.xml
rename to data_model/1.5.1/clusters/WakeOnLAN.xml
index e004fd9b2be..f684f49fcec 100644
--- a/data_model/master/clusters/WakeOnLAN.xml
+++ b/data_model/1.5.1/clusters/WakeOnLAN.xml
@@ -81,6 +81,9 @@ Davis, CA 95616, USA
+
+
+
diff --git a/data_model/master/clusters/WaterContentMeasurement.xml b/data_model/1.5.1/clusters/WaterContentMeasurement.xml
similarity index 92%
rename from data_model/master/clusters/WaterContentMeasurement.xml
rename to data_model/1.5.1/clusters/WaterContentMeasurement.xml
index b8abeaa984b..a1a1f07ca7e 100644
--- a/data_model/master/clusters/WaterContentMeasurement.xml
+++ b/data_model/1.5.1/clusters/WaterContentMeasurement.xml
@@ -57,11 +57,12 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -70,7 +71,7 @@ Davis, CA 95616, USA
-
+
@@ -97,7 +98,15 @@ Davis, CA 95616, USA
-
+
+
+ add
+
+
+
+
+
+
diff --git a/data_model/master/clusters/WaterHeaterManagement.xml b/data_model/1.5.1/clusters/WaterHeaterManagement.xml
similarity index 96%
rename from data_model/master/clusters/WaterHeaterManagement.xml
rename to data_model/1.5.1/clusters/WaterHeaterManagement.xml
index 52f87ab2b54..1c1ca48ebfe 100644
--- a/data_model/master/clusters/WaterHeaterManagement.xml
+++ b/data_model/1.5.1/clusters/WaterHeaterManagement.xml
@@ -151,22 +151,22 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
@@ -175,16 +175,13 @@ Davis, CA 95616, USA
-
+
-
-
-
diff --git a/data_model/master/clusters/WebRTC_Provider.xml b/data_model/1.5.1/clusters/WebRTC_Provider.xml
similarity index 71%
rename from data_model/master/clusters/WebRTC_Provider.xml
rename to data_model/1.5.1/clusters/WebRTC_Provider.xml
index 8c37e4d8ae4..7c21530e2d5 100644
--- a/data_model/master/clusters/WebRTC_Provider.xml
+++ b/data_model/1.5.1/clusters/WebRTC_Provider.xml
@@ -57,14 +57,13 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
-
-
+
@@ -76,116 +75,28 @@ Davis, CA 95616, USA
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
-
-
+
+
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -208,11 +119,11 @@ Davis, CA 95616, USA
-
+
-
+
@@ -232,6 +143,48 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -263,7 +216,7 @@ Davis, CA 95616, USA
-
+
@@ -278,11 +231,11 @@ Davis, CA 95616, USA
-
+
-
+
@@ -302,6 +255,60 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -360,9 +367,6 @@ Davis, CA 95616, USA
-
-
-
diff --git a/data_model/master/clusters/WebRTC_Requestor.xml b/data_model/1.5.1/clusters/WebRTC_Requestor.xml
similarity index 94%
rename from data_model/master/clusters/WebRTC_Requestor.xml
rename to data_model/1.5.1/clusters/WebRTC_Requestor.xml
index fecac1776d3..bf1783b952a 100644
--- a/data_model/master/clusters/WebRTC_Requestor.xml
+++ b/data_model/1.5.1/clusters/WebRTC_Requestor.xml
@@ -57,18 +57,17 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
-
-
+
-
+
@@ -133,9 +132,6 @@ Davis, CA 95616, USA
-
-
-
diff --git a/data_model/master/clusters/WiFiNetworkManagement.xml b/data_model/1.5.1/clusters/WiFiNetworkManagement.xml
similarity index 98%
rename from data_model/master/clusters/WiFiNetworkManagement.xml
rename to data_model/1.5.1/clusters/WiFiNetworkManagement.xml
index 115978a5f38..10fb5f9a89f 100644
--- a/data_model/master/clusters/WiFiNetworkManagement.xml
+++ b/data_model/1.5.1/clusters/WiFiNetworkManagement.xml
@@ -66,7 +66,7 @@ Davis, CA 95616, USA
-
+
@@ -77,7 +77,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/clusters/WindowCovering.xml b/data_model/1.5.1/clusters/WindowCovering.xml
similarity index 77%
rename from data_model/master/clusters/WindowCovering.xml
rename to data_model/1.5.1/clusters/WindowCovering.xml
index a6df50eea61..c946cfad46e 100644
--- a/data_model/master/clusters/WindowCovering.xml
+++ b/data_model/1.5.1/clusters/WindowCovering.xml
@@ -57,13 +57,16 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
+
+
@@ -81,9 +84,6 @@ Davis, CA 95616, USA
-
-
-
@@ -313,70 +313,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -401,7 +337,7 @@ Davis, CA 95616, USA
-
+
@@ -411,7 +347,7 @@ Davis, CA 95616, USA
-
+
@@ -421,12 +357,14 @@ Davis, CA 95616, USA
-
+
+
+
-
+
@@ -436,7 +374,7 @@ Davis, CA 95616, USA
-
+
@@ -454,7 +392,7 @@ Davis, CA 95616, USA
-
+
@@ -467,7 +405,7 @@ Davis, CA 95616, USA
-
+
@@ -478,85 +416,16 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
@@ -576,21 +445,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -611,21 +465,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/clusters/ZoneManagement.xml b/data_model/1.5.1/clusters/ZoneManagement.xml
similarity index 87%
rename from data_model/master/clusters/ZoneManagement.xml
rename to data_model/1.5.1/clusters/ZoneManagement.xml
index cd9fa055b15..47386ef9d69 100644
--- a/data_model/master/clusters/ZoneManagement.xml
+++ b/data_model/1.5.1/clusters/ZoneManagement.xml
@@ -62,14 +62,12 @@ Davis, CA 95616, USA
-
-
-
+
-
+
@@ -81,6 +79,11 @@ Davis, CA 95616, USA
+
+
+
+
+
@@ -118,14 +121,16 @@ Davis, CA 95616, USA
-
-
+
+
+
-
+
-
+
@@ -169,12 +174,23 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -183,7 +199,7 @@ Davis, CA 95616, USA
-
+
@@ -191,7 +207,7 @@ Davis, CA 95616, USA
-
+
@@ -199,10 +215,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -236,9 +252,10 @@ Davis, CA 95616, USA
-
+
+
@@ -249,9 +266,10 @@ Davis, CA 95616, USA
-
+
+
@@ -262,7 +280,7 @@ Davis, CA 95616, USA
-
+
@@ -273,8 +291,9 @@ Davis, CA 95616, USA
-
+
+
@@ -289,6 +308,13 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
@@ -329,26 +355,7 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -357,14 +364,14 @@ Davis, CA 95616, USA
-
+
-
+
diff --git a/data_model/master/clusters/cluster_ids.json b/data_model/1.5.1/clusters/cluster_ids.json
similarity index 96%
rename from data_model/master/clusters/cluster_ids.json
rename to data_model/1.5.1/clusters/cluster_ids.json
index ee875e32c1c..82e63b90bd7 100644
--- a/data_model/master/clusters/cluster_ids.json
+++ b/data_model/1.5.1/clusters/cluster_ids.json
@@ -62,7 +62,6 @@
"145": "Electrical Energy Measurement",
"148": "Water Heater Management",
"149": "Commodity Price",
- "150": "Demand Response Load Control",
"151": "Messages",
"152": "Device Energy Management",
"153": "Energy EVSE",
@@ -71,6 +70,7 @@
"157": "Energy EVSE Mode",
"158": "Water Heater Mode",
"159": "Device Energy Management Mode",
+ "160": "Electrical Grid Conditions",
"257": "Door Lock",
"258": "Window Covering",
"260": "Closure Control",
@@ -80,7 +80,6 @@
"513": "Thermostat",
"514": "Fan Control",
"516": "Thermostat User Interface Configuration",
- "517": "Humidistat",
"768": "Color Control",
"1024": "Illuminance Measurement",
"1026": "Temperature Measurement",
@@ -99,7 +98,6 @@
"1070": "Total Volatile Organic Compounds Concentration Measurement",
"1071": "Radon Concentration Measurement",
"1072": "Soil Measurement",
- "1104": "Network Identity Management",
"1105": "Wi-Fi Network Management",
"1106": "Thread Border Router Management",
"1107": "Thread Network Directory",
@@ -128,7 +126,7 @@
"1872": "Ecosystem Information",
"1873": "Commissioner Control",
"1874": "Joint Fabric Datastore",
- "1875": "Joint Fabric PKI",
+ "1875": "Joint Fabric Administrator",
"2049": "TLS Certificate Management",
"2050": "TLS Client Management",
"2822": "Meter Identification",
diff --git a/data_model/master/device_types/Aggregator.xml b/data_model/1.5.1/device_types/Aggregator.xml
similarity index 100%
rename from data_model/master/device_types/Aggregator.xml
rename to data_model/1.5.1/device_types/Aggregator.xml
diff --git a/data_model/master/device_types/AirPurifier.xml b/data_model/1.5.1/device_types/AirPurifier.xml
similarity index 100%
rename from data_model/master/device_types/AirPurifier.xml
rename to data_model/1.5.1/device_types/AirPurifier.xml
diff --git a/data_model/master/device_types/AirQualitySensor.xml b/data_model/1.5.1/device_types/AirQualitySensor.xml
similarity index 100%
rename from data_model/master/device_types/AirQualitySensor.xml
rename to data_model/1.5.1/device_types/AirQualitySensor.xml
diff --git a/data_model/1.5.1/device_types/AudioDoorbell.xml b/data_model/1.5.1/device_types/AudioDoorbell.xml
new file mode 100644
index 00000000000..4a34dabbea9
--- /dev/null
+++ b/data_model/1.5.1/device_types/AudioDoorbell.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/BaseDeviceType.xml b/data_model/1.5.1/device_types/BaseDeviceType.xml
similarity index 93%
rename from data_model/master/device_types/BaseDeviceType.xml
rename to data_model/1.5.1/device_types/BaseDeviceType.xml
index 292faf5db70..426ea6e1b46 100644
--- a/data_model/master/device_types/BaseDeviceType.xml
+++ b/data_model/1.5.1/device_types/BaseDeviceType.xml
@@ -57,18 +57,13 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
-
-
-
-
-
@@ -97,7 +92,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/BasicVideoPlayer.xml b/data_model/1.5.1/device_types/BasicVideoPlayer.xml
similarity index 97%
rename from data_model/master/device_types/BasicVideoPlayer.xml
rename to data_model/1.5.1/device_types/BasicVideoPlayer.xml
index acf88741ac0..5f2872c2bb7 100644
--- a/data_model/master/device_types/BasicVideoPlayer.xml
+++ b/data_model/1.5.1/device_types/BasicVideoPlayer.xml
@@ -67,13 +67,13 @@ Davis, CA 95616, USA
-
+
-
+
diff --git a/data_model/master/device_types/BatteryStorage.xml b/data_model/1.5.1/device_types/BatteryStorage.xml
similarity index 79%
rename from data_model/master/device_types/BatteryStorage.xml
rename to data_model/1.5.1/device_types/BatteryStorage.xml
index 5c538446ba2..0bcb110f5f8 100644
--- a/data_model/master/device_types/BatteryStorage.xml
+++ b/data_model/1.5.1/device_types/BatteryStorage.xml
@@ -57,9 +57,10 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -67,4 +68,27 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/BridgedNode.xml b/data_model/1.5.1/device_types/BridgedNode.xml
similarity index 100%
rename from data_model/master/device_types/BridgedNode.xml
rename to data_model/1.5.1/device_types/BridgedNode.xml
diff --git a/data_model/master/device_types/Camera.xml b/data_model/1.5.1/device_types/Camera.xml
similarity index 82%
rename from data_model/master/device_types/Camera.xml
rename to data_model/1.5.1/device_types/Camera.xml
index 365d1454226..efed03dc6bf 100644
--- a/data_model/master/device_types/Camera.xml
+++ b/data_model/1.5.1/device_types/Camera.xml
@@ -62,32 +62,53 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
@@ -98,6 +119,9 @@ Davis, CA 95616, USA
+
+
+
@@ -107,11 +131,5 @@ Davis, CA 95616, USA
-
-
-
-
-
-
diff --git a/data_model/master/device_types/CameraController.xml b/data_model/1.5.1/device_types/CameraController.xml
similarity index 94%
rename from data_model/master/device_types/CameraController.xml
rename to data_model/1.5.1/device_types/CameraController.xml
index 399e6331dfb..85529ff5609 100644
--- a/data_model/master/device_types/CameraController.xml
+++ b/data_model/1.5.1/device_types/CameraController.xml
@@ -66,10 +66,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -84,10 +81,10 @@ Davis, CA 95616, USA
-
+
-
+
diff --git a/data_model/master/device_types/CastingVideoClient.xml b/data_model/1.5.1/device_types/CastingVideoClient.xml
similarity index 97%
rename from data_model/master/device_types/CastingVideoClient.xml
rename to data_model/1.5.1/device_types/CastingVideoClient.xml
index 5ff5a3e1d23..e166b1df0e9 100644
--- a/data_model/master/device_types/CastingVideoClient.xml
+++ b/data_model/1.5.1/device_types/CastingVideoClient.xml
@@ -64,7 +64,7 @@ Davis, CA 95616, USA
-
+
@@ -73,7 +73,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/CastingVideoPlayer.xml b/data_model/1.5.1/device_types/CastingVideoPlayer.xml
similarity index 97%
rename from data_model/master/device_types/CastingVideoPlayer.xml
rename to data_model/1.5.1/device_types/CastingVideoPlayer.xml
index db440168344..9b498538b91 100644
--- a/data_model/master/device_types/CastingVideoPlayer.xml
+++ b/data_model/1.5.1/device_types/CastingVideoPlayer.xml
@@ -68,13 +68,13 @@ Davis, CA 95616, USA
-
+
-
+
@@ -108,7 +108,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/Chime.xml b/data_model/1.5.1/device_types/Chime.xml
similarity index 100%
rename from data_model/master/device_types/Chime.xml
rename to data_model/1.5.1/device_types/Chime.xml
diff --git a/data_model/master/device_types/Closure.xml b/data_model/1.5.1/device_types/Closure.xml
similarity index 94%
rename from data_model/master/device_types/Closure.xml
rename to data_model/1.5.1/device_types/Closure.xml
index 728e71046ff..89b88a69295 100644
--- a/data_model/master/device_types/Closure.xml
+++ b/data_model/1.5.1/device_types/Closure.xml
@@ -61,16 +61,19 @@ Davis, CA 95616, USA
-
+
-
-
+
+
+
+
+
diff --git a/data_model/master/device_types/ClosureController.xml b/data_model/1.5.1/device_types/ClosureController.xml
similarity index 100%
rename from data_model/master/device_types/ClosureController.xml
rename to data_model/1.5.1/device_types/ClosureController.xml
diff --git a/data_model/master/device_types/ClosurePanel.xml b/data_model/1.5.1/device_types/ClosurePanel.xml
similarity index 94%
rename from data_model/master/device_types/ClosurePanel.xml
rename to data_model/1.5.1/device_types/ClosurePanel.xml
index c744baea4df..5d621ba877e 100644
--- a/data_model/master/device_types/ClosurePanel.xml
+++ b/data_model/1.5.1/device_types/ClosurePanel.xml
@@ -63,6 +63,12 @@ Davis, CA 95616, USA
+
+
+
+
+
+
diff --git a/data_model/master/device_types/ColorDimmerSwitch.xml b/data_model/1.5.1/device_types/ColorDimmerSwitch.xml
similarity index 97%
rename from data_model/master/device_types/ColorDimmerSwitch.xml
rename to data_model/1.5.1/device_types/ColorDimmerSwitch.xml
index bc80755034f..5d7b72f0671 100644
--- a/data_model/master/device_types/ColorDimmerSwitch.xml
+++ b/data_model/1.5.1/device_types/ColorDimmerSwitch.xml
@@ -81,10 +81,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/device_types/ColorTemperatureLight.xml b/data_model/1.5.1/device_types/ColorTemperatureLight.xml
similarity index 93%
rename from data_model/master/device_types/ColorTemperatureLight.xml
rename to data_model/1.5.1/device_types/ColorTemperatureLight.xml
index 003a2a1b4a7..7397396df48 100644
--- a/data_model/master/device_types/ColorTemperatureLight.xml
+++ b/data_model/1.5.1/device_types/ColorTemperatureLight.xml
@@ -80,7 +80,7 @@ Davis, CA 95616, USA
-
+
@@ -88,10 +88,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -117,23 +117,17 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
+
-
+
diff --git a/data_model/master/device_types/ContactSensor.xml b/data_model/1.5.1/device_types/ContactSensor.xml
similarity index 100%
rename from data_model/master/device_types/ContactSensor.xml
rename to data_model/1.5.1/device_types/ContactSensor.xml
diff --git a/data_model/master/device_types/ContentApp.xml b/data_model/1.5.1/device_types/ContentApp.xml
similarity index 95%
rename from data_model/master/device_types/ContentApp.xml
rename to data_model/1.5.1/device_types/ContentApp.xml
index 0fe38d96e43..e43081d9a85 100644
--- a/data_model/master/device_types/ContentApp.xml
+++ b/data_model/1.5.1/device_types/ContentApp.xml
@@ -67,11 +67,6 @@ Davis, CA 95616, USA
-
-
-
-
-
@@ -90,7 +85,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/ControlBridge.xml b/data_model/1.5.1/device_types/ControlBridge.xml
similarity index 97%
rename from data_model/master/device_types/ControlBridge.xml
rename to data_model/1.5.1/device_types/ControlBridge.xml
index 2c0d694f7e2..17642c0c930 100644
--- a/data_model/master/device_types/ControlBridge.xml
+++ b/data_model/1.5.1/device_types/ControlBridge.xml
@@ -81,10 +81,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/device_types/CookSurface.xml b/data_model/1.5.1/device_types/CookSurface.xml
similarity index 96%
rename from data_model/master/device_types/CookSurface.xml
rename to data_model/1.5.1/device_types/CookSurface.xml
index b5fe7efe0a8..1027efbb9ec 100644
--- a/data_model/master/device_types/CookSurface.xml
+++ b/data_model/1.5.1/device_types/CookSurface.xml
@@ -67,7 +67,7 @@ Davis, CA 95616, USA
-
+
@@ -75,10 +75,10 @@ Davis, CA 95616, USA
-
+
-
+
diff --git a/data_model/master/device_types/Cooktop.xml b/data_model/1.5.1/device_types/Cooktop.xml
similarity index 98%
rename from data_model/master/device_types/Cooktop.xml
rename to data_model/1.5.1/device_types/Cooktop.xml
index 744e7af1d5a..09f014328d6 100644
--- a/data_model/master/device_types/Cooktop.xml
+++ b/data_model/1.5.1/device_types/Cooktop.xml
@@ -69,7 +69,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/DeviceEnergyManagement.xml b/data_model/1.5.1/device_types/DeviceEnergyManagement.xml
similarity index 92%
rename from data_model/master/device_types/DeviceEnergyManagement.xml
rename to data_model/1.5.1/device_types/DeviceEnergyManagement.xml
index 529c19f1de8..e4a3ee475cc 100644
--- a/data_model/master/device_types/DeviceEnergyManagement.xml
+++ b/data_model/1.5.1/device_types/DeviceEnergyManagement.xml
@@ -57,10 +57,11 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -70,27 +71,27 @@ Davis, CA 95616, USA
-
+
-
+
-
+
-
+
-
+
@@ -105,5 +106,8 @@ Davis, CA 95616, USA
+
+
+
diff --git a/data_model/master/device_types/DimmableLight.xml b/data_model/1.5.1/device_types/DimmableLight.xml
similarity index 93%
rename from data_model/master/device_types/DimmableLight.xml
rename to data_model/1.5.1/device_types/DimmableLight.xml
index a59c966a9ec..0b7552c70f2 100644
--- a/data_model/master/device_types/DimmableLight.xml
+++ b/data_model/1.5.1/device_types/DimmableLight.xml
@@ -79,7 +79,7 @@ Davis, CA 95616, USA
-
+
@@ -87,10 +87,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -116,16 +116,10 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
+
diff --git a/data_model/master/device_types/DimmablePlug-InUnit.xml b/data_model/1.5.1/device_types/DimmablePlug-InUnit.xml
similarity index 93%
rename from data_model/master/device_types/DimmablePlug-InUnit.xml
rename to data_model/1.5.1/device_types/DimmablePlug-InUnit.xml
index 3eb4d93dc5f..80b664a75cf 100644
--- a/data_model/master/device_types/DimmablePlug-InUnit.xml
+++ b/data_model/1.5.1/device_types/DimmablePlug-InUnit.xml
@@ -57,12 +57,13 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -80,7 +81,7 @@ Davis, CA 95616, USA
-
+
@@ -88,10 +89,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -117,16 +118,10 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
+
diff --git a/data_model/master/device_types/DimmerSwitch.xml b/data_model/1.5.1/device_types/DimmerSwitch.xml
similarity index 97%
rename from data_model/master/device_types/DimmerSwitch.xml
rename to data_model/1.5.1/device_types/DimmerSwitch.xml
index 64e82939a44..8f08475e1f0 100644
--- a/data_model/master/device_types/DimmerSwitch.xml
+++ b/data_model/1.5.1/device_types/DimmerSwitch.xml
@@ -81,10 +81,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/device_types/Dishwasher.xml b/data_model/1.5.1/device_types/Dishwasher.xml
similarity index 98%
rename from data_model/master/device_types/Dishwasher.xml
rename to data_model/1.5.1/device_types/Dishwasher.xml
index 49dfb7be223..d45194910ba 100644
--- a/data_model/master/device_types/Dishwasher.xml
+++ b/data_model/1.5.1/device_types/Dishwasher.xml
@@ -70,7 +70,7 @@ Davis, CA 95616, USA
-
+
@@ -81,7 +81,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/DoorLock.xml b/data_model/1.5.1/device_types/DoorLock.xml
similarity index 86%
rename from data_model/master/device_types/DoorLock.xml
rename to data_model/1.5.1/device_types/DoorLock.xml
index 5279cd6b7c6..de978b4c0c6 100644
--- a/data_model/master/device_types/DoorLock.xml
+++ b/data_model/1.5.1/device_types/DoorLock.xml
@@ -1,4 +1,4 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -76,25 +90,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/DoorLockController.xml b/data_model/1.5.1/device_types/DoorLockController.xml
similarity index 93%
rename from data_model/master/device_types/DoorLockController.xml
rename to data_model/1.5.1/device_types/DoorLockController.xml
index 4b54fcdc00c..f838b55a93b 100644
--- a/data_model/master/device_types/DoorLockController.xml
+++ b/data_model/1.5.1/device_types/DoorLockController.xml
@@ -61,21 +61,22 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
diff --git a/data_model/master/device_types/HumidifierDehumidifier.xml b/data_model/1.5.1/device_types/Doorbell.xml
similarity index 87%
rename from data_model/master/device_types/HumidifierDehumidifier.xml
rename to data_model/1.5.1/device_types/Doorbell.xml
index e882e809653..1ea37e128a7 100644
--- a/data_model/master/device_types/HumidifierDehumidifier.xml
+++ b/data_model/1.5.1/device_types/Doorbell.xml
@@ -57,26 +57,25 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
-
+
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
-
-
+
+
diff --git a/data_model/master/device_types/EVSE.xml b/data_model/1.5.1/device_types/EVSE.xml
similarity index 82%
rename from data_model/master/device_types/EVSE.xml
rename to data_model/1.5.1/device_types/EVSE.xml
index da8e26b374f..4d440608f76 100644
--- a/data_model/master/device_types/EVSE.xml
+++ b/data_model/1.5.1/device_types/EVSE.xml
@@ -77,4 +77,30 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/ElectricalEnergyTariff.xml b/data_model/1.5.1/device_types/ElectricalEnergyTariff.xml
similarity index 84%
rename from data_model/master/device_types/ElectricalEnergyTariff.xml
rename to data_model/1.5.1/device_types/ElectricalEnergyTariff.xml
index eb48b66af95..6ec2a784c36 100644
--- a/data_model/master/device_types/ElectricalEnergyTariff.xml
+++ b/data_model/1.5.1/device_types/ElectricalEnergyTariff.xml
@@ -66,39 +66,14 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/data_model/master/device_types/ElectricalMeter.xml b/data_model/1.5.1/device_types/ElectricalMeter.xml
similarity index 93%
rename from data_model/master/device_types/ElectricalMeter.xml
rename to data_model/1.5.1/device_types/ElectricalMeter.xml
index eff7f873659..ee31dc4c9f8 100644
--- a/data_model/master/device_types/ElectricalMeter.xml
+++ b/data_model/1.5.1/device_types/ElectricalMeter.xml
@@ -63,11 +63,17 @@ Davis, CA 95616, USA
-
+
-
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/ElectricalSensor.xml b/data_model/1.5.1/device_types/ElectricalSensor.xml
similarity index 100%
rename from data_model/master/device_types/ElectricalSensor.xml
rename to data_model/1.5.1/device_types/ElectricalSensor.xml
diff --git a/data_model/master/device_types/ElectricalUtilityMeter.xml b/data_model/1.5.1/device_types/ElectricalUtilityMeter.xml
similarity index 94%
rename from data_model/master/device_types/ElectricalUtilityMeter.xml
rename to data_model/1.5.1/device_types/ElectricalUtilityMeter.xml
index 19467c033a0..5693b741880 100644
--- a/data_model/master/device_types/ElectricalUtilityMeter.xml
+++ b/data_model/1.5.1/device_types/ElectricalUtilityMeter.xml
@@ -62,10 +62,14 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
-
-
-
diff --git a/data_model/master/device_types/ExtendedColorLight.xml b/data_model/1.5.1/device_types/ExtendedColorLight.xml
similarity index 91%
rename from data_model/master/device_types/ExtendedColorLight.xml
rename to data_model/1.5.1/device_types/ExtendedColorLight.xml
index 1a37ac7a6fb..f3de5ede46f 100644
--- a/data_model/master/device_types/ExtendedColorLight.xml
+++ b/data_model/1.5.1/device_types/ExtendedColorLight.xml
@@ -80,7 +80,7 @@ Davis, CA 95616, USA
-
+
@@ -88,10 +88,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -117,35 +117,29 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/data_model/master/device_types/ExtractorHood.xml b/data_model/1.5.1/device_types/ExtractorHood.xml
similarity index 97%
rename from data_model/master/device_types/ExtractorHood.xml
rename to data_model/1.5.1/device_types/ExtractorHood.xml
index ff3b4819c7c..c55bc9abd16 100644
--- a/data_model/master/device_types/ExtractorHood.xml
+++ b/data_model/1.5.1/device_types/ExtractorHood.xml
@@ -75,13 +75,13 @@ Davis, CA 95616, USA
-
+
-
+
-
+
diff --git a/data_model/master/device_types/Fan.xml b/data_model/1.5.1/device_types/Fan.xml
similarity index 92%
rename from data_model/master/device_types/Fan.xml
rename to data_model/1.5.1/device_types/Fan.xml
index eae97cb4119..4e9ee06dc4f 100644
--- a/data_model/master/device_types/Fan.xml
+++ b/data_model/1.5.1/device_types/Fan.xml
@@ -57,11 +57,12 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -76,15 +77,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/FloodlightCamera.xml b/data_model/1.5.1/device_types/FloodlightCamera.xml
similarity index 100%
rename from data_model/master/device_types/FloodlightCamera.xml
rename to data_model/1.5.1/device_types/FloodlightCamera.xml
diff --git a/data_model/master/device_types/FlowSensor.xml b/data_model/1.5.1/device_types/FlowSensor.xml
similarity index 95%
rename from data_model/master/device_types/FlowSensor.xml
rename to data_model/1.5.1/device_types/FlowSensor.xml
index 36c3d919ae1..e27c8ab5830 100644
--- a/data_model/master/device_types/FlowSensor.xml
+++ b/data_model/1.5.1/device_types/FlowSensor.xml
@@ -57,21 +57,17 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
-
-
-
-
diff --git a/data_model/master/device_types/GenericSwitch.xml b/data_model/1.5.1/device_types/GenericSwitch.xml
similarity index 100%
rename from data_model/master/device_types/GenericSwitch.xml
rename to data_model/1.5.1/device_types/GenericSwitch.xml
diff --git a/data_model/master/device_types/HeatPump.xml b/data_model/1.5.1/device_types/HeatPump.xml
similarity index 81%
rename from data_model/master/device_types/HeatPump.xml
rename to data_model/1.5.1/device_types/HeatPump.xml
index 5d8666d0903..778d66f2e4a 100644
--- a/data_model/master/device_types/HeatPump.xml
+++ b/data_model/1.5.1/device_types/HeatPump.xml
@@ -70,4 +70,31 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/HumiditySensor.xml b/data_model/1.5.1/device_types/HumiditySensor.xml
similarity index 95%
rename from data_model/master/device_types/HumiditySensor.xml
rename to data_model/1.5.1/device_types/HumiditySensor.xml
index 685bcb45bbc..f05948b9e55 100644
--- a/data_model/master/device_types/HumiditySensor.xml
+++ b/data_model/1.5.1/device_types/HumiditySensor.xml
@@ -57,21 +57,17 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
-
-
-
-
diff --git a/data_model/master/device_types/Intercom.xml b/data_model/1.5.1/device_types/Intercom.xml
similarity index 81%
rename from data_model/master/device_types/Intercom.xml
rename to data_model/1.5.1/device_types/Intercom.xml
index c2857525bdd..85411d329d8 100644
--- a/data_model/master/device_types/Intercom.xml
+++ b/data_model/1.5.1/device_types/Intercom.xml
@@ -57,31 +57,45 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
-
+
-
+
@@ -92,14 +106,17 @@ Davis, CA 95616, USA
+
+
+
-
-
+
+
diff --git a/data_model/master/device_types/IrrigationSystem.xml b/data_model/1.5.1/device_types/IrrigationSystem.xml
similarity index 100%
rename from data_model/master/device_types/IrrigationSystem.xml
rename to data_model/1.5.1/device_types/IrrigationSystem.xml
diff --git a/data_model/master/device_types/JointFabricAdmin.xml b/data_model/1.5.1/device_types/JointFabricAdmin.xml
similarity index 98%
rename from data_model/master/device_types/JointFabricAdmin.xml
rename to data_model/1.5.1/device_types/JointFabricAdmin.xml
index 81d372a77c9..a6aa0a5f7c9 100644
--- a/data_model/master/device_types/JointFabricAdmin.xml
+++ b/data_model/1.5.1/device_types/JointFabricAdmin.xml
@@ -66,7 +66,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/LaundryDryer.xml b/data_model/1.5.1/device_types/LaundryDryer.xml
similarity index 98%
rename from data_model/master/device_types/LaundryDryer.xml
rename to data_model/1.5.1/device_types/LaundryDryer.xml
index 2354c5e154c..74cce08a250 100644
--- a/data_model/master/device_types/LaundryDryer.xml
+++ b/data_model/1.5.1/device_types/LaundryDryer.xml
@@ -70,7 +70,7 @@ Davis, CA 95616, USA
-
+
@@ -81,7 +81,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/LaundryWasher.xml b/data_model/1.5.1/device_types/LaundryWasher.xml
similarity index 98%
rename from data_model/master/device_types/LaundryWasher.xml
rename to data_model/1.5.1/device_types/LaundryWasher.xml
index 68b3909adc7..1aaff12b044 100644
--- a/data_model/master/device_types/LaundryWasher.xml
+++ b/data_model/1.5.1/device_types/LaundryWasher.xml
@@ -70,7 +70,7 @@ Davis, CA 95616, USA
-
+
@@ -78,7 +78,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/LightSensor.xml b/data_model/1.5.1/device_types/LightSensor.xml
similarity index 95%
rename from data_model/master/device_types/LightSensor.xml
rename to data_model/1.5.1/device_types/LightSensor.xml
index 7fcfb1257e9..41580de4400 100644
--- a/data_model/master/device_types/LightSensor.xml
+++ b/data_model/1.5.1/device_types/LightSensor.xml
@@ -57,22 +57,18 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
-
-
-
-
diff --git a/data_model/master/device_types/MeterReferencePoint.xml b/data_model/1.5.1/device_types/MeterReferencePoint.xml
similarity index 94%
rename from data_model/master/device_types/MeterReferencePoint.xml
rename to data_model/1.5.1/device_types/MeterReferencePoint.xml
index 3d8f2305f8a..6cce132b79f 100644
--- a/data_model/master/device_types/MeterReferencePoint.xml
+++ b/data_model/1.5.1/device_types/MeterReferencePoint.xml
@@ -65,15 +65,16 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
-
-
-
-
-
-
diff --git a/data_model/master/device_types/MicrowaveOven.xml b/data_model/1.5.1/device_types/MicrowaveOven.xml
similarity index 98%
rename from data_model/master/device_types/MicrowaveOven.xml
rename to data_model/1.5.1/device_types/MicrowaveOven.xml
index 53092902c2f..1ce8b1e0ac9 100644
--- a/data_model/master/device_types/MicrowaveOven.xml
+++ b/data_model/1.5.1/device_types/MicrowaveOven.xml
@@ -89,10 +89,10 @@ Davis, CA 95616, USA
-
+
-
+
diff --git a/data_model/master/device_types/ModeSelectDeviceType.xml b/data_model/1.5.1/device_types/ModeSelectDeviceType.xml
similarity index 100%
rename from data_model/master/device_types/ModeSelectDeviceType.xml
rename to data_model/1.5.1/device_types/ModeSelectDeviceType.xml
diff --git a/data_model/master/device_types/MountedDimmableLoadControl.xml b/data_model/1.5.1/device_types/MountedDimmableLoadControl.xml
similarity index 92%
rename from data_model/master/device_types/MountedDimmableLoadControl.xml
rename to data_model/1.5.1/device_types/MountedDimmableLoadControl.xml
index 6a4b2a81048..7a76a23c6ac 100644
--- a/data_model/master/device_types/MountedDimmableLoadControl.xml
+++ b/data_model/1.5.1/device_types/MountedDimmableLoadControl.xml
@@ -57,9 +57,10 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -77,7 +78,7 @@ Davis, CA 95616, USA
-
+
@@ -85,10 +86,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -114,16 +115,10 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
+
diff --git a/data_model/master/device_types/MountedOnOffControl.xml b/data_model/1.5.1/device_types/MountedOnOffControl.xml
similarity index 92%
rename from data_model/master/device_types/MountedOnOffControl.xml
rename to data_model/1.5.1/device_types/MountedOnOffControl.xml
index ae0900168e8..7d5834fcf5d 100644
--- a/data_model/master/device_types/MountedOnOffControl.xml
+++ b/data_model/1.5.1/device_types/MountedOnOffControl.xml
@@ -57,9 +57,10 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -77,7 +78,7 @@ Davis, CA 95616, USA
-
+
@@ -85,10 +86,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -114,16 +115,10 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
+
diff --git a/data_model/master/device_types/NetworkInfraManager.xml b/data_model/1.5.1/device_types/NetworkInfraManager.xml
similarity index 93%
rename from data_model/master/device_types/NetworkInfraManager.xml
rename to data_model/1.5.1/device_types/NetworkInfraManager.xml
index ab96a0e9794..477e7797004 100644
--- a/data_model/master/device_types/NetworkInfraManager.xml
+++ b/data_model/1.5.1/device_types/NetworkInfraManager.xml
@@ -60,19 +60,20 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
diff --git a/data_model/master/device_types/OccupancySensor.xml b/data_model/1.5.1/device_types/OccupancySensor.xml
similarity index 98%
rename from data_model/master/device_types/OccupancySensor.xml
rename to data_model/1.5.1/device_types/OccupancySensor.xml
index 47d35935c55..8a7286963c9 100644
--- a/data_model/master/device_types/OccupancySensor.xml
+++ b/data_model/1.5.1/device_types/OccupancySensor.xml
@@ -62,7 +62,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/OnOffLight.xml b/data_model/1.5.1/device_types/OnOffLight.xml
similarity index 93%
rename from data_model/master/device_types/OnOffLight.xml
rename to data_model/1.5.1/device_types/OnOffLight.xml
index 6d463ffbd16..5bbd1b28478 100644
--- a/data_model/master/device_types/OnOffLight.xml
+++ b/data_model/1.5.1/device_types/OnOffLight.xml
@@ -79,7 +79,7 @@ Davis, CA 95616, USA
-
+
@@ -87,10 +87,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -116,16 +116,10 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
+
diff --git a/data_model/master/device_types/OnOffLightSwitch.xml b/data_model/1.5.1/device_types/OnOffLightSwitch.xml
similarity index 97%
rename from data_model/master/device_types/OnOffLightSwitch.xml
rename to data_model/1.5.1/device_types/OnOffLightSwitch.xml
index b0d2c4b72e1..0d4f9df19fc 100644
--- a/data_model/master/device_types/OnOffLightSwitch.xml
+++ b/data_model/1.5.1/device_types/OnOffLightSwitch.xml
@@ -78,10 +78,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/device_types/OnOffPlug-inUnit.xml b/data_model/1.5.1/device_types/OnOffPlug-inUnit.xml
similarity index 92%
rename from data_model/master/device_types/OnOffPlug-inUnit.xml
rename to data_model/1.5.1/device_types/OnOffPlug-inUnit.xml
index 8eaf090f913..9d3c5b818fa 100644
--- a/data_model/master/device_types/OnOffPlug-inUnit.xml
+++ b/data_model/1.5.1/device_types/OnOffPlug-inUnit.xml
@@ -57,11 +57,12 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -79,7 +80,7 @@ Davis, CA 95616, USA
-
+
@@ -87,10 +88,10 @@ Davis, CA 95616, USA
-
+
-
+
@@ -116,16 +117,10 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
+
diff --git a/data_model/master/device_types/OnOffSensor.xml b/data_model/1.5.1/device_types/OnOffSensor.xml
similarity index 97%
rename from data_model/master/device_types/OnOffSensor.xml
rename to data_model/1.5.1/device_types/OnOffSensor.xml
index 97f6fb5e92c..8a1a7a9add4 100644
--- a/data_model/master/device_types/OnOffSensor.xml
+++ b/data_model/1.5.1/device_types/OnOffSensor.xml
@@ -81,10 +81,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/device_types/OtaProvider.xml b/data_model/1.5.1/device_types/OtaProvider.xml
similarity index 100%
rename from data_model/master/device_types/OtaProvider.xml
rename to data_model/1.5.1/device_types/OtaProvider.xml
diff --git a/data_model/master/device_types/OtaRequestor.xml b/data_model/1.5.1/device_types/OtaRequestor.xml
similarity index 100%
rename from data_model/master/device_types/OtaRequestor.xml
rename to data_model/1.5.1/device_types/OtaRequestor.xml
diff --git a/data_model/master/device_types/Oven.xml b/data_model/1.5.1/device_types/Oven.xml
similarity index 94%
rename from data_model/master/device_types/Oven.xml
rename to data_model/1.5.1/device_types/Oven.xml
index 01ee5222f3f..193ce51d779 100644
--- a/data_model/master/device_types/Oven.xml
+++ b/data_model/1.5.1/device_types/Oven.xml
@@ -63,6 +63,13 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/PowerSource.xml b/data_model/1.5.1/device_types/PowerSource.xml
similarity index 100%
rename from data_model/master/device_types/PowerSource.xml
rename to data_model/1.5.1/device_types/PowerSource.xml
diff --git a/data_model/master/device_types/PressureSensor.xml b/data_model/1.5.1/device_types/PressureSensor.xml
similarity index 95%
rename from data_model/master/device_types/PressureSensor.xml
rename to data_model/1.5.1/device_types/PressureSensor.xml
index bc58e53e291..bacc9b3b9a1 100644
--- a/data_model/master/device_types/PressureSensor.xml
+++ b/data_model/1.5.1/device_types/PressureSensor.xml
@@ -57,21 +57,17 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
-
-
-
-
diff --git a/data_model/master/device_types/Pump.xml b/data_model/1.5.1/device_types/Pump.xml
similarity index 97%
rename from data_model/master/device_types/Pump.xml
rename to data_model/1.5.1/device_types/Pump.xml
index c27122ba2f2..d4c97472fa8 100644
--- a/data_model/master/device_types/Pump.xml
+++ b/data_model/1.5.1/device_types/Pump.xml
@@ -78,10 +78,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/device_types/PumpController.xml b/data_model/1.5.1/device_types/PumpController.xml
similarity index 97%
rename from data_model/master/device_types/PumpController.xml
rename to data_model/1.5.1/device_types/PumpController.xml
index 8dc958c3a5a..d06239adafa 100644
--- a/data_model/master/device_types/PumpController.xml
+++ b/data_model/1.5.1/device_types/PumpController.xml
@@ -82,10 +82,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/device_types/RainSensor.xml b/data_model/1.5.1/device_types/RainSensor.xml
similarity index 100%
rename from data_model/master/device_types/RainSensor.xml
rename to data_model/1.5.1/device_types/RainSensor.xml
diff --git a/data_model/master/device_types/Refrigerator.xml b/data_model/1.5.1/device_types/Refrigerator.xml
similarity index 94%
rename from data_model/master/device_types/Refrigerator.xml
rename to data_model/1.5.1/device_types/Refrigerator.xml
index 9cbbc124103..6d22572b3fc 100644
--- a/data_model/master/device_types/Refrigerator.xml
+++ b/data_model/1.5.1/device_types/Refrigerator.xml
@@ -63,6 +63,13 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
@@ -70,7 +77,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/RoboticVacuumCleaner.xml b/data_model/1.5.1/device_types/RoboticVacuumCleaner.xml
similarity index 98%
rename from data_model/master/device_types/RoboticVacuumCleaner.xml
rename to data_model/1.5.1/device_types/RoboticVacuumCleaner.xml
index d657d01d198..b4561bd9ed3 100644
--- a/data_model/master/device_types/RoboticVacuumCleaner.xml
+++ b/data_model/1.5.1/device_types/RoboticVacuumCleaner.xml
@@ -78,7 +78,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/RoomAirConditioner.xml b/data_model/1.5.1/device_types/RoomAirConditioner.xml
similarity index 92%
rename from data_model/master/device_types/RoomAirConditioner.xml
rename to data_model/1.5.1/device_types/RoomAirConditioner.xml
index 60ced5dac42..0cb9a3998a1 100644
--- a/data_model/master/device_types/RoomAirConditioner.xml
+++ b/data_model/1.5.1/device_types/RoomAirConditioner.xml
@@ -57,10 +57,11 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -73,16 +74,19 @@ Davis, CA 95616, USA
-
+
-
-
-
-
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/RootNodeDeviceType.xml b/data_model/1.5.1/device_types/RootNodeDeviceType.xml
similarity index 55%
rename from data_model/master/device_types/RootNodeDeviceType.xml
rename to data_model/1.5.1/device_types/RootNodeDeviceType.xml
index 7208e9a4e1d..e9db0c1cf17 100644
--- a/data_model/master/device_types/RootNodeDeviceType.xml
+++ b/data_model/1.5.1/device_types/RootNodeDeviceType.xml
@@ -1,4 +1,4 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
@@ -149,13 +165,118 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -172,12 +293,30 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/SecondaryNetworkInterface.xml b/data_model/1.5.1/device_types/SecondaryNetworkInterface.xml
similarity index 100%
rename from data_model/master/device_types/SecondaryNetworkInterface.xml
rename to data_model/1.5.1/device_types/SecondaryNetworkInterface.xml
diff --git a/data_model/master/device_types/SmokeCOAlarm.xml b/data_model/1.5.1/device_types/SmokeCOAlarm.xml
similarity index 100%
rename from data_model/master/device_types/SmokeCOAlarm.xml
rename to data_model/1.5.1/device_types/SmokeCOAlarm.xml
diff --git a/data_model/master/device_types/SnapshotCamera.xml b/data_model/1.5.1/device_types/SnapshotCamera.xml
similarity index 89%
rename from data_model/master/device_types/SnapshotCamera.xml
rename to data_model/1.5.1/device_types/SnapshotCamera.xml
index b7dd302dfe3..f39717fcff0 100644
--- a/data_model/master/device_types/SnapshotCamera.xml
+++ b/data_model/1.5.1/device_types/SnapshotCamera.xml
@@ -62,32 +62,41 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
diff --git a/data_model/master/device_types/SoilSensor.xml b/data_model/1.5.1/device_types/SoilSensor.xml
similarity index 100%
rename from data_model/master/device_types/SoilSensor.xml
rename to data_model/1.5.1/device_types/SoilSensor.xml
diff --git a/data_model/master/device_types/SolarPower.xml b/data_model/1.5.1/device_types/SolarPower.xml
similarity index 84%
rename from data_model/master/device_types/SolarPower.xml
rename to data_model/1.5.1/device_types/SolarPower.xml
index 21bedacedfe..d0875d1f864 100644
--- a/data_model/master/device_types/SolarPower.xml
+++ b/data_model/1.5.1/device_types/SolarPower.xml
@@ -67,4 +67,24 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/Speaker.xml b/data_model/1.5.1/device_types/Speaker.xml
similarity index 98%
rename from data_model/master/device_types/Speaker.xml
rename to data_model/1.5.1/device_types/Speaker.xml
index fa2712c29c5..62889337917 100644
--- a/data_model/master/device_types/Speaker.xml
+++ b/data_model/1.5.1/device_types/Speaker.xml
@@ -63,7 +63,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/master/device_types/TemperatureControlledCabinet.xml b/data_model/1.5.1/device_types/TemperatureControlledCabinet.xml
similarity index 95%
rename from data_model/master/device_types/TemperatureControlledCabinet.xml
rename to data_model/1.5.1/device_types/TemperatureControlledCabinet.xml
index 91b8052b919..06ce9f3cdf3 100644
--- a/data_model/master/device_types/TemperatureControlledCabinet.xml
+++ b/data_model/1.5.1/device_types/TemperatureControlledCabinet.xml
@@ -84,7 +84,7 @@ Davis, CA 95616, USA
-
+
@@ -94,7 +94,7 @@ Davis, CA 95616, USA
-
+
@@ -104,12 +104,12 @@ Davis, CA 95616, USA
-
+
-
+
@@ -122,10 +122,10 @@ Davis, CA 95616, USA
-
+
-
+
diff --git a/data_model/master/device_types/TemperatureSensor.xml b/data_model/1.5.1/device_types/TemperatureSensor.xml
similarity index 95%
rename from data_model/master/device_types/TemperatureSensor.xml
rename to data_model/1.5.1/device_types/TemperatureSensor.xml
index 6d4b65d2956..728edf50222 100644
--- a/data_model/master/device_types/TemperatureSensor.xml
+++ b/data_model/1.5.1/device_types/TemperatureSensor.xml
@@ -61,20 +61,20 @@ Davis, CA 95616, USA
-
+
-
-
-
-
-
+
+
+
+
+
diff --git a/data_model/master/device_types/Thermostat.xml b/data_model/1.5.1/device_types/Thermostat.xml
similarity index 88%
rename from data_model/master/device_types/Thermostat.xml
rename to data_model/1.5.1/device_types/Thermostat.xml
index 4ef8aca4b14..f2cfa562d8c 100644
--- a/data_model/master/device_types/Thermostat.xml
+++ b/data_model/1.5.1/device_types/Thermostat.xml
@@ -57,12 +57,13 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
@@ -74,32 +75,11 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ThermostatController.xml b/data_model/1.5.1/device_types/ThermostatController.xml
similarity index 97%
rename from data_model/master/device_types/ThermostatController.xml
rename to data_model/1.5.1/device_types/ThermostatController.xml
index 5ea3dbe35e3..2970767667f 100644
--- a/data_model/master/device_types/ThermostatController.xml
+++ b/data_model/1.5.1/device_types/ThermostatController.xml
@@ -70,10 +70,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/master/device_types/ThreadBorderRouter.xml b/data_model/1.5.1/device_types/ThreadBorderRouter.xml
similarity index 95%
rename from data_model/master/device_types/ThreadBorderRouter.xml
rename to data_model/1.5.1/device_types/ThreadBorderRouter.xml
index e1f6326d6bf..724a3146845 100644
--- a/data_model/master/device_types/ThreadBorderRouter.xml
+++ b/data_model/1.5.1/device_types/ThreadBorderRouter.xml
@@ -57,15 +57,13 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
-
-
-
diff --git a/data_model/master/device_types/VideoDoorbell.xml b/data_model/1.5.1/device_types/VideoDoorbell.xml
similarity index 100%
rename from data_model/master/device_types/VideoDoorbell.xml
rename to data_model/1.5.1/device_types/VideoDoorbell.xml
diff --git a/data_model/master/device_types/VideoRemoteControl.xml b/data_model/1.5.1/device_types/VideoRemoteControl.xml
similarity index 97%
rename from data_model/master/device_types/VideoRemoteControl.xml
rename to data_model/1.5.1/device_types/VideoRemoteControl.xml
index 57e29b9e838..823cd861d3f 100644
--- a/data_model/master/device_types/VideoRemoteControl.xml
+++ b/data_model/1.5.1/device_types/VideoRemoteControl.xml
@@ -64,13 +64,13 @@ Davis, CA 95616, USA
-
+
-
+
diff --git a/data_model/master/device_types/WaterFreezeDetector.xml b/data_model/1.5.1/device_types/WaterFreezeDetector.xml
similarity index 100%
rename from data_model/master/device_types/WaterFreezeDetector.xml
rename to data_model/1.5.1/device_types/WaterFreezeDetector.xml
diff --git a/data_model/master/device_types/WaterHeater.xml b/data_model/1.5.1/device_types/WaterHeater.xml
similarity index 81%
rename from data_model/master/device_types/WaterHeater.xml
rename to data_model/1.5.1/device_types/WaterHeater.xml
index 014d5d934bc..5f04901b9e3 100644
--- a/data_model/master/device_types/WaterHeater.xml
+++ b/data_model/1.5.1/device_types/WaterHeater.xml
@@ -69,19 +69,47 @@ Davis, CA 95616, USA
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
diff --git a/data_model/master/device_types/WaterLeakDetector.xml b/data_model/1.5.1/device_types/WaterLeakDetector.xml
similarity index 100%
rename from data_model/master/device_types/WaterLeakDetector.xml
rename to data_model/1.5.1/device_types/WaterLeakDetector.xml
diff --git a/data_model/master/device_types/WaterValve.xml b/data_model/1.5.1/device_types/WaterValve.xml
similarity index 100%
rename from data_model/master/device_types/WaterValve.xml
rename to data_model/1.5.1/device_types/WaterValve.xml
diff --git a/data_model/master/device_types/WindowCovering.xml b/data_model/1.5.1/device_types/WindowCovering.xml
similarity index 91%
rename from data_model/master/device_types/WindowCovering.xml
rename to data_model/1.5.1/device_types/WindowCovering.xml
index e63757104db..85cc80cea60 100644
--- a/data_model/master/device_types/WindowCovering.xml
+++ b/data_model/1.5.1/device_types/WindowCovering.xml
@@ -57,12 +57,14 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
+
@@ -79,13 +81,12 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/data_model/master/device_types/WindowCoveringController.xml b/data_model/1.5.1/device_types/WindowCoveringController.xml
similarity index 93%
rename from data_model/master/device_types/WindowCoveringController.xml
rename to data_model/1.5.1/device_types/WindowCoveringController.xml
index 7b127dbca08..696b5cbe527 100644
--- a/data_model/master/device_types/WindowCoveringController.xml
+++ b/data_model/1.5.1/device_types/WindowCoveringController.xml
@@ -62,7 +62,7 @@ Davis, CA 95616, USA
-
+
@@ -82,13 +82,6 @@ Davis, CA 95616, USA
-
-
-
-
-
-
-
diff --git a/data_model/1.5.1/device_types/device_type_ids.json b/data_model/1.5.1/device_types/device_type_ids.json
new file mode 100644
index 00000000000..d47eef2eb82
--- /dev/null
+++ b/data_model/1.5.1/device_types/device_type_ids.json
@@ -0,0 +1,93 @@
+{
+ "10": "Door Lock",
+ "11": "Door Lock Controller",
+ "14": "Aggregator",
+ "15": "Generic Switch",
+ "17": "Power Source",
+ "18": "OTA Requestor",
+ "19": "Bridged Node",
+ "20": "OTA Provider",
+ "21": "Contact Sensor",
+ "22": "Root Node",
+ "23": "Solar Power",
+ "24": "Battery Storage",
+ "25": "Secondary Network Interface",
+ "34": "Speaker",
+ "35": "Casting Video Player",
+ "36": "Content App",
+ "39": "Mode Select",
+ "40": "Basic Video Player",
+ "41": "Casting Video Client",
+ "42": "Video Remote Control",
+ "43": "Fan",
+ "44": "Air Quality Sensor",
+ "45": "Air Purifier",
+ "64": "Irrigation System",
+ "65": "Water Freeze Detector",
+ "66": "Water Valve",
+ "67": "Water Leak Detector",
+ "68": "Rain Sensor",
+ "69": "Soil Sensor",
+ "112": "Refrigerator",
+ "113": "Temperature Controlled Cabinet",
+ "114": "Room Air Conditioner",
+ "115": "Laundry Washer",
+ "116": "Robotic Vacuum Cleaner",
+ "117": "Dishwasher",
+ "118": "Smoke CO Alarm",
+ "119": "Cook Surface",
+ "120": "Cooktop",
+ "121": "Microwave Oven",
+ "122": "Extractor Hood",
+ "123": "Oven",
+ "124": "Laundry Dryer",
+ "144": "Network Infrastructure Manager",
+ "145": "Thread Border Router",
+ "256": "On/Off Light",
+ "257": "Dimmable Light",
+ "259": "On/Off Light Switch",
+ "260": "Dimmer Switch",
+ "261": "Color Dimmer Switch",
+ "262": "Light Sensor",
+ "263": "Occupancy Sensor",
+ "266": "On/Off Plug-in Unit",
+ "267": "Dimmable Plug-In Unit",
+ "268": "Color Temperature Light",
+ "269": "Extended Color Light",
+ "271": "Mounted On/Off Control",
+ "272": "Mounted Dimmable Load Control",
+ "304": "Joint Fabric Administrator",
+ "320": "Intercom",
+ "321": "Audio Doorbell",
+ "322": "Camera",
+ "323": "Video Doorbell",
+ "324": "Floodlight Camera",
+ "325": "Snapshot Camera",
+ "326": "Chime",
+ "327": "Camera Controller",
+ "328": "Doorbell",
+ "514": "Window Covering",
+ "515": "Window Covering Controller",
+ "560": "Closure",
+ "561": "Closure Panel",
+ "574": "Closure Controller",
+ "769": "Thermostat",
+ "770": "Temperature Sensor",
+ "771": "Pump",
+ "772": "Pump Controller",
+ "773": "Pressure Sensor",
+ "774": "Flow Sensor",
+ "775": "Humidity Sensor",
+ "777": "Heat Pump",
+ "778": "Thermostat Controller",
+ "1292": "Energy EVSE",
+ "1293": "Device Energy Management",
+ "1295": "Water Heater",
+ "1296": "Electrical Sensor",
+ "1297": "Electrical Utility Meter",
+ "1298": "Meter Reference Point",
+ "1299": "Electrical Energy Tariff",
+ "1300": "Electrical Meter",
+ "2112": "Control Bridge",
+ "2128": "On/Off Sensor"
+}
diff --git a/data_model/master/clusters/Label-Cluster-LabelCluster.xml b/data_model/1.5.1/globals/Bitmaps.xml
similarity index 66%
rename from data_model/master/clusters/Label-Cluster-LabelCluster.xml
rename to data_model/1.5.1/globals/Bitmaps.xml
index b9cd9e7f440..ab815523e17 100644
--- a/data_model/master/clusters/Label-Cluster-LabelCluster.xml
+++ b/data_model/1.5.1/globals/Bitmaps.xml
@@ -1,6 +1,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/clusters/Label-Cluster-UserLabelCluster.xml b/data_model/1.5.1/globals/Commands.xml
similarity index 75%
rename from data_model/master/clusters/Label-Cluster-UserLabelCluster.xml
rename to data_model/1.5.1/globals/Commands.xml
index 449e0b38b98..f7a69315211 100644
--- a/data_model/master/clusters/Label-Cluster-UserLabelCluster.xml
+++ b/data_model/1.5.1/globals/Commands.xml
@@ -1,6 +1,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/1.5.1/globals/Enums.xml b/data_model/1.5.1/globals/Enums.xml
new file mode 100644
index 00000000000..75539883819
--- /dev/null
+++ b/data_model/1.5.1/globals/Enums.xml
@@ -0,0 +1,247 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
diff --git a/data_model/1.5.1/globals/Structs.xml b/data_model/1.5.1/globals/Structs.xml
new file mode 100644
index 00000000000..60fba440dd6
--- /dev/null
+++ b/data_model/1.5.1/globals/Structs.xml
@@ -0,0 +1,371 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ subtract
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/device_types/AudioDoorbell.xml b/data_model/1.5.1/globals/TypeDefs.xml
similarity index 89%
rename from data_model/master/device_types/AudioDoorbell.xml
rename to data_model/1.5.1/globals/TypeDefs.xml
index a78235dbc46..d6c6b2a73c3 100644
--- a/data_model/master/device_types/AudioDoorbell.xml
+++ b/data_model/1.5.1/globals/TypeDefs.xml
@@ -1,6 +1,6 @@
-
-
-
-
-
-
+
+
+
diff --git a/data_model/master/namespaces/Namespace-Closure-Cabinet.xml b/data_model/1.5.1/namespaces/Namespace-Closure-Cabinet.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Closure-Cabinet.xml
rename to data_model/1.5.1/namespaces/Namespace-Closure-Cabinet.xml
diff --git a/data_model/master/namespaces/Namespace-Closure-Covering.xml b/data_model/1.5.1/namespaces/Namespace-Closure-Covering.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Closure-Covering.xml
rename to data_model/1.5.1/namespaces/Namespace-Closure-Covering.xml
diff --git a/data_model/master/namespaces/Namespace-Closure-Window.xml b/data_model/1.5.1/namespaces/Namespace-Closure-Window.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Closure-Window.xml
rename to data_model/1.5.1/namespaces/Namespace-Closure-Window.xml
diff --git a/data_model/master/namespaces/Namespace-Closure.xml b/data_model/1.5.1/namespaces/Namespace-Closure.xml
similarity index 99%
rename from data_model/master/namespaces/Namespace-Closure.xml
rename to data_model/1.5.1/namespaces/Namespace-Closure.xml
index eb34a46ba22..bb13f60596e 100644
--- a/data_model/master/namespaces/Namespace-Closure.xml
+++ b/data_model/1.5.1/namespaces/Namespace-Closure.xml
@@ -74,7 +74,7 @@ Davis, CA 95616, USA
A movable barrier that controls entry or exit through an opening in a fence, wall, or enclosure.
-
+
A large, movable barrier that provides access to a garage.
diff --git a/data_model/master/namespaces/Namespace-ClosurePanel.xml b/data_model/1.5.1/namespaces/Namespace-ClosurePanel.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-ClosurePanel.xml
rename to data_model/1.5.1/namespaces/Namespace-ClosurePanel.xml
diff --git a/data_model/master/namespaces/Namespace-CommodityTariff-Chronology.xml b/data_model/1.5.1/namespaces/Namespace-CommodityTariff-Chronology.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-CommodityTariff-Chronology.xml
rename to data_model/1.5.1/namespaces/Namespace-CommodityTariff-Chronology.xml
diff --git a/data_model/master/namespaces/Namespace-CommodityTariff-Commodity.xml b/data_model/1.5.1/namespaces/Namespace-CommodityTariff-Commodity.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-CommodityTariff-Commodity.xml
rename to data_model/1.5.1/namespaces/Namespace-CommodityTariff-Commodity.xml
diff --git a/data_model/master/namespaces/Namespace-CommodityTariff-Flow.xml b/data_model/1.5.1/namespaces/Namespace-CommodityTariff-Flow.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-CommodityTariff-Flow.xml
rename to data_model/1.5.1/namespaces/Namespace-CommodityTariff-Flow.xml
diff --git a/data_model/master/namespaces/Namespace-Common-Area.xml b/data_model/1.5.1/namespaces/Namespace-Common-Area.xml
similarity index 99%
rename from data_model/master/namespaces/Namespace-Common-Area.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-Area.xml
index c25dab0d855..0f13aab8dc1 100644
--- a/data_model/master/namespaces/Namespace-Common-Area.xml
+++ b/data_model/1.5.1/namespaces/Namespace-Common-Area.xml
@@ -128,10 +128,10 @@ Davis, CA 95616, USA
-
+
A space used to remove soiled garments prior to entering the domicile proper
-
+
diff --git a/data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml b/data_model/1.5.1/namespaces/Namespace-Common-Closure.xml
similarity index 81%
rename from data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-Closure.xml
index 12bec55222c..6cc806308e3 100644
--- a/data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml
+++ b/data_model/1.5.1/namespaces/Namespace-Common-Closure.xml
@@ -57,20 +57,16 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Move toward open position
+
+
+ Move toward closed position
+
+
+ Stop any movement
+
+
+
diff --git a/data_model/master/namespaces/Namespace-Common-CompassDirection.xml b/data_model/1.5.1/namespaces/Namespace-Common-CompassDirection.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Common-CompassDirection.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-CompassDirection.xml
diff --git a/data_model/master/namespaces/Namespace-Common-CompassLocation.xml b/data_model/1.5.1/namespaces/Namespace-Common-CompassLocation.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Common-CompassLocation.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-CompassLocation.xml
diff --git a/data_model/master/namespaces/Namespace-Common-Direction.xml b/data_model/1.5.1/namespaces/Namespace-Common-Direction.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Common-Direction.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-Direction.xml
diff --git a/data_model/master/namespaces/Namespace-Common-Landmark.xml b/data_model/1.5.1/namespaces/Namespace-Common-Landmark.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Common-Landmark.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-Landmark.xml
diff --git a/data_model/master/namespaces/Namespace-Common-Level.xml b/data_model/1.5.1/namespaces/Namespace-Common-Level.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Common-Level.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-Level.xml
diff --git a/data_model/master/namespaces/Namespace-Common-Location.xml b/data_model/1.5.1/namespaces/Namespace-Common-Location.xml
similarity index 95%
rename from data_model/master/namespaces/Namespace-Common-Location.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-Location.xml
index fce22bcb512..453ea6e1581 100644
--- a/data_model/master/namespaces/Namespace-Common-Location.xml
+++ b/data_model/1.5.1/namespaces/Namespace-Common-Location.xml
@@ -69,7 +69,10 @@ Davis, CA 95616, USA
Element is located inside the equipment (e.g. a sensor "inside" a cabinet).
- Element is located outside the equipment (e.g. a sensor "outside" a cabinet)
+ Element is located outside the equipment (e.g. a sensor "outside" a cabinet).
+
+
+ Element is a part of a location divided into zones (e.g. a yard irrigation zone).
diff --git a/data_model/master/namespaces/Namespace-Common-Number.xml b/data_model/1.5.1/namespaces/Namespace-Common-Number.xml
similarity index 83%
rename from data_model/master/namespaces/Namespace-Common-Number.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-Number.xml
index 53917dcb9cc..2e54510f51d 100644
--- a/data_model/master/namespaces/Namespace-Common-Number.xml
+++ b/data_model/1.5.1/namespaces/Namespace-Common-Number.xml
@@ -70,5 +70,25 @@ Davis, CA 95616, USA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data_model/master/namespaces/Namespace-Common-Position.xml b/data_model/1.5.1/namespaces/Namespace-Common-Position.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Common-Position.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-Position.xml
diff --git a/data_model/master/namespaces/Namespace-Common-RelativePosition.xml b/data_model/1.5.1/namespaces/Namespace-Common-RelativePosition.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Common-RelativePosition.xml
rename to data_model/1.5.1/namespaces/Namespace-Common-RelativePosition.xml
diff --git a/data_model/master/namespaces/Namespace-ElectricalMeasurement.xml b/data_model/1.5.1/namespaces/Namespace-ElectricalMeasurement.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-ElectricalMeasurement.xml
rename to data_model/1.5.1/namespaces/Namespace-ElectricalMeasurement.xml
diff --git a/data_model/master/namespaces/Namespace-Laundry.xml b/data_model/1.5.1/namespaces/Namespace-Laundry.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Laundry.xml
rename to data_model/1.5.1/namespaces/Namespace-Laundry.xml
diff --git a/data_model/master/namespaces/Namespace-PowerSource.xml b/data_model/1.5.1/namespaces/Namespace-PowerSource.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-PowerSource.xml
rename to data_model/1.5.1/namespaces/Namespace-PowerSource.xml
diff --git a/data_model/master/namespaces/Namespace-Refrigerator.xml b/data_model/1.5.1/namespaces/Namespace-Refrigerator.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Refrigerator.xml
rename to data_model/1.5.1/namespaces/Namespace-Refrigerator.xml
diff --git a/data_model/master/namespaces/Namespace-RoomAirConditioner.xml b/data_model/1.5.1/namespaces/Namespace-RoomAirConditioner.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-RoomAirConditioner.xml
rename to data_model/1.5.1/namespaces/Namespace-RoomAirConditioner.xml
diff --git a/data_model/master/namespaces/Namespace-Switches.xml b/data_model/1.5.1/namespaces/Namespace-Switches.xml
similarity index 100%
rename from data_model/master/namespaces/Namespace-Switches.xml
rename to data_model/1.5.1/namespaces/Namespace-Switches.xml
diff --git a/data_model/1.5.1/scraper_version b/data_model/1.5.1/scraper_version
new file mode 100644
index 00000000000..1a2c94536a4
--- /dev/null
+++ b/data_model/1.5.1/scraper_version
@@ -0,0 +1 @@
+alchemy version: v1.6.8
diff --git a/data_model/1.5.1/spec_sha b/data_model/1.5.1/spec_sha
new file mode 100644
index 00000000000..687c391f80d
--- /dev/null
+++ b/data_model/1.5.1/spec_sha
@@ -0,0 +1 @@
+7426ff7f7dd256532c45611762cae3a3b81cda32
diff --git a/data_model/1.5.1/spec_tag b/data_model/1.5.1/spec_tag
new file mode 100644
index 00000000000..0240264d15e
--- /dev/null
+++ b/data_model/1.5.1/spec_tag
@@ -0,0 +1 @@
+0.9-winter-2026
diff --git a/data_model/master/clusters/AmbientContextSensing.xml b/data_model/master/clusters/AmbientContextSensing.xml
deleted file mode 100644
index fc0bdee2b84..00000000000
--- a/data_model/master/clusters/AmbientContextSensing.xml
+++ /dev/null
@@ -1,163 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/clusters/DemandResponseLoadControl.xml b/data_model/master/clusters/DemandResponseLoadControl.xml
deleted file mode 100644
index d7776e73eb9..00000000000
--- a/data_model/master/clusters/DemandResponseLoadControl.xml
+++ /dev/null
@@ -1,519 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/clusters/Humidistat.xml b/data_model/master/clusters/Humidistat.xml
deleted file mode 100644
index fec8bafb05d..00000000000
--- a/data_model/master/clusters/Humidistat.xml
+++ /dev/null
@@ -1,298 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/clusters/NetworkIdentityManagement.xml b/data_model/master/clusters/NetworkIdentityManagement.xml
deleted file mode 100644
index 12a87243d94..00000000000
--- a/data_model/master/clusters/NetworkIdentityManagement.xml
+++ /dev/null
@@ -1,206 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/clusters/bridge-clusters-ActionsCluster.xml b/data_model/master/clusters/bridge-clusters-ActionsCluster.xml
deleted file mode 100644
index d60bcd1e2d9..00000000000
--- a/data_model/master/clusters/bridge-clusters-ActionsCluster.xml
+++ /dev/null
@@ -1,413 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml b/data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml
deleted file mode 100644
index 303ba3f5802..00000000000
--- a/data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml
+++ /dev/null
@@ -1,316 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Awning.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Awning.xml
deleted file mode 100644
index c4c18459fd1..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Awning.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Barrier.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Barrier.xml
deleted file mode 100644
index c8389a85030..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Barrier.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Blind.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Blind.xml
deleted file mode 100644
index e148b80fdcf..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Blind.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Cabinet.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Cabinet.xml
deleted file mode 100644
index 775397161fc..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Cabinet.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-ClosureBase.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-ClosureBase.xml
deleted file mode 100644
index b17d5325460..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-ClosureBase.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Curtain.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Curtain.xml
deleted file mode 100644
index 2a5d5633889..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Curtain.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Door.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Door.xml
deleted file mode 100644
index c6d7bb8fce1..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Door.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-GarageDoor.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-GarageDoor.xml
deleted file mode 100644
index ac72e15a76a..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-GarageDoor.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Gate.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Gate.xml
deleted file mode 100644
index 0fac9ef75b1..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Gate.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Pergola.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Pergola.xml
deleted file mode 100644
index 7c1f2bd72db..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Pergola.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Screen.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Screen.xml
deleted file mode 100644
index 4ddec2e7c02..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Screen.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Shade.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Shade.xml
deleted file mode 100644
index 1346498e562..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Shade.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Shutter.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Shutter.xml
deleted file mode 100644
index c421c5ec51c..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Shutter.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/device_types/ClosureBaseDeviceTypes-Window.xml b/data_model/master/device_types/ClosureBaseDeviceTypes-Window.xml
deleted file mode 100644
index 8d53f6c6a0f..00000000000
--- a/data_model/master/device_types/ClosureBaseDeviceTypes-Window.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data_model/master/scraper_version b/data_model/master/scraper_version
deleted file mode 100644
index 6f7f0a8cb98..00000000000
--- a/data_model/master/scraper_version
+++ /dev/null
@@ -1 +0,0 @@
-alchemy version: v1.5.17
diff --git a/data_model/master/spec_sha b/data_model/master/spec_sha
deleted file mode 100644
index f34f0787686..00000000000
--- a/data_model/master/spec_sha
+++ /dev/null
@@ -1 +0,0 @@
-9bd1d5052d58eb6d76e3b48afe1ae8ecd6f93271
diff --git a/docs/ids_and_codes/spec_clusters.md b/docs/ids_and_codes/spec_clusters.md
index 1d286f3d6e0..88277d1f3bb 100644
--- a/docs/ids_and_codes/spec_clusters.md
+++ b/docs/ids_and_codes/spec_clusters.md
@@ -1,153 +1,151 @@
# List of currently defined spec clusters
-This file was **AUTOMATICALLY** generated by `python scripts/generate_spec_xml.py`. DO NOT EDIT BY HAND!
+This file was **AUTOMATICALLY** generated by
+`python scripts/generate_spec_xml.py`. DO NOT EDIT BY HAND!
-The following markers are used in this document (matches the ID master list):
-| State | Description |
-|-------|--------------------------------|
-| blank | Not supported in this revision |
-| C | Certifiable |
-| P | Provisional |
+The following markers are used in this document (matches the ID master list): |
+State | Description | |-------|--------------------------------| | blank | Not
+supported in this revision | | C | Certifiable | | P | Provisional |
-| ID (Decimal) | ID (hex) | Name | PICS Code |1.2|1.3|1.4|1.4.1|1.4.2-mve-1|1.5|
-|--------------|----------|----------------------------------------------------------|---------------|---|---|---|-----|-----------|---|
-|3 |0x0003 |Identify |I |C |C |C |C |C |C |
-|4 |0x0004 |Groups |G |C |C |C |C |C |C |
-|5 |0x0005 |Scenes |S |C | | | | | |
-|6 |0x0006 |On/Off |OO |C |C |C |C |C |C |
-|8 |0x0008 |Level Control |LVL |C |C |C |C |C |C |
-|28 |0x001C |Pulse Width Modulation |PWM |C |P | | | | |
-|29 |0x001D |Descriptor |DESC |C |C |C |C |C |C |
-|30 |0x001E |Binding |BIND |C |C |C |C |C |C |
-|31 |0x001F |Access Control |ACL |C |C |C |C |C |C |
-|37 |0x0025 |Actions |ACT |C |C |C |C |C |C |
-|40 |0x0028 |Basic Information |BINFO |C |C |C |C |C |C |
-|41 |0x0029 |OTA Software Update Provider |OTAP |C |C |C |C |C |C |
-|42 |0x002A |OTA Software Update Requestor |OTAR |C |C |C |C |C |C |
-|43 |0x002B |Localization Configuration |LCFG |C |C |C |C |C |C |
-|44 |0x002C |Time Format Localization |LTIME |C |C |C |C |C |C |
-|45 |0x002D |Unit Localization |LUNIT |C |C |C |C |C |C |
-|46 |0x002E |Power Source Configuration |PSCFG |C |C |C |C |C |C |
-|47 |0x002F |Power Source |PS |C |C |C |C |C |C |
-|48 |0x0030 |General Commissioning |CGEN |C |C |C |C |C |C |
-|49 |0x0031 |Network Commissioning |CNET |C |C |C |C |C |C |
-|50 |0x0032 |Diagnostic Logs |DLOG |C |C |C |C |C |C |
-|51 |0x0033 |General Diagnostics |DGGEN |C |C |C |C |C |C |
-|52 |0x0034 |Software Diagnostics |DGSW |C |C |C |C |C |C |
-|53 |0x0035 |Thread Network Diagnostics |DGTHREAD |C |C |C |C |C |C |
-|54 |0x0036 |Wi-Fi Network Diagnostics |DGWIFI |C |C |C |C |C |C |
-|55 |0x0037 |Ethernet Network Diagnostics |DGETH |C |C |C |C |C |C |
-|56 |0x0038 |Time Synchronization |TIMESYNC |C |C |C |C |C |C |
-|57 |0x0039 |Bridged Device Basic Information |BRBINFO |C |C |C |C |C |C |
-|59 |0x003B |Switch |SWTCH |C |C |C |C |C |C |
-|60 |0x003C |Administrator Commissioning |CADMIN |C |C |C |C |C |C |
-|62 |0x003E |Operational Credentials |OPCREDS |C |C |C |C |C |C |
-|63 |0x003F |Group Key Management |GRPKEY |C |C |C |C |C |C |
-|64 |0x0040 |Fixed Label |FLABEL |C |C |C |C |C |C |
-|65 |0x0041 |User Label |ULABEL |C |C |C |C |C |C |
-|66 |0x0042 |Proxy Configuration |PXCFG |C |P |P |P | | |
-|67 |0x0043 |Proxy Discovery |PXDSC |C |P |P |P | | |
-|68 |0x0044 |Valid Proxies |PXVALID |C |P |P |P | | |
-|69 |0x0045 |Boolean State |BOOL |C |C |C |C |C |C |
-|70 |0x0046 |ICD Management |ICDM |C |C |C |C |C |C |
-|72 |0x0048 |Oven Cavity Operational State |OVENOPSTATE | |C |C |C |C |C |
-|73 |0x0049 |Oven Mode |OTCCM | |C |C |C |C |C |
-|74 |0x004A |Laundry Dryer Controls |DRYERCTRL | |C |C |C |C |C |
-|80 |0x0050 |Mode Select |MOD |C |C |C |C |C |C |
-|81 |0x0051 |Laundry Washer Mode |LWM |C |C |C |C |C |C |
-|82 |0x0052 |Refrigerator And Temperature Controlled Cabinet Mode |TCCM |C |C |C |C |C |C |
-|83 |0x0053 |Laundry Washer Controls |WASHERCTRL |C |C |C |C |C |C |
-|84 |0x0054 |RVC Run Mode |RVCRUNM |C |C |C |C |C |C |
-|85 |0x0055 |RVC Clean Mode |RVCCLEANM |C |C |C |C |C |C |
-|86 |0x0056 |Temperature Control |TCTL |C |C |C |C |C |C |
-|87 |0x0057 |Refrigerator Alarm |REFALM |C |C |C |C |C |C |
-|89 |0x0059 |Dishwasher Mode |DISHM |C |C |C |C |C |C |
-|91 |0x005B |Air Quality |AIRQUAL |C |C |C |C |C |C |
-|92 |0x005C |Smoke CO Alarm |SMOKECO |C |C |C |C |C |C |
-|93 |0x005D |Dishwasher Alarm |DISHALM |C |C |C |C |C |C |
-|94 |0x005E |Microwave Oven Mode |MWOM | |C |C |C |C |C |
-|95 |0x005F |Microwave Oven Control |MWOCTRL | |C |C |C |C |C |
-|96 |0x0060 |Operational State |OPSTATE |C |C |C |C |C |C |
-|97 |0x0061 |RVC Operational State |RVCOPSTATE |C |C |C |C |C |C |
-|98 |0x0062 |Scenes Management |S | |P |P |P |C |C |
-|113 |0x0071 |HEPA Filter Monitoring |HEPAFREMON |C |C |C |C |C |C |
-|114 |0x0072 |Activated Carbon Filter Monitoring |ACFREMON |C |C |C |C |C |C |
-|121 |0x0079 |Water Tank Level Monitoring |REPM | | |C |C |C |C |
-|128 |0x0080 |Boolean State Configuration |BOOLCFG | |C |C |C |C |C |
-|129 |0x0081 |Valve Configuration and Control |VALCC | |C |C |C |C |C |
-|144 |0x0090 |Electrical Power Measurement |EPM | |C |C |C |C |C |
-|145 |0x0091 |Electrical Energy Measurement |EEM | |C |C |C |C |C |
-|148 |0x0094 |Water Heater Management |EWATERHTR | | |C |C |C |C |
-|149 |0x0095 |Commodity Price |SEPR | | | | | |C |
-|151 |0x0097 |Messages |MESS | |C |C |C |C |C |
-|152 |0x0098 |Device Energy Management |DEM | |P |C |C |C |C |
-|153 |0x0099 |Energy EVSE |EEVSE | |C |C |C |C |C |
-|155 |0x009B |Energy Preference |EPREF | |P |P |P |P |P |
-|156 |0x009C |Power Topology |PWRTL | |C |C |C |C |C |
-|157 |0x009D |Energy EVSE Mode |EEVSEM | |C |C |C |C |C |
-|158 |0x009E |Water Heater Mode |WHM | | |C |C |C |C |
-|159 |0x009F |Device Energy Management Mode |DEMM | |P |C |C |C |C |
-|160 |0x00A0 |Electrical Grid Conditions |EGC | | | | | |C |
-|257 |0x0101 |Door Lock |DRLK |C |C |C |C |C |C |
-|258 |0x0102 |Window Covering |WNCV |C |C |C |C |C |C |
-|260 |0x0104 |Closure Control |CLCTRL | | | | | |C |
-|261 |0x0105 |Closure Dimension |CLDIM | | | | | |C |
-|336 |0x0150 |Service Area |SEAR | | |C |C |C |C |
-|512 |0x0200 |Pump Configuration and Control |PCC |C |C |C |C |C |C |
-|513 |0x0201 |Thermostat |TSTAT |C |C |C |C |C |C |
-|514 |0x0202 |Fan Control |FAN |C |C |C |C |C |C |
-|516 |0x0204 |Thermostat User Interface Configuration |TSUIC |C |C |C |C |C |C |
-|768 |0x0300 |Color Control |CC |C |C |C |C |C |C |
-|769 |0x0301 |Ballast Configuration |BC |C |P |P |P | | |
-|1024 |0x0400 |Illuminance Measurement |ILL |C |C |C |C |C |C |
-|1026 |0x0402 |Temperature Measurement |TMP |C |C |C |C |C |C |
-|1027 |0x0403 |Pressure Measurement |PRS |C |C |C |C |C |C |
-|1028 |0x0404 |Flow Measurement |FLW |C |C |C |C |C |C |
-|1029 |0x0405 |Relative Humidity Measurement |RH |C |C |C |C |C |C |
-|1030 |0x0406 |Occupancy Sensing |OCC |C |C |C |C |C |C |
-|1031 |0x0407 |Leaf Wetness Measurement |RH |C | | | | | |
-|1032 |0x0408 |Soil Moisture Measurement |RH |C | | | | | |
-|1036 |0x040C |Carbon Monoxide Concentration Measurement |CMOCONC |C |C |C |C |C |C |
-|1037 |0x040D |Carbon Dioxide Concentration Measurement |CDOCONC |C |C |C |C |C |C |
-|1043 |0x0413 |Nitrogen Dioxide Concentration Measurement |NDOCONC |C |C |C |C |C |C |
-|1045 |0x0415 |Ozone Concentration Measurement |OZCONC |C |C |C |C |C |C |
-|1066 |0x042A |PM2.5 Concentration Measurement |PMICONC |C |C |C |C |C |C |
-|1067 |0x042B |Formaldehyde Concentration Measurement |FLDCONC |C |C |C |C |C |C |
-|1068 |0x042C |PM1 Concentration Measurement |PMHCONC |C |C |C |C |C |C |
-|1069 |0x042D |PM10 Concentration Measurement |PMKCONC |C |C |C |C |C |C |
-|1070 |0x042E |Total Volatile Organic Compounds Concentration Measurement|TVOCCONC |C |C |C |C |C |C |
-|1071 |0x042F |Radon Concentration Measurement |RNCONC |C |C |C |C |C |C |
-|1072 |0x0430 |Soil Measurement |SOIL | | | | | |C |
-|1105 |0x0451 |Wi-Fi Network Management |WIFINM | | |C |C |C |C |
-|1106 |0x0452 |Thread Border Router Management |TBRM | | |C |C |C |C |
-|1107 |0x0453 |Thread Network Directory |THNETDIR | | |C |C |C |C |
-|1283 |0x0503 |Wake On LAN |WAKEONLAN |C |C |C |C |C |C |
-|1284 |0x0504 |Channel |CHANNEL |C |C |C |C |C |C |
-|1285 |0x0505 |Target Navigator |TGTNAV |C |C |C |C |C |C |
-|1286 |0x0506 |Media Playback |MEDIAPLAYBACK |C |C |C |C |C |C |
-|1287 |0x0507 |Media Input |MEDIAINPUT |C |C |C |C |C |C |
-|1288 |0x0508 |Low Power |LOWPOWER |C |C |C |C |C |C |
-|1289 |0x0509 |Keypad Input |KEYPADINPUT |C |C |C |C |C |C |
-|1290 |0x050A |Content Launcher |CONTENTLAUNCHER|C |C |C |C |C |C |
-|1291 |0x050B |Audio Output |AUDIOOUTPUT |C |C |C |C |C |C |
-|1292 |0x050C |Application Launcher |APPLAUNCHER |C |C |C |C |C |C |
-|1293 |0x050D |Application Basic |APBSC |C |C |C |C |C |C |
-|1294 |0x050E |Account Login |ALOGIN |C |C |C |C |C |C |
-|1295 |0x050F |Content Control |CONCON | |P |P |P |P |P |
-|1296 |0x0510 |Content App Observer |APPOBSERVER | |C |C |C |C |C |
-|1360 |0x0550 |Zone Management |ZONEMGMT | | | | | |C |
-|1361 |0x0551 |Camera AV Stream Management |AVSM | | | | | |C |
-|1362 |0x0552 |Camera AV Settings User Level Management |AVSUM | | | | | |C |
-|1363 |0x0553 |WebRTC Transport Provider |WEBRTCP | | | | | |C |
-|1364 |0x0554 |WebRTC Transport Requestor |WEBRTCR | | | | | |C |
-|1365 |0x0555 |Push AV Stream Transport |PAVST | | | | | |C |
-|1366 |0x0556 |Chime |CHIME | | | | | |C |
-|1792 |0x0700 |Commodity Tariff |SETRF | | | | | |C |
-|1872 |0x0750 |Ecosystem Information |ECOINFO | | |C |C |C |C |
-|1873 |0x0751 |Commissioner Control |CCTRL | | |C |C |C |C |
-|1874 |0x0752 |Joint Fabric Datastore |JFDS | | |P |P |P |P |
-|1875 |0x0753 |Joint Fabric Administrator |JFPKI | | |P |P |P |P |
-|2049 |0x0801 |TLS Certificate Management |TLSCERT | | | | | |C |
-|2050 |0x0802 |TLS Client Management |TLSCLIENT | | | | | |C |
-|2822 |0x0B06 |Meter Identification |MTRID | | | | | |C |
-|2823 |0x0B07 |Commodity Metering |COMMTR | | | | | |C |
+| ID (Decimal) | ID (hex) | Name | PICS Code | 1.0 | 1.1 | 1.2 | 1.3 | 1.4 | 1.4.1 | 1.4.2-mve-1 | 1.5 | 0.9-winter-2026 |
+| ------------ | -------- | ---------------------------------------------------------- | --------------- | --- | --- | --- | --- | --- | ----- | ----------- | --- | --------------- |
+| 3 | 0x0003 | Identify | I | C | C | C | C | C | C | C | C | C |
+| 4 | 0x0004 | Groups | G | C | C | C | C | C | C | C | C | C |
+| 5 | 0x0005 | Scenes | S | C | C | C | | | | | | |
+| 6 | 0x0006 | On/Off | OO | C | C | C | C | C | C | C | C | C |
+| 8 | 0x0008 | Level Control | LVL | C | C | C | C | C | C | C | C | C |
+| 28 | 0x001C | Pulse Width Modulation | PWM | C | C | C | P | | | | | |
+| 29 | 0x001D | Descriptor | DESC | C | C | C | C | C | C | C | C | C |
+| 30 | 0x001E | Binding | BIND | C | C | C | C | C | C | C | C | C |
+| 31 | 0x001F | Access Control | ACL | C | C | C | C | C | C | C | C | C |
+| 37 | 0x0025 | Actions | ACT | C | C | C | C | C | C | C | C | C |
+| 40 | 0x0028 | Basic Information | BINFO | C | C | C | C | C | C | C | C | C |
+| 41 | 0x0029 | OTA Software Update Provider | OTAP | C | C | C | C | C | C | C | C | C |
+| 42 | 0x002A | OTA Software Update Requestor | OTAR | C | C | C | C | C | C | C | C | C |
+| 43 | 0x002B | Localization Configuration | LCFG | C | C | C | C | C | C | C | C | C |
+| 44 | 0x002C | Time Format Localization | LTIME | C | C | C | C | C | C | C | C | C |
+| 45 | 0x002D | Unit Localization | LUNIT | C | C | C | C | C | C | C | C | C |
+| 46 | 0x002E | Power Source Configuration | PSCFG | C | C | C | C | C | C | C | C | C |
+| 47 | 0x002F | Power Source | PS | C | C | C | C | C | C | C | C | C |
+| 48 | 0x0030 | General Commissioning | CGEN | C | C | C | C | C | C | C | C | C |
+| 49 | 0x0031 | Network Commissioning | CNET | C | C | C | C | C | C | C | C | C |
+| 50 | 0x0032 | Diagnostic Logs | DLOG | C | C | C | C | C | C | C | C | C |
+| 51 | 0x0033 | General Diagnostics | DGGEN | C | C | C | C | C | C | C | C | C |
+| 52 | 0x0034 | Software Diagnostics | DGSW | C | C | C | C | C | C | C | C | C |
+| 53 | 0x0035 | Thread Network Diagnostics | DGTHREAD | C | C | C | C | C | C | C | C | C |
+| 54 | 0x0036 | Wi-Fi Network Diagnostics | DGWIFI | C | C | C | C | C | C | C | C | C |
+| 55 | 0x0037 | Ethernet Network Diagnostics | DGETH | C | C | C | C | C | C | C | C | C |
+| 56 | 0x0038 | Time Synchronization | TIMESYNC | C | C | C | C | C | C | C | C | C |
+| 57 | 0x0039 | Bridged Device Basic Information | BRBINFO | C | C | C | C | C | C | C | C | C |
+| 59 | 0x003B | Switch | SWTCH | C | C | C | C | C | C | C | C | C |
+| 60 | 0x003C | Administrator Commissioning | CADMIN | C | C | C | C | C | C | C | C | C |
+| 62 | 0x003E | Operational Credentials | OPCREDS | C | C | C | C | C | C | C | C | C |
+| 63 | 0x003F | Group Key Management | GRPKEY | C | C | C | C | C | C | C | C | C |
+| 64 | 0x0040 | Fixed Label | FLABEL | C | C | C | C | C | C | C | C | C |
+| 65 | 0x0041 | User Label | ULABEL | C | C | C | C | C | C | C | C | C |
+| 66 | 0x0042 | Proxy Configuration | PXCFG | C | C | C | P | P | P | | | |
+| 67 | 0x0043 | Proxy Discovery | PXDSC | C | C | C | P | P | P | | | |
+| 68 | 0x0044 | Valid Proxies | PXVALID | C | C | C | P | P | P | | | |
+| 69 | 0x0045 | Boolean State | BOOL | C | C | C | C | C | C | C | C | C |
+| 70 | 0x0046 | ICD Management | ICDM | | | C | C | C | C | C | C | C |
+| 72 | 0x0048 | Oven Cavity Operational State | OVENOPSTATE | | | | C | C | C | C | C | C |
+| 73 | 0x0049 | Oven Mode | OTCCM | | | | C | C | C | C | C | C |
+| 74 | 0x004A | Laundry Dryer Controls | DRYERCTRL | | | | C | C | C | C | C | C |
+| 80 | 0x0050 | Mode Select | MOD | C | C | C | C | C | C | C | C | C |
+| 81 | 0x0051 | Laundry Washer Mode | LWM | | | C | C | C | C | C | C | C |
+| 82 | 0x0052 | Refrigerator And Temperature Controlled Cabinet Mode | TCCM | | | C | C | C | C | C | C | C |
+| 83 | 0x0053 | Laundry Washer Controls | WASHERCTRL | | | C | C | C | C | C | C | C |
+| 84 | 0x0054 | RVC Run Mode | RVCRUNM | | | C | C | C | C | C | C | C |
+| 85 | 0x0055 | RVC Clean Mode | RVCCLEANM | | | C | C | C | C | C | C | C |
+| 86 | 0x0056 | Temperature Control | TCTL | | | C | C | C | C | C | C | C |
+| 87 | 0x0057 | Refrigerator Alarm | REFALM | | | C | C | C | C | C | C | C |
+| 89 | 0x0059 | Dishwasher Mode | DISHM | | | C | C | C | C | C | C | C |
+| 91 | 0x005B | Air Quality | AIRQUAL | | | C | C | C | C | C | C | C |
+| 92 | 0x005C | Smoke CO Alarm | SMOKECO | | | C | C | C | C | C | C | C |
+| 93 | 0x005D | Dishwasher Alarm | DISHALM | | | C | C | C | C | C | C | C |
+| 94 | 0x005E | Microwave Oven Mode | MWOM | | | | C | C | C | C | C | C |
+| 95 | 0x005F | Microwave Oven Control | MWOCTRL | | | | C | C | C | C | C | C |
+| 96 | 0x0060 | Operational State | OPSTATE | | | C | C | C | C | C | C | C |
+| 97 | 0x0061 | RVC Operational State | RVCOPSTATE | | | C | C | C | C | C | C | C |
+| 98 | 0x0062 | Scenes Management | S | | | | P | P | P | C | C | C |
+| 113 | 0x0071 | HEPA Filter Monitoring | HEPAFREMON | | | C | C | C | C | C | C | C |
+| 114 | 0x0072 | Activated Carbon Filter Monitoring | ACFREMON | | | C | C | C | C | C | C | C |
+| 121 | 0x0079 | Water Tank Level Monitoring | REPM | | | | | C | C | C | C | C |
+| 128 | 0x0080 | Boolean State Configuration | BOOLCFG | | | | C | C | C | C | C | C |
+| 129 | 0x0081 | Valve Configuration and Control | VALCC | | | | C | C | C | C | C | C |
+| 144 | 0x0090 | Electrical Power Measurement | EPM | | | | C | C | C | C | C | C |
+| 145 | 0x0091 | Electrical Energy Measurement | EEM | | | | C | C | C | C | C | C |
+| 148 | 0x0094 | Water Heater Management | EWATERHTR | | | | | C | C | C | C | C |
+| 149 | 0x0095 | Commodity Price | SEPR | | | | | | | | C | C |
+| 151 | 0x0097 | Messages | MESS | | | | C | C | C | C | C | C |
+| 152 | 0x0098 | Device Energy Management | DEM | | | | P | C | C | C | C | C |
+| 153 | 0x0099 | Energy EVSE | EEVSE | | | | C | C | C | C | C | C |
+| 155 | 0x009B | Energy Preference | EPREF | | | | P | P | P | P | P | P |
+| 156 | 0x009C | Power Topology | PWRTL | | | | C | C | C | C | C | C |
+| 157 | 0x009D | Energy EVSE Mode | EEVSEM | | | | C | C | C | C | C | C |
+| 158 | 0x009E | Water Heater Mode | WHM | | | | | C | C | C | C | C |
+| 159 | 0x009F | Device Energy Management Mode | DEMM | | | | P | C | C | C | C | C |
+| 160 | 0x00A0 | Electrical Grid Conditions | EGC | | | | | | | | C | C |
+| 257 | 0x0101 | Door Lock | DRLK | C | C | C | C | C | C | C | C | C |
+| 258 | 0x0102 | Window Covering | WNCV | C | C | C | C | C | C | C | C | C |
+| 260 | 0x0104 | Closure Control | CLCTRL | | | | | | | | C | C |
+| 261 | 0x0105 | Closure Dimension | CLDIM | | | | | | | | C | C |
+| 336 | 0x0150 | Service Area | SEAR | | | | | C | C | C | C | C |
+| 512 | 0x0200 | Pump Configuration and Control | PCC | C | C | C | C | C | C | C | C | C |
+| 513 | 0x0201 | Thermostat | TSTAT | C | C | C | C | C | C | C | C | C |
+| 514 | 0x0202 | Fan Control | FAN | C | C | C | C | C | C | C | C | C |
+| 516 | 0x0204 | Thermostat User Interface Configuration | TSUIC | C | C | C | C | C | C | C | C | C |
+| 768 | 0x0300 | Color Control | CC | C | C | C | C | C | C | C | C | C |
+| 769 | 0x0301 | Ballast Configuration | BC | C | C | C | P | P | P | | | |
+| 1024 | 0x0400 | Illuminance Measurement | ILL | C | C | C | C | C | C | C | C | C |
+| 1026 | 0x0402 | Temperature Measurement | TMP | C | C | C | C | C | C | C | C | C |
+| 1027 | 0x0403 | Pressure Measurement | PRS | C | C | C | C | C | C | C | C | C |
+| 1028 | 0x0404 | Flow Measurement | FLW | C | C | C | C | C | C | C | C | C |
+| 1029 | 0x0405 | Relative Humidity Measurement | RH | C | C | C | C | C | C | C | C | C |
+| 1030 | 0x0406 | Occupancy Sensing | OCC | C | C | C | C | C | C | C | C | C |
+| 1031 | 0x0407 | Leaf Wetness Measurement | RH | C | C | C | | | | | | |
+| 1032 | 0x0408 | Soil Moisture Measurement | RH | C | C | C | | | | | | |
+| 1036 | 0x040C | Carbon Monoxide Concentration Measurement | CMOCONC | | | C | C | C | C | C | C | C |
+| 1037 | 0x040D | Carbon Dioxide Concentration Measurement | CDOCONC | | | C | C | C | C | C | C | C |
+| 1043 | 0x0413 | Nitrogen Dioxide Concentration Measurement | NDOCONC | | | C | C | C | C | C | C | C |
+| 1045 | 0x0415 | Ozone Concentration Measurement | OZCONC | | | C | C | C | C | C | C | C |
+| 1066 | 0x042A | PM2.5 Concentration Measurement | PMICONC | | | C | C | C | C | C | C | C |
+| 1067 | 0x042B | Formaldehyde Concentration Measurement | FLDCONC | | | C | C | C | C | C | C | C |
+| 1068 | 0x042C | PM1 Concentration Measurement | PMHCONC | | | C | C | C | C | C | C | C |
+| 1069 | 0x042D | PM10 Concentration Measurement | PMKCONC | | | C | C | C | C | C | C | C |
+| 1070 | 0x042E | Total Volatile Organic Compounds Concentration Measurement | TVOCCONC | | | C | C | C | C | C | C | C |
+| 1071 | 0x042F | Radon Concentration Measurement | RNCONC | | | C | C | C | C | C | C | C |
+| 1072 | 0x0430 | Soil Measurement | SOIL | | | | | | | | C | C |
+| 1105 | 0x0451 | Wi-Fi Network Management | WIFINM | | | | | C | C | C | C | C |
+| 1106 | 0x0452 | Thread Border Router Management | TBRM | | | | | C | C | C | C | C |
+| 1107 | 0x0453 | Thread Network Directory | THNETDIR | | | | | C | C | C | C | C |
+| 1283 | 0x0503 | Wake On LAN | WAKEONLAN | C | C | C | C | C | C | C | C | C |
+| 1284 | 0x0504 | Channel | CHANNEL | C | C | C | C | C | C | C | C | C |
+| 1285 | 0x0505 | Target Navigator | TGTNAV | C | C | C | C | C | C | C | C | C |
+| 1286 | 0x0506 | Media Playback | MEDIAPLAYBACK | C | C | C | C | C | C | C | C | C |
+| 1287 | 0x0507 | Media Input | MEDIAINPUT | C | C | C | C | C | C | C | C | C |
+| 1288 | 0x0508 | Low Power | LOWPOWER | C | C | C | C | C | C | C | C | C |
+| 1289 | 0x0509 | Keypad Input | KEYPADINPUT | C | C | C | C | C | C | C | C | C |
+| 1290 | 0x050A | Content Launcher | CONTENTLAUNCHER | C | C | C | C | C | C | C | C | C |
+| 1291 | 0x050B | Audio Output | AUDIOOUTPUT | C | C | C | C | C | C | C | C | C |
+| 1292 | 0x050C | Application Launcher | APPLAUNCHER | C | C | C | C | C | C | C | C | C |
+| 1293 | 0x050D | Application Basic | APBSC | C | C | C | C | C | C | C | C | C |
+| 1294 | 0x050E | Account Login | ALOGIN | C | C | C | C | C | C | C | C | C |
+| 1295 | 0x050F | Content Control | CONCON | | | | P | P | P | P | P | P |
+| 1296 | 0x0510 | Content App Observer | APPOBSERVER | | | | C | C | C | C | C | C |
+| 1360 | 0x0550 | Zone Management | ZONEMGMT | | | | | | | | C | C |
+| 1361 | 0x0551 | Camera AV Stream Management | AVSM | | | | | | | | C | C |
+| 1362 | 0x0552 | Camera AV Settings User Level Management | AVSUM | | | | | | | | C | C |
+| 1363 | 0x0553 | WebRTC Transport Provider | WEBRTCP | | | | | | | | C | C |
+| 1364 | 0x0554 | WebRTC Transport Requestor | WEBRTCR | | | | | | | | C | C |
+| 1365 | 0x0555 | Push AV Stream Transport | PAVST | | | | | | | | C | C |
+| 1366 | 0x0556 | Chime | CHIME | | | | | | | | C | C |
+| 1792 | 0x0700 | Commodity Tariff | SETRF | | | | | | | | C | C |
+| 1872 | 0x0750 | Ecosystem Information | ECOINFO | | | | | C | C | C | C | C |
+| 1873 | 0x0751 | Commissioner Control | CCTRL | | | | | C | C | C | C | C |
+| 1874 | 0x0752 | Joint Fabric Datastore | JFDS | | | | | P | P | P | P | P |
+| 1875 | 0x0753 | Joint Fabric Administrator | JFPKI | | | | | P | P | P | P | P |
+| 2049 | 0x0801 | TLS Certificate Management | TLSCERT | | | | | | | | C | C |
+| 2050 | 0x0802 | TLS Client Management | TLSCLIENT | | | | | | | | C | C |
+| 2822 | 0x0B06 | Meter Identification | MTRID | | | | | | | | C | C |
+| 2823 | 0x0B07 | Commodity Metering | COMMTR | | | | | | | | C | C |
diff --git a/docs/ids_and_codes/spec_device_types.md b/docs/ids_and_codes/spec_device_types.md
index 8e1247d7092..bb20a2a33dd 100644
--- a/docs/ids_and_codes/spec_device_types.md
+++ b/docs/ids_and_codes/spec_device_types.md
@@ -1,105 +1,103 @@
# List of currently defined spec device types
-This file was **AUTOMATICALLY** generated by `python scripts/generate_spec_xml.py`. DO NOT EDIT BY HAND!
+This file was **AUTOMATICALLY** generated by
+`python scripts/generate_spec_xml.py`. DO NOT EDIT BY HAND!
-The following markers are used in this document (matches the ID master list):
-| State | Description |
-|-------|--------------------------------|
-| blank | Not supported in this revision |
-| C | Certifiable |
-| P | Provisional |
+The following markers are used in this document (matches the ID master list): |
+State | Description | |-------|--------------------------------| | blank | Not
+supported in this revision | | C | Certifiable | | P | Provisional |
-| ID (Decimal) | ID (hex) | Name |1.2|1.3|1.4|1.4.1|1.4.2-mve-1|1.5|
-|--------------|----------|------------------------------|---|---|---|-----|-----------|---|
-|10 |0x000A |Door Lock |C |C |C |C |C |C |
-|11 |0x000B |Door Lock Controller |C |C |C |C |C |C |
-|14 |0x000E |Aggregator |C |C |C |C |C |C |
-|15 |0x000F |Generic Switch |C |C |C |C |C |C |
-|17 |0x0011 |Power Source |C |C |C |C |C |C |
-|18 |0x0012 |OTA Requestor |C |C |C |C |C |C |
-|19 |0x0013 |Bridged Node |C |C |C |C |C |C |
-|20 |0x0014 |OTA Provider |C |C |C |C |C |C |
-|21 |0x0015 |Contact Sensor |C |C |C |C |C |C |
-|22 |0x0016 |Root Node |C |C |C |C |C |C |
-|23 |0x0017 |Solar Power | | |C |C |C |C |
-|24 |0x0018 |Battery Storage | | |C |C |C |C |
-|25 |0x0019 |Secondary Network Interface | | |C |C |C |C |
-|34 |0x0022 |Speaker |C |C |C |C |C |C |
-|35 |0x0023 |Casting Video Player |C |C |C |C |C |C |
-|36 |0x0024 |Content App |C |C |C |C |C |C |
-|39 |0x0027 |Mode Select |C |C |C |C |C |C |
-|40 |0x0028 |Basic Video Player |C |C |C |C |C |C |
-|41 |0x0029 |Casting Video Client |C |C |C |C |C |C |
-|42 |0x002A |Video Remote Control |C |C |C |C |C |C |
-|43 |0x002B |Fan |C |C |C |C |C |C |
-|44 |0x002C |Air Quality Sensor |C |C |C |C |C |C |
-|45 |0x002D |Air Purifier |C |C |C |C |C |C |
-|64 |0x0040 |Irrigation System | | | | | |C |
-|65 |0x0041 |Water Freeze Detector | |C |C |C |C |C |
-|66 |0x0042 |Water Valve | |C |C |C |C |C |
-|67 |0x0043 |Water Leak Detector | |C |C |C |C |C |
-|68 |0x0044 |Rain Sensor | |C |C |C |C |C |
-|69 |0x0045 |Soil Sensor | | | | | |C |
-|112 |0x0070 |Refrigerator |C |C |C |C |C |C |
-|113 |0x0071 |Temperature Controlled Cabinet|C |C |C |C |C |C |
-|114 |0x0072 |Room Air Conditioner |C |C |C |C |C |C |
-|115 |0x0073 |Laundry Washer |C |C |C |C |C |C |
-|116 |0x0074 |Robotic Vacuum Cleaner |C |C |C |C |C |C |
-|117 |0x0075 |Dishwasher |C |C |C |C |C |C |
-|118 |0x0076 |Smoke CO Alarm |C |C |C |C |C |C |
-|119 |0x0077 |Cook Surface | |C |C |C |C |C |
-|120 |0x0078 |Cooktop | |C |C |C |C |C |
-|121 |0x0079 |Microwave Oven | |C |C |C |C |C |
-|122 |0x007A |Extractor Hood | |C |C |C |C |C |
-|123 |0x007B |Oven | |C |C |C |C |C |
-|124 |0x007C |Laundry Dryer | |C |C |C |C |C |
-|144 |0x0090 |Network Infrastructure Manager| | |C |C |C |C |
-|145 |0x0091 |Thread Border Router | | |C |C |C |C |
-|256 |0x0100 |On/Off Light |C |C |C |C |C |C |
-|257 |0x0101 |Dimmable Light |C |C |C |C |C |C |
-|259 |0x0103 |On/Off Light Switch |C |C |C |C |C |C |
-|260 |0x0104 |Dimmer Switch |C |C |C |C |C |C |
-|261 |0x0105 |Color Dimmer Switch |C |C |C |C |C |C |
-|262 |0x0106 |Light Sensor |C |C |C |C |C |C |
-|263 |0x0107 |Occupancy Sensor |C |C |C |C |C |C |
-|266 |0x010A |On/Off Plug-in Unit |C |C |C |C |C |C |
-|267 |0x010B |Dimmable Plug-In Unit |C |C |C |C |C |C |
-|268 |0x010C |Color Temperature Light |C |C |C |C |C |C |
-|269 |0x010D |Extended Color Light |C |C |C |C |C |C |
-|271 |0x010F |Mounted On/Off Control | | |C |C |C |C |
-|272 |0x0110 |Mounted Dimmable Load Control | | |C |C |C |C |
-|304 |0x0130 |Joint Fabric Administrator | | |P |P |P |P |
-|320 |0x0140 |Intercom | | | | | |C |
-|321 |0x0141 |Audio Doorbell | | | | | |C |
-|322 |0x0142 |Camera | | | | | |C |
-|323 |0x0143 |Video Doorbell | | | | | |C |
-|324 |0x0144 |Floodlight Camera | | | | | |C |
-|325 |0x0145 |Snapshot Camera | | | | | |C |
-|326 |0x0146 |Chime | | | | | |C |
-|327 |0x0147 |Camera Controller | | | | | |C |
-|328 |0x0148 |Doorbell | | | | | |C |
-|514 |0x0202 |Window Covering |C |C |C |C |C |C |
-|515 |0x0203 |Window Covering Controller |C |C |C |C |C |C |
-|560 |0x0230 |Closure | | | | | |C |
-|561 |0x0231 |Closure Panel | | | | | |C |
-|574 |0x023E |Closure Controller | | | | | |C |
-|768 |0x0300 |Heating/Cooling Unit |C | | | | | |
-|769 |0x0301 |Thermostat |C |C |C |C |C |C |
-|770 |0x0302 |Temperature Sensor |C |C |C |C |C |C |
-|771 |0x0303 |Pump |C |C |C |C |C |C |
-|772 |0x0304 |Pump Controller |C |C |C |C |C |C |
-|773 |0x0305 |Pressure Sensor |C |C |C |C |C |C |
-|774 |0x0306 |Flow Sensor |C |C |C |C |C |C |
-|775 |0x0307 |Humidity Sensor |C |C |C |C |C |C |
-|777 |0x0309 |Heat Pump | | |C |C |C |C |
-|778 |0x030A |Thermostat Controller | | | | |C |C |
-|1292 |0x050C |Energy EVSE | |C |C |C |C |C |
-|1293 |0x050D |Device Energy Management | |C |C |C |C |C |
-|1295 |0x050F |Water Heater | | |C |C |C |C |
-|1296 |0x0510 |Electrical Sensor | |C |C |C |C |C |
-|1297 |0x0511 |Electrical Utility Meter | | | | | |C |
-|1298 |0x0512 |Meter Reference Point | | | | | |C |
-|1299 |0x0513 |Electrical Energy Tariff | | | | | |C |
-|1300 |0x0514 |Electrical Meter | | | | | |C |
-|2112 |0x0840 |Control Bridge |C |C |C |C |C |C |
-|2128 |0x0850 |On/Off Sensor |C |C |C |C |C |C |
+| ID (Decimal) | ID (hex) | Name | 1.0 | 1.1 | 1.2 | 1.3 | 1.4 | 1.4.1 | 1.4.2-mve-1 | 1.5 | 0.9-winter-2026 |
+| ------------ | -------- | ------------------------------ | --- | --- | --- | --- | --- | ----- | ----------- | --- | --------------- |
+| 10 | 0x000A | Door Lock | C | C | C | C | C | C | C | C | C |
+| 11 | 0x000B | Door Lock Controller | C | C | C | C | C | C | C | C | C |
+| 14 | 0x000E | Aggregator | C | C | C | C | C | C | C | C | C |
+| 15 | 0x000F | Generic Switch | C | C | C | C | C | C | C | C | C |
+| 17 | 0x0011 | Power Source | C | C | C | C | C | C | C | C | C |
+| 18 | 0x0012 | OTA Requestor | C | C | C | C | C | C | C | C | C |
+| 19 | 0x0013 | Bridged Node | C | C | C | C | C | C | C | C | C |
+| 20 | 0x0014 | OTA Provider | C | C | C | C | C | C | C | C | C |
+| 21 | 0x0015 | Contact Sensor | C | C | C | C | C | C | C | C | C |
+| 22 | 0x0016 | Root Node | C | C | C | C | C | C | C | C | C |
+| 23 | 0x0017 | Solar Power | | | | | C | C | C | C | C |
+| 24 | 0x0018 | Battery Storage | | | | | C | C | C | C | C |
+| 25 | 0x0019 | Secondary Network Interface | | | | | C | C | C | C | C |
+| 34 | 0x0022 | Speaker | C | C | C | C | C | C | C | C | C |
+| 35 | 0x0023 | Casting Video Player | C | C | C | C | C | C | C | C | C |
+| 36 | 0x0024 | Content App | C | C | C | C | C | C | C | C | C |
+| 39 | 0x0027 | Mode Select | C | C | C | C | C | C | C | C | C |
+| 40 | 0x0028 | Basic Video Player | C | C | C | C | C | C | C | C | C |
+| 41 | 0x0029 | Casting Video Client | C | C | C | C | C | C | C | C | C |
+| 42 | 0x002A | Video Remote Control | C | C | C | C | C | C | C | C | C |
+| 43 | 0x002B | Fan | C | C | C | C | C | C | C | C | C |
+| 44 | 0x002C | Air Quality Sensor | | | C | C | C | C | C | C | C |
+| 45 | 0x002D | Air Purifier | | | C | C | C | C | C | C | C |
+| 64 | 0x0040 | Irrigation System | | | | | | | | C | C |
+| 65 | 0x0041 | Water Freeze Detector | | | | C | C | C | C | C | C |
+| 66 | 0x0042 | Water Valve | | | | C | C | C | C | C | C |
+| 67 | 0x0043 | Water Leak Detector | | | | C | C | C | C | C | C |
+| 68 | 0x0044 | Rain Sensor | | | | C | C | C | C | C | C |
+| 69 | 0x0045 | Soil Sensor | | | | | | | | C | C |
+| 112 | 0x0070 | Refrigerator | | | C | C | C | C | C | C | C |
+| 113 | 0x0071 | Temperature Controlled Cabinet | | | C | C | C | C | C | C | C |
+| 114 | 0x0072 | Room Air Conditioner | | | C | C | C | C | C | C | C |
+| 115 | 0x0073 | Laundry Washer | | | C | C | C | C | C | C | C |
+| 116 | 0x0074 | Robotic Vacuum Cleaner | | | C | C | C | C | C | C | C |
+| 117 | 0x0075 | Dishwasher | | | C | C | C | C | C | C | C |
+| 118 | 0x0076 | Smoke CO Alarm | | | C | C | C | C | C | C | C |
+| 119 | 0x0077 | Cook Surface | | | | C | C | C | C | C | C |
+| 120 | 0x0078 | Cooktop | | | | C | C | C | C | C | C |
+| 121 | 0x0079 | Microwave Oven | | | | C | C | C | C | C | C |
+| 122 | 0x007A | Extractor Hood | | | | C | C | C | C | C | C |
+| 123 | 0x007B | Oven | | | | C | C | C | C | C | C |
+| 124 | 0x007C | Laundry Dryer | | | | C | C | C | C | C | C |
+| 144 | 0x0090 | Network Infrastructure Manager | | | | | C | C | C | C | C |
+| 145 | 0x0091 | Thread Border Router | | | | | C | C | C | C | C |
+| 256 | 0x0100 | On/Off Light | C | C | C | C | C | C | C | C | C |
+| 257 | 0x0101 | Dimmable Light | C | C | C | C | C | C | C | C | C |
+| 259 | 0x0103 | On/Off Light Switch | C | C | C | C | C | C | C | C | C |
+| 260 | 0x0104 | Dimmer Switch | C | C | C | C | C | C | C | C | C |
+| 261 | 0x0105 | Color Dimmer Switch | C | C | C | C | C | C | C | C | C |
+| 262 | 0x0106 | Light Sensor | C | C | C | C | C | C | C | C | C |
+| 263 | 0x0107 | Occupancy Sensor | C | C | C | C | C | C | C | C | C |
+| 266 | 0x010A | On/Off Plug-in Unit | C | C | C | C | C | C | C | C | C |
+| 267 | 0x010B | Dimmable Plug-In Unit | C | C | C | C | C | C | C | C | C |
+| 268 | 0x010C | Color Temperature Light | C | C | C | C | C | C | C | C | C |
+| 269 | 0x010D | Extended Color Light | C | C | C | C | C | C | C | C | C |
+| 271 | 0x010F | Mounted On/Off Control | | | | | C | C | C | C | C |
+| 272 | 0x0110 | Mounted Dimmable Load Control | | | | | C | C | C | C | C |
+| 304 | 0x0130 | Joint Fabric Administrator | | | | | P | P | P | P | P |
+| 320 | 0x0140 | Intercom | | | | | | | | C | C |
+| 321 | 0x0141 | Audio Doorbell | | | | | | | | C | C |
+| 322 | 0x0142 | Camera | | | | | | | | C | C |
+| 323 | 0x0143 | Video Doorbell | | | | | | | | C | C |
+| 324 | 0x0144 | Floodlight Camera | | | | | | | | C | C |
+| 325 | 0x0145 | Snapshot Camera | | | | | | | | C | C |
+| 326 | 0x0146 | Chime | | | | | | | | C | C |
+| 327 | 0x0147 | Camera Controller | | | | | | | | C | C |
+| 328 | 0x0148 | Doorbell | | | | | | | | C | C |
+| 514 | 0x0202 | Window Covering | C | C | C | C | C | C | C | C | C |
+| 515 | 0x0203 | Window Covering Controller | C | C | C | C | C | C | C | C | C |
+| 560 | 0x0230 | Closure | | | | | | | | C | C |
+| 561 | 0x0231 | Closure Panel | | | | | | | | C | C |
+| 574 | 0x023E | Closure Controller | | | | | | | | C | C |
+| 768 | 0x0300 | Heating/Cooling Unit | C | C | C | | | | | | |
+| 769 | 0x0301 | Thermostat | C | C | C | C | C | C | C | C | C |
+| 770 | 0x0302 | Temperature Sensor | C | C | C | C | C | C | C | C | C |
+| 771 | 0x0303 | Pump | C | C | C | C | C | C | C | C | C |
+| 772 | 0x0304 | Pump Controller | C | C | C | C | C | C | C | C | C |
+| 773 | 0x0305 | Pressure Sensor | C | C | C | C | C | C | C | C | C |
+| 774 | 0x0306 | Flow Sensor | C | C | C | C | C | C | C | C | C |
+| 775 | 0x0307 | Humidity Sensor | C | C | C | C | C | C | C | C | C |
+| 777 | 0x0309 | Heat Pump | | | | | C | C | C | C | C |
+| 778 | 0x030A | Thermostat Controller | | | | | | | C | C | C |
+| 1292 | 0x050C | Energy EVSE | | | | C | C | C | C | C | C |
+| 1293 | 0x050D | Device Energy Management | | | | C | C | C | C | C | C |
+| 1295 | 0x050F | Water Heater | | | | | C | C | C | C | C |
+| 1296 | 0x0510 | Electrical Sensor | | | | C | C | C | C | C | C |
+| 1297 | 0x0511 | Electrical Utility Meter | | | | | | | | C | C |
+| 1298 | 0x0512 | Meter Reference Point | | | | | | | | C | C |
+| 1299 | 0x0513 | Electrical Energy Tariff | | | | | | | | C | C |
+| 1300 | 0x0514 | Electrical Meter | | | | | | | | C | C |
+| 2112 | 0x0840 | Control Bridge | C | C | C | C | C | C | C | C | C |
+| 2128 | 0x0850 | On/Off Sensor | C | C | C | C | C | C | C | C | C |
diff --git a/docs/platforms/nxp/nxp_RTs_ota_software_update.md b/docs/platforms/nxp/nxp_RTs_ota_software_update.md
index 81904232aa1..b28164c2566 100644
--- a/docs/platforms/nxp/nxp_RTs_ota_software_update.md
+++ b/docs/platforms/nxp/nxp_RTs_ota_software_update.md
@@ -98,7 +98,7 @@ user@ubuntu: export ARMGCC_DIR= # with ARMGCC_DIR referencing the compiler path
`west build` command :
```
-user@ubuntu: west build -d mcuboot_build -b examples/ota_examples/mcuboot_opensource
+user@ubuntu: west build -d mcuboot_build -b examples/ota_examples/mcuboot_opensource -DCONF_FILE=/connectedhomeip/third_party/nxp/nxp_matter_support/cmake/rt//bootloader.conf
```
> Note : For RT1170 platform, `-Dcore_id=cm7` argument should be added to the
@@ -205,6 +205,13 @@ partitioning with mcuboot, please refer to the dedicated `readme.txt` located in
> Auto-generated signed application image can be found under the path
> `/app_SIGNED.bin`.
+##### Signature Algorithm Compatibility
+
+Starting from MCUBoot v2.2, the default signature algorithm is EC256. Matter
+images are now signed using ECDSA by default. To maintain compatibility with
+older MCUBoot versions (prior to 2.2), which use RSA by default, we also provide
+an RSA-signed image named `/app_SIGNED_RSA.bin`.
+
After flashing the bootloader, the application can be programmed to the board.
The image must have the following format :
@@ -235,13 +242,47 @@ To sign the image and wrap the raw binary of the application with the header and
trailer, "`imgtool`" is provided in the SDK and can be found in
"`/third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/scripts/`".
-The following commands can be run (make sure to replace the /path/to/file/binary
-with the adequate files):
+First, change to the scripts directory:
-```sh
-user@ubuntu: cd ~/Desktop//third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/scripts/
+```bash
+cd ~/Desktop//third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/scripts/
+```
+
+Then, run one of the following signing commands (make sure to replace the
+/path/to/file/binary with the adequate files):
-user@ubuntu: python3 imgtool.py sign --key ~/Desktop//third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-rsa2048-priv.pem --align 4 --header-size 0x1000 --pad-header --pad --confirm --slot-size 0x440000 --max-sectors 1088 --version "1.0" ~/Desktop/connectedhomeip/examples/all-clusters-app/nxp/rt/<"rt_board">/out/debug/chip-<"rt_board">-all-cluster-example.bin ~/Desktop/connectedhomeip/examples/all-clusters-app/nxp/rt/<"rt_board">/out/debug/chip-<"rt_board">-all-cluster-example_SIGNED.bin
+- Signing with ECDSA (for MCUBoot version >= 2.2)
+
+```bash
+python3 imgtool.py sign \
+ --key ~/Desktop//third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-ecdsa-p256-priv.pem \
+ --align 4 \
+ --header-size 0x1000 \
+ --pad-header \
+ --pad \
+ --confirm \
+ --slot-size 0x440000 \
+ --max-sectors 1088 \
+ --version "1.0" \
+ ~/Desktop/connectedhomeip/examples/all-clusters-app/nxp/rt/<"rt_board">/out/debug/chip-<"rt_board">-all-cluster-example.bin \
+ ~/Desktop/connectedhomeip/examples/all-clusters-app/nxp/rt/<"rt_board">/out/debug/chip-<"rt_board">-all-cluster-example_SIGNED.bin
+```
+
+- Signing with RSA (for MCUBoot version < 2.2)
+
+```bash
+python3 imgtool.py sign \
+ --key ~/Desktop//third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-rsa2048-priv.pem \
+ --align 4 \
+ --header-size 0x1000 \
+ --pad-header \
+ --pad \
+ --confirm \
+ --slot-size 0x440000 \
+ --max-sectors 1088 \
+ --version "1.0" \
+ ~/Desktop/connectedhomeip/examples/all-clusters-app/nxp/rt/<"rt_board">/out/debug/chip-<"rt_board">-all-cluster-example.bin \
+ ~/Desktop/connectedhomeip/examples/all-clusters-app/nxp/rt/<"rt_board">/out/debug/chip-<"rt_board">-all-cluster-example_SIGNED.bin
```
Notes :
@@ -253,16 +294,16 @@ Notes :
adjusted accordingly.
- In this example, the image is signed with the private key provided by the
SDK as an example
- (`/third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-rsa2048-priv.pem`),
+ (`/third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-ecdsa-p256-priv.pem`),
MCUBoot is built with its corresponding public key which would be used to
verify the integrity of the image. It is possible to generate a new pair of
keys using the following commands. This procedure should be done prior to
building the mcuboot application.
-- To generate the private key :
+- To generate the private key with ECDSA :
```
-user@ubuntu: python3 imgtool.py keygen -k priv_key.pem -t rsa-2048
+user@ubuntu: python3 imgtool.py keygen -k priv_key.pem -t ecdsa-p256
```
- To extract the public key :
@@ -272,11 +313,16 @@ user@ubuntu: python3 imgtool.py getpub -k priv_key.pem
```
- The extracted public key can then be copied to the
- `/third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-rsa2048-pub.c`,
- given as a value to the rsa_pub_key[] array.
+ `/third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-ecdsa-p256-pub.c`,
+ given as a value to the ecdsa_pub_key[] array.
The resulting output is the signed binary of the application version "1.0".
+> Note : To generate RSA keys, make sure to replace the type `ecdsa-p256` with
+> `rsa-2048`, and replace `rsa_pub_key[]` in the
+> `/third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/mcuboot_opensource/boot/nxp_mcux_sdk/keys/sign-rsa2048-pub.c`
+> file.
+
#### Flashing the signed application image
JLink can be used to flash the application using the command :
diff --git a/docs/platforms/nxp/nxp_examples_freertos_platforms.md b/docs/platforms/nxp/nxp_examples_freertos_platforms.md
index a4bd06fc8ed..8ccec3bea61 100644
--- a/docs/platforms/nxp/nxp_examples_freertos_platforms.md
+++ b/docs/platforms/nxp/nxp_examples_freertos_platforms.md
@@ -6,6 +6,8 @@
- [Testing the example](#testing-the-example)
- [Matter Shell](#testing-the-example-application-with-matter-cli-enabled)
+
+
## Introduction
This guide provides step-by-step instructions for working with CHIP applications
@@ -18,6 +20,8 @@ The NXP examples are based on
and provide a prototype application that demonstrates device commissioning and
different cluster control.
+
+
### Supported platforms
Matter example applications are supported on the following NXP platforms :
@@ -27,6 +31,10 @@ Matter example applications are supported on the following NXP platforms :
| RW61x | [Matter NXP Guide for RW61x platform](./nxp_rw61x_guide.md) |
| RT1170 | [Matter NXP Guide for RT1170 platform](./nxp_rt1170_guide.md) |
| RT1060 | [Matter NXP Guide for RT1060 platform](./nxp_rt1060_guide.md) |
+| MCXW71 | [Matter NXP Guide for MCXW71 platform](./nxp_mcxw71_guide.md) |
+| MCXW72 | [Matter NXP Guide for MCXW72 platform](./nxp_mcxw72_guide.md) |
+
+
## Building
@@ -60,7 +68,7 @@ user@ubuntu:~/Desktop/git/connectedhomeip$ scripts/checkout_submodules.py --shal
- Step 2 : Activate Matter environment :
-If you are setting the Matter environment for the first time, or your local
+If you are setting up the Matter environment for the first time, or your local
environment is out of date, run the following script :
```
@@ -97,8 +105,8 @@ export the path as follows :
user@ubuntu:~/Desktop/git/connectedhomeip$ export ARMGCC_DIR=/path/to/connectedhomeip/.environment/cipd/packages/arm
```
-> Note : Steps 1 to 3 can be skipped if your environment is up to date. Steps 4
-> and 5 should be repeated in each new terminal session to ensure the
+> Note : Steps 1 and 3 can be skipped if your environment is up to date. Steps
+> 2, 4 and 5 should be repeated in each new terminal session to ensure the
> environment is correctly configured.
### Build the application
@@ -114,6 +122,8 @@ CHIP NXP examples support building with two different build systems :
> Please refer to the platform [dedicated readme](#supported-platforms) to check
> which build system(s) is supported by the platform.
+
+
#### CMake build system
The example application can be built with `west build` command, which can be
@@ -153,29 +163,39 @@ Additional arguments that can be passed in the `west build` command line :
> configuration supported, please refer to the
> [dedicated readme](#supported-platforms) for the platform you are targeting.
+
+
##### Available project configuration files and platform compatibility
-| Configuration File | Description | Supported platforms |
-| ------------------------------------------ | ------------------------------------------------------ | --------------------- |
-| `prj_wifi.conf` | Wi-Fi | RW61x, RT1060, RT1170 |
-| `prj_wifi_fdata.conf` | Wi-Fi, factory data | RW61x, RT1060, RT1170 |
-| `prj_wifi_ota_fdata.conf` | Wi-Fi, factory data, OTA | RW61x, RT1060, RT1170 |
-| `prj_wifi_ota_fdata_v2.conf` | Wi-Fi, factory data, OTA, with SW v2 | RW61x, RT1060, RT1170 |
-| `prj_wifi_ota.conf` | Wi-Fi, OTA | RW61x, RT1060, RT1170 |
-| `prj_wifi_ota_v2.conf` | Wi-Fi, OTA, SW v2 | RW61x, RT1060, RT1170 |
-| `prj_wifi_onnetwork.conf` | Wi-Fi onnetwork without BLE | RW61x, RT1060, RT1170 |
-| `prj_thread_ftd.conf` | Thread FTD | RW61x, RT1060, RT1170 |
-| `prj_thread_ftd_ota.conf` | Thread FTD, OTA | RW61x, RT1060, RT1170 |
-| `prj_thread_ftd_ota_fdata.conf` | Thread FTD, OTA, factory data | RW61x, RT1060, RT1170 |
-| `prj_thread_ftd_wifi_br_ota.conf` | Wi-Fi + Thread Border Router, OTA | RW61x, RT1060, RT1170 |
-| `prj_thread_ftd_wifi_br_ota_fdata.conf` | Wi-Fi + Thread Border Router, OTA, factory data | RW61x, RT1060, RT1170 |
-| `prj_thread_ftd_wifi_br_ota_fdata_v2.conf` | Wi-Fi + Thread Border Router, OTA SW v2 , factory data | RW61x, RT1060, RT1170 |
-| `prj_thread_ftd_wifi_br_ota_v2.conf` | Wi-Fi + Thread Border Router, OTA with SW v2 | RW61x, RT1060, RT1170 |
-| `prj_eth.conf` | Ethernet | RW61x `frdm` |
-| `prj_eth_fdata.conf` | Ethernet, factory data | RW61x `frdm` |
-| `prj_eth_ota.conf` | Ethernet, OTA | RW61x `frdm` |
-| `prj_eth_ota_fdata.conf` | Ethernet, factory data, OTA | RW61x `frdm` |
-| `prj_eth_ota_fdata_v2.conf` | Ethernet, factory data, OTA, SW v2 | RW61x `frdm` |
+| Configuration File | Description | Supported platforms |
+| ------------------------------------------ | ------------------------------------------------------ | ------------------------------------- |
+| `prj_wifi.conf` | Wi-Fi | RW61x, RT1060, RT1170 |
+| `prj_wifi_fdata.conf` | Wi-Fi, factory data | RW61x, RT1060, RT1170 |
+| `prj_wifi_ota_fdata.conf` | Wi-Fi, factory data, OTA | RW61x, RT1060, RT1170 |
+| `prj_wifi_ota_fdata_v2.conf` | Wi-Fi, factory data, OTA, with SW v2 | RW61x, RT1060, RT1170 |
+| `prj_wifi_ota.conf` | Wi-Fi, OTA | RW61x, RT1060, RT1170 |
+| `prj_wifi_ota_v2.conf` | Wi-Fi, OTA, SW v2 | RW61x, RT1060, RT1170 |
+| `prj_wifi_onnetwork.conf` | Wi-Fi onnetwork without BLE | RW61x, RT1060, RT1170 |
+| `prj_thread_ftd.conf` | Thread FTD | RW61x, RT1060, RT1170, MCXW71, MCXW72 |
+| `prj_thread_ftd_fdata.conf` | Thread FTD, factory data | RW61x, RT1060, RT1170, MCXW71, MCXW72 |
+| `prj_thread_ftd_ota.conf` | Thread FTD, OTA | RW61x, RT1060, RT1170, MCXW71, MCXW72 |
+| `prj_thread_ftd_ota_fdata.conf` | Thread FTD, OTA, factory data | RW61x, RT1060, RT1170, MCXW71, MCXW72 |
+| `prj_thread_ftd_wifi_br_ota.conf` | Wi-Fi + Thread Border Router, OTA | RW61x, RT1060, RT1170 |
+| `prj_thread_ftd_wifi_br_ota_fdata.conf` | Wi-Fi + Thread Border Router, OTA, factory data | RW61x, RT1060, RT1170 |
+| `prj_thread_ftd_wifi_br_ota_fdata_v2.conf` | Wi-Fi + Thread Border Router, OTA SW v2 , factory data | RW61x, RT1060, RT1170 |
+| `prj_thread_ftd_wifi_br_ota_v2.conf` | Wi-Fi + Thread Border Router, OTA with SW v2 | RW61x, RT1060, RT1170 |
+| `prj_thread_mtd.conf` | Thread MTD | MCXW71, MCXW72 |
+| `prj_thread_mtd_fdata.conf` | Thread MTD, factory data | MCXW71, MCXW72 |
+| `prj_thread_mtd_low_power.conf` | Thread MTD operating in low power mode | MCXW71, MCXW72 |
+| `prj_thread_mtd_low_power_lit.conf` | Thread MTD, low power ICD LIT | MCXW71, MCXW72 |
+| `prj_thread_mtd_fdata_low_power.conf` | Thread MTD, factory data, low power | MCXW71, MCXW72 |
+| `prj_thread_mtd_ota_low_power.conf` | Thread MTD, OTA, low power | MCXW71, MCXW72 |
+| `prj_thread_mtd_ota_fdata.conf` | Thread MTD, OTA, factory data | MCXW71, MCXW72 |
+| `prj_eth.conf` | Ethernet | RW61x `frdm` |
+| `prj_eth_fdata.conf` | Ethernet, factory data | RW61x `frdm` |
+| `prj_eth_ota.conf` | Ethernet, OTA | RW61x `frdm` |
+| `prj_eth_ota_fdata.conf` | Ethernet, factory data, OTA | RW61x `frdm` |
+| `prj_eth_ota_fdata_v2.conf` | Ethernet, factory data, OTA, SW v2 | RW61x `frdm` |
The build output can be found under the `build_dir` specified in the
`west build` command, the binary can be found under the following name :
@@ -244,12 +264,16 @@ _gn gen_ command when building an application.
> For more information about platform-specific GN options, please refer to the
> platform [dedicated readme](#supported-platforms).
+
+
## Flashing and debugging
For flashing and debugging the example application, follow detailed instructions
-form the [dedicated readme](#supported-platforms) to the platform you are
+from the [dedicated readme](#supported-platforms) to the platform you are
targeting.
+
+
## Testing the example
CHIP Tool is a Matter controller which can be used to commission a Matter device
@@ -314,7 +338,7 @@ The Matter CLI can be enabled with the NXP CHIP application.
For more information about the Matter CLI default commands, you can refer to the
dedicated [ReadMe](../../../examples/shell/README.md).
-The NXP application supports additional commands :
+The NXP applications support additional commands :
```
> help
diff --git a/docs/platforms/nxp/nxp_manufacturing_flow.md b/docs/platforms/nxp/nxp_manufacturing_flow.md
index 03ea47712d2..8ed295fe412 100644
--- a/docs/platforms/nxp/nxp_manufacturing_flow.md
+++ b/docs/platforms/nxp/nxp_manufacturing_flow.md
@@ -140,12 +140,13 @@ Here is the interpretation of the **optional** parameters:
## 3. Write provisioning data
-| platform | tool | command | details |
-| -------- | --------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------- |
-| `mcxw71` | `JLink` | `loadfile factory_data.bin 0xFE080` | NA |
-| `rw61x` | `JLink` | `loadfile factory_data.bin 0xBFFF000` | Here, `0xBFFF000` is the value of symbol `__FACTORY_DATA_START` from the corresponding `.map` file |
-| `rt1060` | `MCUXpresso Flash Tool GUI` | NA | The address is given by the `__FACTORY_DATA_START` symbol in the `.map` file |
-| `rt1170` | `MCUXpresso Flash Tool GUI` | NA | The address is given by the `__FACTORY_DATA_START` symbol in the `.map` file |
+| platform | tool | command | details |
+| -------- | --------------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------- |
+| `mcxw71` | `JLink` | `loadfile factory_data.bin 0xFE080` | NA |
+| `mcxw72` | `blhost` | `write-memory 0x2002680 factory_data.bin` | Factory data is written in `IFR0`, sector 1 at a predefined offset. The address is expanded here. |
+| `rw61x` | `JLink` | `loadfile factory_data.bin 0xBFFF000` | Here, `0xBFFF000` is the value of symbol `__FACTORY_DATA_START` from the corresponding `.map` file |
+| `rt1060` | `MCUXpresso Flash Tool GUI` | NA | The address is given by the `__FACTORY_DATA_START` symbol in the `.map` file |
+| `rt1170` | `MCUXpresso Flash Tool GUI` | NA | The address is given by the `__FACTORY_DATA_START` symbol in the `.map` file |
## 4. Build app and usage
diff --git a/docs/platforms/nxp/nxp_mcxw71_guide.md b/docs/platforms/nxp/nxp_mcxw71_guide.md
new file mode 100644
index 00000000000..094af7cf00c
--- /dev/null
+++ b/docs/platforms/nxp/nxp_mcxw71_guide.md
@@ -0,0 +1,201 @@
+# Matter NXP MCXW71 Applications Guide
+
+- [Introduction](#introduction)
+- [Building](#building)
+- [Manufacturing Data](#manufacturing-data)
+- [Flashing and debugging](#flashing-and-debugging)
+- [Testing the example](#testing-the-example)
+- [OTA Software Update](#ota-software-update)
+
+
+
+
+
+## Introduction
+
+The Matter MCXW71 example applications provide a working demonstration of the
+FRDM-MCXW71 board integration, built using the Project CHIP codebase and the NXP
+MCUX SDK.
+
+### Supported configurations
+
+The examples support:
+
+- Matter over Openthread
+
+### Supported build systems
+
+MCXW71 platform supports only one build system to generate the application :
+
+- `CMake`
+
+
+
+## Building
+
+Make sure to follow shared build instructions from
+[CHIP NXP Examples Guide for FreeRTOS platforms](./nxp_examples_freertos_platforms.md)
+to set-up your environment.
+
+> In the following steps, the "lighting-app" is used as an example.
+
+The examples support configuration and build using the CMake build system. You
+can find more information in
+[CMake Build System](./nxp_examples_freertos_platforms.md#cmake-build-system)
+section which explains how to further configure your application build.
+
+In the `west build` command, the `board` option should be replaced with
+`frdmmcxw71`. The build option
+`-DCONFIG_MCUX_COMPONENT_middleware.freertos-kernel.config=n` must be used in
+the build command line for the MCXW71 platform.
+
+Example of build command to build the Lighting app with Matter-over-Thread (FTD
+device type) configuration on MCXW71 platform :
+
+```
+user@ubuntu:~/Desktop/git/connectedhomeip$ west build -d bin/lighting-app/ftd -b frdmmcxw71 examples/lighting-app/nxp -DCONF_FILE_NAME=prj_thread_ftd.conf -DCONFIG_MCUX_COMPONENT_middleware.freertos-kernel.config=n
+```
+
+Note that the MCXW71 example supports various configurations that can be
+provided to the `CONF_FILE_NAME` variable, you can refer to the
+[table of available project configuration files and platform compatibility](./nxp_examples_freertos_platforms.md#build-config-files)
+to check all the supported configurations.
+
+
+
+## Manufacturing data
+
+See
+[Guide for writing manufacturing data on NXP devices](./nxp_manufacturing_flow.md).
+
+
+
+## Flashing and debugging
+
+### Flashing the NBU
+
+Normally the `NBU` image should be written/updated only when migrating to a new
+NXP SDK or to a new Matter release altogether. The procedure below can be used
+to upload/refresh the board's NBU firmware.
+
+1. Install the Bootloader Host Application (`blhost`) from the
+ [MCU Bootloader for NXP Microcontrollers downloads page](https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcu-bootloader-for-nxp-microcontrollers:MCUBOOT).
+
+2. The NBU image is available in your Matter source code tree in
+
+`third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/wireless/ieee-802.15.4/bin/k32w1_mcxw71/k32w1_mcxw71_nbu_ble_15_4_dyn_matter.sb3`
+
+3. Initialize the board in `ISP` (In-System Programming) mode, which allows the
+ SoC to accept commands to erase/write/update internal flash memories via the
+ serial port. In order to do that disconnect the board from your PC and hold
+ down the SW3 button while reconnecting it back. When you release the SW3
+ button the board should be operating in ISP mode.
+
+4. Erase the host and NBU flash memories using the `blhost` tool
+
+ ```
+ blhost -p flash-erase-all
+ ```
+
+5. Use the same `blhost` tool to write the NBU image on the board:
+
+ ```
+ blhost -p -- receive-sb-file k32w1_mcxw71_nbu_ble_15_4_dyn_matter.sb3
+ ```
+
+6. Return the board to normal operating mode by disconnecting and then
+ reconnecting it back to your PC.
+
+### Flashing the example application
+
+We recommend using `JLink Commander` from Segger to flash the example
+application. It can be downloaded and installed from
+https://www.segger.com/downloads/jlink. Once installed, JLink Commander can be
+run to flash the application using the following steps :
+
+```
+$ JLink
+```
+
+```
+J-Link > connect
+Device> ? # you will be presented with a dialog -> select `MCXW716`
+Please specify target interface:
+J) JTAG (Default)
+S) SWD
+T) cJTAG
+TIF> S
+Specify target interface speed [kHz]. : 4000 kHz
+Speed> #
+```
+
+Program the application executable :
+
+```
+J-Link > loadfile (.elf format)
+```
+
+
+
+## Testing the example
+
+To test the example, please make sure to check the `Testing the example` section
+from the common readme
+[CHIP NXP Examples Guide for FreeRTOS platforms](./nxp_examples_freertos_platforms.md#testing-the-example).
+
+### UART Ports
+
+Testing the example with the CLI enabled will require connecting to both UART0
+and UART1 serial ports. For applications where CLI is _not_ available,
+connecting to the default UART1 is enough.
+
+| Interface | Role |
+| --------------- | --------------------------------------------------------------------- |
+| UART0 | Used for logs only when `matter-cli` is enabled |
+| UART1 (default) | Used either as `matter-cli` or for logs when `matter-cli` is disabled |
+
+You need a `USB-UART` bridge to make use of the UART0 interface. The pin
+configuration is the following:
+
+- `J5` `pin 3` - UART0 RX
+- `J5` `pin 4` - UART0 TX
+- `J5` `pin 8` - GND
+
+### Device UI
+
+The device state feedback is provided through the on-board LEDs:
+
+| Widget | Effect | Description |
+| ------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| LED2 | short flash on (50ms on/950ms off) | The device is in an unprovisioned (unpaired) state and is waiting for a commissioner to connect. |
+| LED2 | rapid even flashing (100ms period) | The device is in an unprovisioned state and a commissioner is connected via BLE. |
+| LED2 | short flash off (950ms on/50ms off) | The device is fully provisioned, but does not yet have full network (Thread) or service connectivity. |
+| LED2 | solid on | The device is fully provisioned and has full network and service connectivity. |
+| RGB LED | on | The `StateValue` attribute of the `BooleanState` cluster is `true` (simulating detection). |
+| RGB LED | off | The `StateValue` attribute of the `BooleanState` cluster is `false` (simulating no detection). |
+
+NOTE: `LED2` will be disabled when OTA is used. On `FRDM-MCXW71` board, `PTB0`
+is wired to both `LED2` and `CS` (Chip Select) of the External Flash Memory.
+Since the OTA image is stored in external memory, `LED2` operations will affect
+OTA operation by corrupting packages and OTA will not work.
+
+The user can control the device using the on-board buttons. The actions are
+summarized below:
+
+| Button | Action | State | Output |
+| ------ | ------------ | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
+| SW2 | short press | not commissioned | Enable/disable BLE advertising |
+| SW2 | short press | commissioned + device is LIT | Enable Active Mode |
+| SW2 | long press | any | Initiate a factory reset (can be cancelled by pressing the button again within the factory reset timeout limit - 6 seconds by default) |
+| SW2 | double press | commissioned + device is LIT + supports DSLS | Enable / Disable SIT Mode |
+| SW4 | short press | any | Toggle attribute `StateValue` value |
+| SW4 | long press | any | Clean soft reset of the device (takes into account proper Matter shutdown procedure) |
+
+
+
+## OTA Software Update
+
+Over-The-Air software updates are supported with the MCXW71 examples. The
+process to follow in order to perform a software update is described in the
+dedicated guide
+['Matter Over-The-Air Software Update with NXP MCXW example applications'](./nxp_mcxw_ota_guide.md).
diff --git a/docs/platforms/nxp/nxp_mcxw72_guide.md b/docs/platforms/nxp/nxp_mcxw72_guide.md
new file mode 100644
index 00000000000..ebac798e98f
--- /dev/null
+++ b/docs/platforms/nxp/nxp_mcxw72_guide.md
@@ -0,0 +1,218 @@
+# Matter NXP MCXW72 Applications Guide
+
+- [Introduction](#introduction)
+- [Building](#building)
+- [Manufacturing Data](#manufacturing-data)
+- [Flashing and debugging](#flashing-and-debugging)
+- [Testing the example](#testing-the-example)
+- [OTA Software Update](#ota-software-update)
+
+
+
+
+
+## Introduction
+
+The Matter MCXW72 example applications provide a working demonstration of the
+MCXW72 board integration, built using the Project CHIP codebase and the NXP MCUX
+SDK.
+
+### Supported configurations
+
+The examples support:
+
+- Matter over Openthread
+
+### Supported build systems
+
+MCXW72 platform supports two different build systems to generate the application
+:
+
+- `GN` (_contact-sensor_ application only)
+- `CMake`
+
+
+
+## Building
+
+Make sure to follow shared build instructions from
+[CHIP NXP Examples Guide for FreeRTOS platforms](./nxp_examples_freertos_platforms.md#set-up-the-build-environment)
+to set-up your environment.
+
+> In the following steps, the "lighting-app" is used as an example.
+
+### CMake Build System
+
+The examples support configuration and build using the CMake build system. You
+can find more information in
+[CMake Build System](./nxp_examples_freertos_platforms.md#cmake-build-system)
+section which explains how to further configure your application build.
+
+In the `west build` command, the `board` option should be replaced with
+`frdmmcxw72`. The build option
+`-DCONFIG_MCUX_COMPONENT_middleware.freertos-kernel.config=n` must be used in
+the build command line for the MCXW72 platform. Also, the `core_id` should be
+set to `cm33_core0`.
+
+Example of build command to build the Lighting app with Matter-over-Thread (FTD
+device type) configuration on MCXW72 platform :
+
+```
+user@ubuntu:~/Desktop/git/connectedhomeip$ west build -d bin/lighting-app/ftd -b frdmmcxw72 examples/lighting-app/nxp -Dcore_id=cm33_core0 -DCONF_FILE_NAME=prj_thread_ftd.conf -DCONFIG_MCUX_COMPONENT_middleware.freertos-kernel.config=n
+```
+
+Note that the MCXW72 examples support various configurations that can be
+provided to the `CONF_FILE_NAME` variable, you can refer to the
+[table of available project configuration files and platform compatibility](./nxp_examples_freertos_platforms.md#build-config-files)
+to check all the supported configurations.
+
+### GN Build System
+
+#### Building with Matter over Thread configuration on MCXW72
+
+- Build Matter-over-Thread configuration with BLE commissioning.
+
+```
+user@ubuntu:~/Desktop/git/connectedhomeip/examples/contact-sensor-app/nxp/mcxw72$ gn gen out/debug
+user@ubuntu:~/Desktop/git/connectedhomeip/examples/contact-sensor-app/nxp/mcxw72$ ninja -C out/debug
+```
+
+#### General information
+
+The resulting application can be found in out/debug/chip-mcxw72-contact-example.
+
+Additional GN options can be added when building the application. You can check
+[Common GN options to FreeRTOS platforms](./nxp_examples_freertos_platforms.md#general-information)
+for the full list.
+
+
+
+## Manufacturing data
+
+See
+[Guide for writing manufacturing data on NXP devices](./nxp_manufacturing_flow.md)
+
+
+
+## Flashing and debugging
+
+### Flashing the NBU firmware
+
+Normally the `NBU` image should be written/updated only when migrating to a new
+NXP SDK or to a new Matter release altogether. The procedure below can be used
+to upload/refresh the board's NBU firmware.
+
+1. Install the Bootloader Host Application (`blhost`) from the
+ [MCU Bootloader for NXP Microcontrollers downloads page](https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcu-bootloader-for-nxp-microcontrollers:MCUBOOT).
+
+2. The NBU image is available in your Matter source code tree in
+
+`third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/mcuxsdk/middleware/wireless/ieee-802.15.4/bin/mcxw72/mcxw72_nbu_ble_full_15_4_dyn.bin`
+
+3. Initialize the board in `ISP` (In-System Programming) mode, which allows the
+ SoC to accept commands to erase/write/update internal flash memories via the
+ serial port. In order to do that disconnect the board from your PC and hold
+ down the SW3 button while reconnecting it back. When you release the SW3
+ button the board should be operating in ISP mode.
+
+4. Erase the host and NBU flash memories using the `blhost` tool
+
+ ```
+ blhost -p flash-erase-all 0
+ blhost -p flash-erase-all 1
+ ```
+
+5. Use the same `blhost` tool to write the NBU image on the board:
+
+ ```
+ blhost -p write-memory 0x48800000 mcxw72_nbu_ble_full_15_4_dyn.bin
+ ```
+
+6. Return the board to normal operating mode by disconnecting and then
+ reconnecting it back to your PC.
+
+### Flashing the example application
+
+We recommend using `JLink` from Segger to flash the example application. It can
+be downloaded and installed from https://www.segger.com/downloads/jlink. Once
+installed, JLink can be run to flash the application using the following steps :
+
+```
+$ JLink
+```
+
+```
+J-Link > connect
+Device> ? # you will be presented with a dialog -> select `MCXW727C_M33_0`
+Please specify target interface:
+J) JTAG (Default)
+S) SWD
+T) cJTAG
+TIF> S
+Specify target interface speed [kHz]. : 4000 kHz
+Speed> #
+```
+
+Program the application executable :
+
+```
+J-Link > loadfile (.elf or .srec format)
+```
+
+
+
+## Testing the example
+
+To test the example, please make sure to check the `Testing the example` section
+from the common readme
+[CHIP NXP Examples Guide for FreeRTOS platforms](./nxp_examples_freertos_platforms.md#testing-the-example).
+
+### UART Ports
+
+Testing the example with the CLI enabled will require connecting to both UART0
+and UART1 serial ports. For applications where CLI is _not_ available,
+connecting to the default UART1 is enough.
+
+| Interface | Role |
+| --------------- | --------------------------------------------------------------------- |
+| UART0 | Used for logs only when `matter-cli` is enabled |
+| UART1 (default) | Used either as `matter-cli` or for logs when `matter-cli` is disabled |
+
+You need a `USB-UART` bridge to make use of the UART0 interface. The pin
+configuration is the following:
+
+- `J5` `pin 3` - UART0 RX
+- `J5` `pin 4` - UART0 TX
+- `J5` `pin 8` - GND
+
+### Device UI
+
+The device state feedback is provided through the on-board LEDs:
+
+| Widget | Effect | Description |
+| ------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| LED2 | short flash on (50ms on/950ms off) | The device is in an unprovisioned (unpaired) state and is waiting for a commissioner to connect. |
+| LED2 | rapid even flashing (100ms period) | The device is in an unprovisioned state and a commissioner is connected via BLE. |
+| LED2 | short flash off (950ms on/50ms off) | The device is fully provisioned, but does not yet have full network (Thread) or service connectivity. |
+| LED2 | solid on | The device is fully provisioned and has full network and service connectivity. |
+| RGB LED | on | The `StateValue` attribute of the `BooleanState` cluster is `true` (simulating detection). |
+| RGB LED | off | The `StateValue` attribute of the `BooleanState` cluster is `false` (simulating no detection). |
+
+The user can control the device using the on-board buttons. The actions are
+summarized below:
+
+| Button | Action | State | Output |
+| ------ | ----------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
+| SW2 | short press | not commissioned | Enable/disable BLE advertising |
+| SW2 | long press | any | Initiate a factory reset (can be cancelled by pressing the button again within the factory reset timeout limit - 6 seconds by default) |
+| SW4 | short press | any | Toggle attribute `StateValue` value |
+| SW4 | long press | any | Clean soft reset of the device (takes into account proper Matter shutdown procedure) |
+
+
+
+## OTA Software Update
+
+Over-The-Air software updates are supported with the MCXW72 examples. The
+process to follow in order to perform a software update is described in the
+dedicated guide
+['Matter Over-The-Air Software Update with NXP MCXW example applications'](./nxp_mcxw_ota_guide.md).
diff --git a/docs/platforms/nxp/nxp_mcxw71_ota_guide.md b/docs/platforms/nxp/nxp_mcxw_ota_guide.md
similarity index 99%
rename from docs/platforms/nxp/nxp_mcxw71_ota_guide.md
rename to docs/platforms/nxp/nxp_mcxw_ota_guide.md
index 8a32e928edd..f76cd64143a 100644
--- a/docs/platforms/nxp/nxp_mcxw71_ota_guide.md
+++ b/docs/platforms/nxp/nxp_mcxw_ota_guide.md
@@ -1,4 +1,4 @@
-# NXP `MCXW71` OTA guide
+# NXP MCXW OTA guide
### Convert `srec` into `sb3` file
diff --git a/docs/platforms/nxp/nxp_rt1060_guide.md b/docs/platforms/nxp/nxp_rt1060_guide.md
index be2f7376bb3..5453cd5f729 100644
--- a/docs/platforms/nxp/nxp_rt1060_guide.md
+++ b/docs/platforms/nxp/nxp_rt1060_guide.md
@@ -13,14 +13,6 @@
- [Hardware requirements RT1060 + 88W8801 + K32W0x1DK6](#hardware-requirements-rt1060--88w8801--k32w0x1dk6)
- [Building](#building)
- [CMake Build System](#cmake-build-system)
- - [GN Build System](#gn-build-system)
- - [Building with Matter over Wifi configuration on RT1060 + transceiver](#building-with-matter-over-wifi-configuration-on-rt1060--transceiver)
- - [Build with Matter over Thread configuration on RT1060 + transceiver](#build-with-matter-over-thread-configuration-on-rt1060--transceiver)
- - [Build with Matter over Thread configuration on RT1060 + K32W0](#build-with-matter-over-thread-configuration-on-rt1060--k32w0)
- - [Build with Matter over Thread configuration on RT1060-EVK-C + IW612](#build-with-matter-over-thread-configuration-on-rt1060-evk-c--iw612)
- - [Build with Matter over Wi-Fi + OpenThread Border Router configuration on RT1060-EVK-C + IW612](#build-with-matter-over-wi-fi--openthread-border-router-configuration-on-rt1060-evk-c--iw612)
- - [Build with Matter over Wi-Fi + OpenThread Border Router configuration on RT1060 + 88W8801 + K32W0x1DK6](#build-with-matter-over-wi-fi--openthread-border-router-configuration-on-rt1060--88w8801--k32w0x1dk6)
- - [General Information](#general-information)
- [Manufacturing data](#manufacturing-data)
- [Flashing and debugging](#flashing-and-debugging)
- [Testing the example](#testing-the-example)
@@ -289,166 +281,6 @@ automatically by the host build in
> [How to customize the CMake build](./nxp_examples_freertos_platforms.md#how-to-customize-the-cmake-build)
> section.
-### GN Build System
-
-#### Building with Matter over Wifi configuration on RT1060 + transceiver
-
-- Build the Wi-fi configuration for **MIMXRT1060-EVK-B board + IW416
- transceiver** (with BLE for commissioning).
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ gn gen --args="chip_enable_wifi=true iw416_transceiver=true" out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ ninja -C out/debug
-```
-
-- Build the Wi-fi configuration for **MIMXRT1060-EVK-B board + 88W8801
- transceiver** with Matter-over-Wifi configuration and only onnetwork
- commissioning (without BLE, the WiFi network credentials are provided at
- build-time which will enable the device to join the Wi-Fi AP at startup):
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ export ssid_name= && export ssid_password= && gn gen --args="chip_enable_wifi=true w8801_transceiver=true chip_config_network_layer_ble=false wifi_auto_connect_at_boot=true wifi_auto_connect_at_boot_ssid=\"${ssid_name}\" wifi_auto_connect_at_boot_password=\"${ssid_password}\"" out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ ninja -C out/debug
-```
-
-- Build the Wi-fi configuration for **MIMXRT1060-EVK-C board + IW612
- transceiver** (with BLE for commissioning).
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ gn gen --args="chip_enable_wifi=true iwx12_transceiver=true evkname=\"evkcmimxrt1060\" " out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ ninja -C out/debug
-```
-
-- Build the Wi-fi configuration for **MIMXRT1060-EVK-C board + IW612
- transceiver** with Matter-over-Wifi configuration and only onnetwork
- commissioning (without BLE, the WiFi network credentials are provided at
- build-time which will enable the device to join the Wi-Fi AP at startup):
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ export ssid_name= && export ssid_password= && gn gen --args="chip_enable_wifi=true iwx12_transceiver=true evkname=\"evkcmimxrt1060\" chip_config_network_layer_ble=false wifi_auto_connect_at_boot=true wifi_auto_connect_at_boot_ssid=\"${ssid_name}\" wifi_auto_connect_at_boot_password=\"${ssid_password}\"" out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ ninja -C out/debug
-```
-
-#### Build with Matter over Thread configuration on RT1060 + transceiver
-
-##### Build with Matter over Thread configuration on RT1060 + K32W0
-
-For this configuration a K32W0 RCP image is required and must support in a
-single image the openthread RCP configuration and the BLE HCI BB configuration.
-Messages between the host and the K32W0 transceiver are transferred on a single
-UART with flow control support. For that the HDLC-Lite framing protocol is used
-to transfer spinel and hci frames. In addition, hci and spinel frames can be
-distinguished by using the Spinel convention which is line compatible with
-BT/BLE HCI.
-
-Before building the Matter host application, it is required to generate the
-K32W0 image supporting features as described above. To build this binary the
-target `ot_rcp_ble_hci_bb_single_uart_fc` should be built by following the
-[Readme.md][ot_rcp_ble_hci_bb_k32w0_readme]. After a successful build, a `".h"`
-file will be generated and would contain the K32W0 RCP binary. As described in
-the [Readme.md][ot_rcp_ble_hci_bb_k32w0_readme], the application binaries will
-be generated in
-`ot_nxp/build_k32w061/ot_rcp_ble_hci_bb_single_uart_fc/bin/ot-rcp-ble-hci-bb-k32w061.elf.bin.h`.
-
-The generate K32W0 transceiver binary `".h"` file path must be indicated to the
-host Matter application build. In fact the Matter host application is in charge
-of storing the K32W0 firmware in its flash to be able to use the
-`The Over The Wire (OTW) protocol (over UART)` to download (at host startup) the
-k32w0 transceiver image from the host to the K32W0 internal flash. For more
-information on the k32w0 `OTW` protocol, user can consult the doxygen header of
-the file located in
-`/third_party/nxp/nxp_matter_support/github_sdk/sdk_next/repo/middleware/wireless/framework/OTW/k32w0_transceiver/fwk_otw.c`.
-
-Here is a summary of the k32w0 _gn gen_ arguments that are mandatory or
-optional:
-
-- Mandatory: `k32w0_transceiver=true`
-- Mandatory: `hci_spinel_single_uart=true`
-- Optional:
- `k32w0_transceiver_bin_path=\"/home/ot-nxp/build_k32w061/ot_rcp_ble_hci_bb_single_uart_fc/bin/ot-rcp-ble-hci-bb-k32w061.elf.bin.h\"`
- This argument is optional, by default, if not set, the binary file located
- in
- "\${chip_root}/third_party/openthread/ot_nxp/build_k32w061/ot_rcp_ble_hci_bb_single_uart_fc/bin/ot-rcp-ble-hci-bb-k32w061.elf.bin.h"
- will be used. If the K32W061 transceiver binary is saved at another location
- an absolute path of its location should be given.
-- Optional: `otw_logs_enabled=true` This argument is optional, by default
- being set to false. If set to true, RT logging will print the `OTW` logs.
-
-[ot_rcp_ble_hci_bb_k32w0_readme]:
- https://github.com/NXP/ot-nxp/blob/v1.0.0.2-tag-nxp/examples/hybrid/ot_rcp_ble_hci_bb/k32w061/README.md#building-the-examples
-
-Below is presented an example of _gn gen_ argument that could be used to
-generate the host matter application with a k32w0 transceiver.
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ gn gen --args="chip_enable_openthread=true k32w0_transceiver=true k32w0_transceiver_bin_path=\"/home/ot-nxp/build_k32w061/ot_rcp_ble_hci_bb_single_uart_fc/bin/ot-rcp-ble-hci-bb-k32w061.elf.bin.h\" hci_spinel_single_uart=true chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=true" out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ ninja -C out/debug
-```
-
-##### Build with Matter over Thread configuration on RT1060-EVK-C + IW612
-
-Build the OpenThread configuration for MIMXRT1060-EVK-C board + IW612
-transceiver (with BLE for commissioning).
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ gn gen --args="chip_enable_openthread=true iwx12_transceiver=true evkname=\"evkcmimxrt1060\" chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=true" " out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ ninja -C out/debug
-```
-
-##### Build with Matter over Wi-Fi + OpenThread Border Router configuration on RT1060-EVK-C + IW612
-
-This configuration supports the Thread Border Router management cluster to
-provision the Thread credentials. Enabling the Matter CLI in order to control
-the Thread network on the Border Router is optional but recommended for other
-features like the Thread credential sharing.
-
-Note that the Thread Border Router management cluster is only supported on the
-thermostat application for now.
-
-- Build Matter with Border Router configuration with ble-wifi commissioning:
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/thermostat/nxp/rt/rt1060$ gn gen --args="chip_enable_openthread=true iwx12_transceiver=true evkname=\"evkcmimxrt1060\" chip_enable_wifi=true chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=true chip_enable_secondary_nwk_if=true chip_device_config_thread_network_endpoint_id=2" " out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/thermostat/nxp/rt/rt1060$ ninja -C out/debug
-```
-
-##### Build with Matter over Wi-Fi + OpenThread Border Router configuration on RT1060 + 88W8801 + K32W0x1DK6
-
-This configuration supports the Thread Border Router management cluster to
-provision the Thread credentials. Enabling the Matter CLI in order to control
-the Thread network on the Border Router is optional but recommended for other
-features like the Thread credential sharing.
-
-Note that the Thread Border Router management cluster is only supported on the
-thermostat application for now.
-
-- Build Matter with Border Router configuration with ble-wifi commissioning:
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/thermostat/nxp/rt/rt1060$ gn gen --args="chip_enable_wifi=true w8801_transceiver=true nxp_enable_matter_cli=true chip_config_network_layer_ble=true chip_enable_openthread=true k32w0_transceiver=true chip_enable_secondary_nwk_if=true chip_device_config_thread_network_endpoint_id=2 k32w0_transceiver_bin_path=\"/path/to/ot-rcp/ot-rcp-ble-hci-bb-k32w061.elf.bin.h\" hci_spinel_single_uart=true " out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/thermostat/nxp/rt/rt1060$ ninja -C out/debug
-```
-
-- Build Matter with Border Router configuration with onnetwork commissioning:
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ export ssid_name= && export ssid_password= && gn gen --args="chip_enable_wifi=true w8801_transceiver=true chip_enable_secondary_nwk_if=true chip_device_config_thread_network_endpoint_id=2 nxp_enable_matter_cli=true chip_config_network_layer_ble=false wifi_auto_connect_at_boot=true wifi_auto_connect_at_boot_ssid=\"${ssid_name}\" wifi_auto_connect_at_boot_password=\"${ssid_password}\" chip_enable_openthread=true k32w0_transceiver=true k32w0_transceiver_bin_path=\"/path/to/ot-rcp/ot-rcp-ble-hci-bb-k32w061.elf.bin.h\"" out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1060$ ninja -C out/debug
-```
-
-#### General Information
-
-The resulting output file can be found in
-out/debug/chip-rt1060-all-cluster-example.
-
-Additional GN options can be added when building the application. You can check
-[Common GN options to FreeRTOS platforms](./nxp_examples_freertos_platforms.md#general-information)
-for the full list. Below is the list of RT1060 specific GN options :
-
-- By default, the MIMXRT1060-EVK-B will be chosen by the application. To
- switch to an MIMXRT1060-EVK, the argument `evkname=\"evkmimxrt1060\"` must
- be added to the _gn gen_ command.
-
## Manufacturing data
diff --git a/docs/platforms/nxp/nxp_rt1170_guide.md b/docs/platforms/nxp/nxp_rt1170_guide.md
index 4475228f316..9ae480aa3fd 100644
--- a/docs/platforms/nxp/nxp_rt1170_guide.md
+++ b/docs/platforms/nxp/nxp_rt1170_guide.md
@@ -11,10 +11,6 @@
- [Board settings (Spinel over SPI, I2C, BLE over UART)](#board-settings-spinel-over-spi-i2c-ble-over-uart)
- [Building](#building)
- [CMake Build System](#cmake-build-system)
- - [GN Build System](#gn-build-system)
- - [Building with Matter over Wifi configuration on RT1170 + IW612](#building-with-matter-over-wifi-configuration-on-rt1170--iw612)
- - [Building with Matter over Thread configuration on RT1170 + IW612](#building-with-matter-over-thread-configuration-on-rt1170--iw612)
- - [Building with Matter over Wifi + OpenThread Border Router configuration on RT1170 + IW612](#building-with-matter-over-wifi--openthread-border-router-configuration-on-rt1170--iw612)
- [General information](#general-information)
- [Manufacturing data](#manufacturing-data)
- [Flashing and debugging](#flashing-and-debugging)
@@ -56,7 +52,6 @@ over Thread on RT1170 :
RT1170 platform supports two different build systems to generate the application
:
-- `GN`
- `CMake`
### Hardware requirements for RT1170 + IW612
@@ -183,55 +178,6 @@ to check all the supported configurations.
> [How to customize the CMake build](./nxp_examples_freertos_platforms.md#how-to-customize-the-cmake-build)
> section.
-### GN Build System
-
-#### Building with Matter over Wifi configuration on RT1170 + IW612
-
-- Build the Wi-fi configuration for MIMXRT1170 board + IW612 transceiver (with
- BLE for commissioning).
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1170$ gn gen --args="chip_enable_wifi=true iwx12_transceiver=true chip_config_network_layer_ble=true chip_enable_ble=true " out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1170$ ninja -C out/debug
-```
-
-#### Building with Matter over Thread configuration on RT1170 + IW612
-
-- Build the Openthread configuration for MIMXRT1170 board + IW612 transceiver
- (with BLE for commissioning).
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-cluster/nxp/rt/rt1170$ gn gen --args="chip_enable_openthread=true iwx12_transceiver=true chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=true" out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-cluster/nxp/rt/rt1170/$ ninja -C out/debug
-```
-
-#### Building with Matter over Wifi + OpenThread Border Router configuration on RT1170 + IW612
-
-This configuration supports the Thread Border Router management cluster to
-provision the Thread credentials. Enabling the Matter CLI in order to control
-the Thread network on the Border Router is optional but recommended for other
-features like the Thread credential sharing.
-
-Note that the Thread Border Router management cluster is only supported on the
-thermostat application for now.
-
-- Build Matter with Border Router configuration with BLE commissioning
- (ble-wifi) :
-
-```
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt11170$ gn gen --args="chip_enable_wifi=true iwx12_transceiver=true chip_config_network_layer_ble=true chip_enable_ble=true chip_enable_openthread=true nxp_enable_matter_cli=true" out/debug
-user@ubuntu:~/Desktop/git/connectedhomeip/examples/all-clusters-app/nxp/rt/rt1170$ ninja -C out/debug
-```
-
-### General information
-
-The resulting output file can be found in
-out/debug/chip-rt1170-all-cluster-example.
-
-Additional GN options can be added when building the application. You can check
-[Common GN options to FreeRTOS platforms](./nxp_examples_freertos_platforms.md#general-information)
-for the full list.
-
## Manufacturing data
See
diff --git a/docs/testing/python.md b/docs/testing/python.md
index 08694dede6d..97648971b81 100644
--- a/docs/testing/python.md
+++ b/docs/testing/python.md
@@ -502,6 +502,40 @@ Fabric admin for default controller:
second_ctrl = fa.new_fabric_admin.NewController(nodeId=node_id)
```
+Reboot the DUT during testing:
+
+```python
+# Simple reboot - device state persists
+await self.request_device_reboot()
+
+# Factory reset - clears device state (removes KVS)
+await self.request_device_factory_reset()
+```
+
+```shell
+# Example Command w/ run_python_test.py test runner:
+scripts/tests/run_python_test.py --factory-reset --app out/linux-x64-all-clusters/chip-all-clusters-app --app-args "--discriminator 1234 --KVS kvs1" --script-args "--storage-path admin_storage.json --commissioning-method on-network --discriminator 1234 --passcode 20202021 --PICS src/app/tests/suites/certification/ci-pics-values --endpoint 1" --script src/python_testing/TC_ACL_2_10.py --app-ready-pattern "APP STATUS: Starting event loop"
+```
+
+The `request_device_reboot()` and `request_device_factory_reset()` methods work
+differently depending on the environment. When the test is started with
+`run_python_test.py` as it is in the CI, need to make sure to import
+MatterBaseTest and have your test module inherit from it to make this
+functionality accessible during your test, the device is automatically rebooted
+and possibly factory reset during the test depending on test implementation
+using the restart_flag_file. When the test is started by some other means (e.g.,
+during certification testing), you'll be prompted to manually reboot or factory
+reset the device using the device-specific mechanism.
+
+If reboot utilized automatically expires existing controller sessions to device
+to force reconnection once device is back up and stable or if factory reset
+utilized the device will automatically re-enter commissioning mode to allow new
+commissioning once the device is back up and stable.
+
+See
+[TC-ACL-2.10](https://github.com/project-chip/connectedhomeip/blob/master/src/python_testing/TC_ACL_2_10.py)
+for an example testing ACL persistence across reboots.
+
## Automating manual steps
Some test plans have manual steps that require the tester to manually change the
diff --git a/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter b/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter
index fee76953212..58d18375289 100644
--- a/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter
+++ b/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter
@@ -352,6 +352,8 @@ fabric_scoped struct WebRTCSessionStruct {
nullable int16u videoStreamID = 4;
nullable int16u audioStreamID = 5;
boolean metadataEnabled = 6;
+ optional int16u videoStreams[] = 7;
+ optional int16u audioStreams[] = 8;
fabric_idx fabricIndex = 254;
}
diff --git a/examples/air-purifier-app/air-purifier-common/src/air-purifier-manager.cpp b/examples/air-purifier-app/air-purifier-common/src/air-purifier-manager.cpp
index 7bf2de05b52..f46ad19a527 100644
--- a/examples/air-purifier-app/air-purifier-common/src/air-purifier-manager.cpp
+++ b/examples/air-purifier-app/air-purifier-common/src/air-purifier-manager.cpp
@@ -27,8 +27,8 @@ void AirPurifierManager::Init()
{
FanControl::SetDefaultDelegate(mEndpointId, this);
- activatedCarbonFilterInstance.Init();
- hepaFilterInstance.Init();
+ TEMPORARY_RETURN_IGNORED activatedCarbonFilterInstance.Init();
+ TEMPORARY_RETURN_IGNORED hepaFilterInstance.Init();
mAirQualitySensorManager.Init();
mTemperatureSensorManager.Init();
mHumiditySensorManager.Init();
diff --git a/examples/air-purifier-app/air-purifier-common/src/air-quality-sensor-manager.cpp b/examples/air-purifier-app/air-purifier-common/src/air-quality-sensor-manager.cpp
index d6c3155c250..913e7a1d089 100644
--- a/examples/air-purifier-app/air-purifier-common/src/air-quality-sensor-manager.cpp
+++ b/examples/air-purifier-app/air-purifier-common/src/air-quality-sensor-manager.cpp
@@ -33,126 +33,128 @@ void AirQualitySensorManager::Init()
*/
// Air Quality
- airQualityInstance.Init();
+ TEMPORARY_RETURN_IGNORED airQualityInstance.Init();
airQualityInstance.UpdateAirQuality(AirQualityEnum::kGood);
// CO2
- carbonDioxideConcentrationMeasurementInstance.Init();
- carbonDioxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- carbonDioxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- carbonDioxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- carbonDioxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- carbonDioxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- carbonDioxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- carbonDioxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- carbonDioxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
- carbonDioxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED carbonDioxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
// CO
- carbonMonoxideConcentrationMeasurementInstance.Init();
- carbonMonoxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- carbonMonoxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- carbonMonoxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- carbonMonoxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- carbonMonoxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- carbonMonoxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- carbonMonoxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- carbonMonoxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
- carbonMonoxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED carbonMonoxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
// NO2
- nitrogenDioxideConcentrationMeasurementInstance.Init();
- nitrogenDioxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- nitrogenDioxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- nitrogenDioxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- nitrogenDioxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- nitrogenDioxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- nitrogenDioxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- nitrogenDioxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- nitrogenDioxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
- nitrogenDioxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED nitrogenDioxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
// PM1
- pm1ConcentrationMeasurementInstance.Init();
- pm1ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- pm1ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- pm1ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- pm1ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- pm1ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- pm1ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- pm1ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- pm1ConcentrationMeasurementInstance.SetUncertainty(0.0f);
- pm1ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED pm1ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
// PM10
- pm10ConcentrationMeasurementInstance.Init();
- pm10ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- pm10ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- pm10ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- pm10ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- pm10ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- pm10ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- pm10ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- pm10ConcentrationMeasurementInstance.SetUncertainty(0.0f);
- pm10ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED pm10ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
// PM2.5
- pm25ConcentrationMeasurementInstance.Init();
- pm25ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- pm25ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- pm25ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- pm25ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- pm25ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- pm25ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- pm25ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- pm25ConcentrationMeasurementInstance.SetUncertainty(0.0f);
- pm25ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED pm25ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
// Radon
- radonConcentrationMeasurementInstance.Init();
- radonConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- radonConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- radonConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- radonConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- radonConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- radonConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- radonConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- radonConcentrationMeasurementInstance.SetUncertainty(0.0f);
- radonConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED radonConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
// TVOC
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.Init();
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetUncertainty(0.0f);
- totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMaxMeasuredValue(
+ MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetAverageMeasuredValue(
+ MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED totalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
// Ozone
- ozoneConcentrationMeasurementInstance.Init();
- ozoneConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- ozoneConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- ozoneConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- ozoneConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- ozoneConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- ozoneConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- ozoneConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- ozoneConcentrationMeasurementInstance.SetUncertainty(0.0f);
- ozoneConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED ozoneConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
// Formaldehyde
- formaldehydeConcentrationMeasurementInstance.Init();
- formaldehydeConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- formaldehydeConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- formaldehydeConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- formaldehydeConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- formaldehydeConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- formaldehydeConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- formaldehydeConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- formaldehydeConcentrationMeasurementInstance.SetUncertainty(0.0f);
- formaldehydeConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.Init();
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED formaldehydeConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
diff --git a/examples/air-purifier-app/air-purifier-common/src/filter-delegates.cpp b/examples/air-purifier-app/air-purifier-common/src/filter-delegates.cpp
index 74091ab778b..eb5d4d573d0 100644
--- a/examples/air-purifier-app/air-purifier-common/src/filter-delegates.cpp
+++ b/examples/air-purifier-app/air-purifier-common/src/filter-delegates.cpp
@@ -80,23 +80,23 @@ CHIP_ERROR ImmutableReplacementProductListManager::Next(ReplacementProductStruct
{
case 0: {
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kUpc);
- item.SetProductIdentifierValue(CharSpan::fromCharString("111112222233"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("111112222233"));
break;
case 1:
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kGtin8);
- item.SetProductIdentifierValue(CharSpan::fromCharString("gtin8xxx"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("gtin8xxx"));
break;
case 2:
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kEan);
- item.SetProductIdentifierValue(CharSpan::fromCharString("4444455555666"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("4444455555666"));
break;
case 3:
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kGtin14);
- item.SetProductIdentifierValue(CharSpan::fromCharString("gtin14xxxxxxxx"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("gtin14xxxxxxxx"));
break;
case 4:
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kOem);
- item.SetProductIdentifierValue(CharSpan::fromCharString("oem20xxxxxxxxxxxxxxx"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("oem20xxxxxxxxxxxxxxx"));
break;
default:
return CHIP_ERROR_PROVIDER_LIST_EXHAUSTED;
diff --git a/examples/air-purifier-app/ameba/main/chipinterface.cpp b/examples/air-purifier-app/ameba/main/chipinterface.cpp
index 69019d16fcd..a6406b32c56 100755
--- a/examples/air-purifier-app/ameba/main/chipinterface.cpp
+++ b/examples/air-purifier-app/ameba/main/chipinterface.cpp
@@ -144,9 +144,9 @@ static void InitServer(intptr_t context)
static AmebaObserver sAmebaObserver;
initParams.appDelegate = &sAmebaObserver;
+ chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider);
chip::Server::GetInstance().Init(initParams);
gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage());
- chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider);
NetWorkCommissioningInstInit();
diff --git a/examples/air-purifier-app/linux/main.cpp b/examples/air-purifier-app/linux/main.cpp
index 0335ebcaac3..eb2accf6966 100644
--- a/examples/air-purifier-app/linux/main.cpp
+++ b/examples/air-purifier-app/linux/main.cpp
@@ -50,10 +50,10 @@ void ApplicationInit()
EndpointId(TEMPERATURE_SENSOR_ENDPOINT), EndpointId(RELATIVE_HUMIDITY_SENSOR_ENDPOINT),
EndpointId(THERMOSTAT_ENDPOINT));
- SetParentEndpointForEndpoint(AIR_QUALITY_SENSOR_ENDPOINT, AIR_PURIFIER_ENDPOINT);
- SetParentEndpointForEndpoint(TEMPERATURE_SENSOR_ENDPOINT, AIR_PURIFIER_ENDPOINT);
- SetParentEndpointForEndpoint(RELATIVE_HUMIDITY_SENSOR_ENDPOINT, AIR_PURIFIER_ENDPOINT);
- SetParentEndpointForEndpoint(THERMOSTAT_ENDPOINT, AIR_PURIFIER_ENDPOINT);
+ SuccessOrDie(SetParentEndpointForEndpoint(AIR_QUALITY_SENSOR_ENDPOINT, AIR_PURIFIER_ENDPOINT));
+ SuccessOrDie(SetParentEndpointForEndpoint(TEMPERATURE_SENSOR_ENDPOINT, AIR_PURIFIER_ENDPOINT));
+ SuccessOrDie(SetParentEndpointForEndpoint(RELATIVE_HUMIDITY_SENSOR_ENDPOINT, AIR_PURIFIER_ENDPOINT));
+ SuccessOrDie(SetParentEndpointForEndpoint(THERMOSTAT_ENDPOINT, AIR_PURIFIER_ENDPOINT));
}
void ApplicationShutdown()
diff --git a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter
index 1d4eea2ca03..524df27362f 100644
--- a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter
+++ b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter
@@ -352,6 +352,8 @@ fabric_scoped struct WebRTCSessionStruct {
nullable int16u videoStreamID = 4;
nullable int16u audioStreamID = 5;
boolean metadataEnabled = 6;
+ optional int16u videoStreams[] = 7;
+ optional int16u audioStreams[] = 8;
fabric_idx fabricIndex = 254;
}
diff --git a/examples/air-quality-sensor-app/air-quality-sensor-common/icd-lit-air-quality-sensor-app.matter b/examples/air-quality-sensor-app/air-quality-sensor-common/icd-lit-air-quality-sensor-app.matter
index adbd4c5347e..2a3812d9061 100644
--- a/examples/air-quality-sensor-app/air-quality-sensor-common/icd-lit-air-quality-sensor-app.matter
+++ b/examples/air-quality-sensor-app/air-quality-sensor-common/icd-lit-air-quality-sensor-app.matter
@@ -352,6 +352,8 @@ fabric_scoped struct WebRTCSessionStruct {
nullable int16u videoStreamID = 4;
nullable int16u audioStreamID = 5;
boolean metadataEnabled = 6;
+ optional int16u videoStreams[] = 7;
+ optional int16u audioStreams[] = 8;
fabric_idx fabricIndex = 254;
}
diff --git a/examples/all-clusters-app/all-clusters-common/BUILD.gn b/examples/all-clusters-app/all-clusters-common/BUILD.gn
index fe7b6006343..757b5df3bac 100644
--- a/examples/all-clusters-app/all-clusters-common/BUILD.gn
+++ b/examples/all-clusters-app/all-clusters-common/BUILD.gn
@@ -21,6 +21,7 @@ chip_data_model("all-clusters-common") {
"${chip_root}/src/app/clusters/bindings:binding-manager",
"${chip_root}/src/app/clusters/tls-certificate-management-server",
"${chip_root}/src/app/clusters/tls-certificate-management-server:certificate-table",
+ "${chip_root}/src/app/clusters/tls-client-management-server",
"${chip_root}/src/crypto",
]
zap_file = "all-clusters-app.zap"
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
index 0aeb0b12ed2..41191eac6a1 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
@@ -352,6 +352,8 @@ fabric_scoped struct WebRTCSessionStruct {
nullable int16u videoStreamID = 4;
nullable int16u audioStreamID = 5;
boolean metadataEnabled = 6;
+ optional int16u videoStreams[] = 7;
+ optional int16u audioStreams[] = 8;
fabric_idx fabricIndex = 254;
}
@@ -6293,573 +6295,19 @@ cluster LowPower = 1288 {
command Sleep(): DefaultSuccess = 0;
}
-/** The Camera AV Stream Management cluster is used to allow clients to manage, control, and configure various audio, video, and snapshot streams on a camera. */
-cluster CameraAvStreamManagement = 1361 {
- revision 1;
-
- enum AudioCodecEnum : enum8 {
- kOPUS = 0 [spec_name = "OPUS"];
- kAACLC = 1 [spec_name = "AAC-LC"];
- }
-
- enum ImageCodecEnum : enum8 {
- kJPEG = 0 [spec_name = "JPEG"];
- }
-
- enum TriStateAutoEnum : enum8 {
- kOff = 0;
- kOn = 1;
- kAuto = 2;
- }
-
- enum TwoWayTalkSupportTypeEnum : enum8 {
- kNotSupported = 0;
- kHalfDuplex = 1;
- kFullDuplex = 2;
- }
-
- enum VideoCodecEnum : enum8 {
- kH264 = 0;
- kHEVC = 1 [spec_name = "HEVC"];
- kVVC = 2 [spec_name = "VVC"];
- kAV1 = 3 [spec_name = "AV1"];
- }
-
- bitmap Feature : bitmap32 {
- kAudio = 0x1;
- kVideo = 0x2;
- kSnapshot = 0x4;
- kPrivacy = 0x8;
- kSpeaker = 0x10;
- kImageControl = 0x20;
- kWatermark = 0x40;
- kOnScreenDisplay = 0x80;
- kLocalStorage = 0x100;
- kHighDynamicRange = 0x200;
- kNightVision = 0x400;
- }
-
- struct VideoResolutionStruct {
- int16u width = 0;
- int16u height = 1;
- }
-
- struct VideoStreamStruct {
- int16u videoStreamID = 0;
- StreamUsageEnum streamUsage = 1;
- VideoCodecEnum videoCodec = 2;
- int16u minFrameRate = 3;
- int16u maxFrameRate = 4;
- VideoResolutionStruct minResolution = 5;
- VideoResolutionStruct maxResolution = 6;
- int32u minBitRate = 7;
- int32u maxBitRate = 8;
- int16u keyFrameInterval = 9;
- optional boolean watermarkEnabled = 10;
- optional boolean OSDEnabled = 11;
- int8u referenceCount = 12;
- }
-
- struct SnapshotStreamStruct {
- int16u snapshotStreamID = 0;
- ImageCodecEnum imageCodec = 1;
- int16u frameRate = 2;
- VideoResolutionStruct minResolution = 3;
- VideoResolutionStruct maxResolution = 4;
- int8u quality = 5;
- int8u referenceCount = 6;
- boolean encodedPixels = 7;
- boolean hardwareEncoder = 8;
- optional boolean watermarkEnabled = 9;
- optional boolean OSDEnabled = 10;
- }
-
- struct SnapshotCapabilitiesStruct {
- VideoResolutionStruct resolution = 0;
- int16u maxFrameRate = 1;
- ImageCodecEnum imageCodec = 2;
- boolean requiresEncodedPixels = 3;
- optional boolean requiresHardwareEncoder = 4;
- }
-
- struct RateDistortionTradeOffPointsStruct {
- VideoCodecEnum codec = 0;
- VideoResolutionStruct resolution = 1;
- int32u minBitRate = 2;
- }
-
- struct AudioCapabilitiesStruct {
- int8u maxNumberOfChannels = 0;
- AudioCodecEnum supportedCodecs[] = 1;
- int32u supportedSampleRates[] = 2;
- int8u supportedBitDepths[] = 3;
- }
-
- struct AudioStreamStruct {
- int16u audioStreamID = 0;
- StreamUsageEnum streamUsage = 1;
- AudioCodecEnum audioCodec = 2;
- int8u channelCount = 3;
- int32u sampleRate = 4;
- int32u bitRate = 5;
- int8u bitDepth = 6;
- int8u referenceCount = 7;
- }
-
- struct VideoSensorParamsStruct {
- int16u sensorWidth = 0;
- int16u sensorHeight = 1;
- int16u maxFPS = 2;
- optional int16u maxHDRFPS = 3;
- }
-
- readonly attribute optional int8u maxConcurrentEncoders = 0;
- readonly attribute optional int32u maxEncodedPixelRate = 1;
- readonly attribute optional VideoSensorParamsStruct videoSensorParams = 2;
- readonly attribute optional boolean nightVisionUsesInfrared = 3;
- readonly attribute optional VideoResolutionStruct minViewportResolution = 4;
- readonly attribute optional RateDistortionTradeOffPointsStruct rateDistortionTradeOffPoints[] = 5;
- readonly attribute int32u maxContentBufferSize = 6;
- readonly attribute optional AudioCapabilitiesStruct microphoneCapabilities = 7;
- readonly attribute optional AudioCapabilitiesStruct speakerCapabilities = 8;
- readonly attribute optional TwoWayTalkSupportTypeEnum twoWayTalkSupport = 9;
- readonly attribute optional SnapshotCapabilitiesStruct snapshotCapabilities[] = 10;
- readonly attribute int32u maxNetworkBandwidth = 11;
- readonly attribute optional int16u currentFrameRate = 12;
- attribute access(read: manage, write: manage) optional boolean HDRModeEnabled = 13;
- readonly attribute StreamUsageEnum supportedStreamUsages[] = 14;
- readonly attribute optional VideoStreamStruct allocatedVideoStreams[] = 15;
- readonly attribute optional AudioStreamStruct allocatedAudioStreams[] = 16;
- readonly attribute optional SnapshotStreamStruct allocatedSnapshotStreams[] = 17;
- readonly attribute StreamUsageEnum streamUsagePriorities[] = 18;
- attribute optional boolean softRecordingPrivacyModeEnabled = 19;
- attribute optional boolean softLivestreamPrivacyModeEnabled = 20;
- readonly attribute optional boolean hardPrivacyModeOn = 21;
- attribute access(read: manage, write: manage) optional TriStateAutoEnum nightVision = 22;
- attribute access(read: manage, write: manage) optional TriStateAutoEnum nightVisionIllum = 23;
- attribute access(read: manage, write: manage) optional ViewportStruct viewport = 24;
- attribute access(read: manage, write: manage) optional boolean speakerMuted = 25;
- attribute access(read: manage, write: manage) optional int8u speakerVolumeLevel = 26;
- readonly attribute access(read: manage) optional int8u speakerMaxLevel = 27;
- readonly attribute access(read: manage) optional int8u speakerMinLevel = 28;
- attribute access(read: manage, write: manage) optional boolean microphoneMuted = 29;
- attribute access(read: manage, write: manage) optional int8u microphoneVolumeLevel = 30;
- readonly attribute access(read: manage) optional int8u microphoneMaxLevel = 31;
- readonly attribute access(read: manage) optional int8u microphoneMinLevel = 32;
- attribute access(read: manage, write: manage) optional boolean microphoneAGCEnabled = 33;
- attribute access(read: manage, write: manage) optional int16u imageRotation = 34;
- attribute access(read: manage, write: manage) optional boolean imageFlipHorizontal = 35;
- attribute access(read: manage, write: manage) optional boolean imageFlipVertical = 36;
- attribute access(read: manage, write: manage) optional boolean localVideoRecordingEnabled = 37;
- attribute access(read: manage, write: manage) optional boolean localSnapshotRecordingEnabled = 38;
- attribute access(read: manage, write: manage) optional boolean statusLightEnabled = 39;
- attribute access(read: manage, write: manage) optional ThreeLevelAutoEnum statusLightBrightness = 40;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AudioStreamAllocateRequest {
- StreamUsageEnum streamUsage = 0;
- AudioCodecEnum audioCodec = 1;
- int8u channelCount = 2;
- int32u sampleRate = 3;
- int32u bitRate = 4;
- int8u bitDepth = 5;
- }
-
- response struct AudioStreamAllocateResponse = 1 {
- int16u audioStreamID = 0;
- }
-
- request struct AudioStreamDeallocateRequest {
- int16u audioStreamID = 0;
- }
-
- request struct VideoStreamAllocateRequest {
- StreamUsageEnum streamUsage = 0;
- VideoCodecEnum videoCodec = 1;
- int16u minFrameRate = 2;
- int16u maxFrameRate = 3;
- VideoResolutionStruct minResolution = 4;
- VideoResolutionStruct maxResolution = 5;
- int32u minBitRate = 6;
- int32u maxBitRate = 7;
- int16u keyFrameInterval = 8;
- optional boolean watermarkEnabled = 9;
- optional boolean OSDEnabled = 10;
- }
-
- response struct VideoStreamAllocateResponse = 4 {
- int16u videoStreamID = 0;
- }
-
- request struct VideoStreamModifyRequest {
- int16u videoStreamID = 0;
- optional boolean watermarkEnabled = 1;
- optional boolean OSDEnabled = 2;
- }
-
- request struct VideoStreamDeallocateRequest {
- int16u videoStreamID = 0;
- }
-
- request struct SnapshotStreamAllocateRequest {
- ImageCodecEnum imageCodec = 0;
- int16u maxFrameRate = 1;
- VideoResolutionStruct minResolution = 2;
- VideoResolutionStruct maxResolution = 3;
- int8u quality = 4;
- optional boolean watermarkEnabled = 5;
- optional boolean OSDEnabled = 6;
- }
-
- response struct SnapshotStreamAllocateResponse = 8 {
- int16u snapshotStreamID = 0;
- }
-
- request struct SnapshotStreamModifyRequest {
- int16u snapshotStreamID = 0;
- optional boolean watermarkEnabled = 1;
- optional boolean OSDEnabled = 2;
- }
-
- request struct SnapshotStreamDeallocateRequest {
- int16u snapshotStreamID = 0;
- }
-
- request struct SetStreamPrioritiesRequest {
- StreamUsageEnum streamPriorities[] = 0;
- }
-
- request struct CaptureSnapshotRequest {
- nullable int16u snapshotStreamID = 0;
- VideoResolutionStruct requestedResolution = 1;
- }
-
- response struct CaptureSnapshotResponse = 13 {
- octet_string data = 0;
- ImageCodecEnum imageCodec = 1;
- VideoResolutionStruct resolution = 2;
- }
-
- /** This command SHALL allocate an audio stream on the camera and return an allocated audio stream identifier. */
- command access(invoke: manage) AudioStreamAllocate(AudioStreamAllocateRequest): AudioStreamAllocateResponse = 0;
- /** This command SHALL deallocate an audio stream on the camera, corresponding to the given audio stream identifier. */
- command access(invoke: manage) AudioStreamDeallocate(AudioStreamDeallocateRequest): DefaultSuccess = 2;
- /** This command SHALL allocate a video stream on the camera and return an allocated video stream identifier. */
- command access(invoke: manage) VideoStreamAllocate(VideoStreamAllocateRequest): VideoStreamAllocateResponse = 3;
- /** This command SHALL be used to modify a stream specified by the VideoStreamID. */
- command access(invoke: manage) VideoStreamModify(VideoStreamModifyRequest): DefaultSuccess = 5;
- /** This command SHALL deallocate a video stream on the camera, corresponding to the given video stream identifier. */
- command access(invoke: manage) VideoStreamDeallocate(VideoStreamDeallocateRequest): DefaultSuccess = 6;
- /** This command SHALL allocate a snapshot stream on the device and return an allocated snapshot stream identifier. */
- command access(invoke: manage) SnapshotStreamAllocate(SnapshotStreamAllocateRequest): SnapshotStreamAllocateResponse = 7;
- /** This command SHALL be used to modify a stream specified by the VideoStreamID. */
- command access(invoke: manage) SnapshotStreamModify(SnapshotStreamModifyRequest): DefaultSuccess = 9;
- /** This command SHALL deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier. */
- command access(invoke: manage) SnapshotStreamDeallocate(SnapshotStreamDeallocateRequest): DefaultSuccess = 10;
- /** This command SHALL set the relative priorities of the various stream usages on the camera. */
- command access(invoke: administer) SetStreamPriorities(SetStreamPrioritiesRequest): DefaultSuccess = 11;
- /** This command SHALL return a Snapshot from the camera. */
- command CaptureSnapshot(CaptureSnapshotRequest): CaptureSnapshotResponse = 12;
-}
-
-/** This cluster provides an interface into controls associated with the operation of a device that provides pan, tilt, and zoom functions, either mechanically, or against a digital image. */
-cluster CameraAvSettingsUserLevelManagement = 1362 {
- revision 1;
-
- enum PhysicalMovementEnum : enum8 {
- kIdle = 0;
- kMoving = 1;
- }
-
- bitmap Feature : bitmap32 {
- kDigitalPTZ = 0x1;
- kMechanicalPan = 0x2;
- kMechanicalTilt = 0x4;
- kMechanicalZoom = 0x8;
- kMechanicalPresets = 0x10;
- }
-
- struct MPTZStruct {
- optional int16s pan = 0;
- optional int16s tilt = 1;
- optional int8u zoom = 2;
- }
-
- struct MPTZPresetStruct {
- int8u presetID = 0;
- char_string<32> name = 1;
- MPTZStruct settings = 2;
- }
-
- struct DPTZStruct {
- int16u videoStreamID = 0;
- ViewportStruct viewport = 1;
- }
-
- readonly attribute optional MPTZStruct MPTZPosition = 0;
- readonly attribute optional int8u maxPresets = 1;
- readonly attribute optional MPTZPresetStruct MPTZPresets[] = 2;
- readonly attribute optional DPTZStruct DPTZStreams[] = 3;
- readonly attribute optional int8u zoomMax = 4;
- readonly attribute optional int16s tiltMin = 5;
- readonly attribute optional int16s tiltMax = 6;
- readonly attribute optional int16s panMin = 7;
- readonly attribute optional int16s panMax = 8;
- readonly attribute optional PhysicalMovementEnum movementState = 9;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct MPTZSetPositionRequest {
- optional int16s pan = 0;
- optional int16s tilt = 1;
- optional int8u zoom = 2;
- }
-
- request struct MPTZRelativeMoveRequest {
- optional int16s panDelta = 0;
- optional int16s tiltDelta = 1;
- optional int8s zoomDelta = 2;
- }
-
- request struct MPTZMoveToPresetRequest {
- int8u presetID = 0;
- }
-
- request struct MPTZSavePresetRequest {
- optional int8u presetID = 0;
- char_string<32> name = 1;
- }
-
- request struct MPTZRemovePresetRequest {
- int8u presetID = 0;
- }
-
- request struct DPTZSetViewportRequest {
- int16u videoStreamID = 0;
- ViewportStruct viewport = 1;
- }
-
- request struct DPTZRelativeMoveRequest {
- int16u videoStreamID = 0;
- optional int16s deltaX = 1;
- optional int16s deltaY = 2;
- optional int8s zoomDelta = 3;
- }
-
- /** This command SHALL move the camera to the provided values for pan, tilt, and zoom in the mechanical PTZ. */
- command MPTZSetPosition(MPTZSetPositionRequest): DefaultSuccess = 0;
- /** This command SHALL move the camera by the delta values relative to the currently defined position. */
- command MPTZRelativeMove(MPTZRelativeMoveRequest): DefaultSuccess = 1;
- /** This command SHALL move the camera to the positions specified by the Preset passed. */
- command MPTZMoveToPreset(MPTZMoveToPresetRequest): DefaultSuccess = 2;
- /** This command allows creating a new preset or updating the values of an existing one. */
- command MPTZSavePreset(MPTZSavePresetRequest): DefaultSuccess = 3;
- /** This command SHALL remove a preset entry from the PresetMptzTable. */
- command MPTZRemovePreset(MPTZRemovePresetRequest): DefaultSuccess = 4;
- /** This command allows for setting the digital viewport for a specific Video Stream. */
- command DPTZSetViewport(DPTZSetViewportRequest): DefaultSuccess = 5;
- /** This command SHALL change the per stream viewport by the amount specified in a relative fashion. */
- command DPTZRelativeMove(DPTZRelativeMoveRequest): DefaultSuccess = 6;
-}
-
-/** This cluster implements the upload of Audio and Video streams from the Push AV Stream Transport Cluster using suitable push-based transports. */
-cluster PushAvStreamTransport = 1365 {
- revision 1;
-
- enum CMAFInterfaceEnum : enum8 {
- kInterface1 = 0;
- kInterface2DASH = 1;
- kInterface2HLS = 2;
- }
-
- enum ContainerFormatEnum : enum8 {
- kCMAF = 0 [spec_name = "CMAF"];
- }
-
- enum IngestMethodsEnum : enum8 {
- kCMAFIngest = 0;
- }
-
- enum StatusCodeEnum : enum8 {
- kInvalidTLSEndpoint = 2;
- kInvalidStream = 3;
- kInvalidURL = 4;
- kInvalidZone = 5;
- kInvalidCombination = 6;
- kInvalidTriggerType = 7;
- kInvalidTransportStatus = 8;
- kInvalidOptions = 9;
- kInvalidStreamUsage = 10;
- kInvalidTime = 11;
- }
-
- enum TransportStatusEnum : enum8 {
- kActive = 0;
- kInactive = 1;
- }
-
- enum TransportTriggerTypeEnum : enum8 {
- kCommand = 0;
- kMotion = 1;
- kContinuous = 2;
- }
-
- enum TriggerActivationReasonEnum : enum8 {
- kUserInitiated = 0;
- kAutomation = 1;
- kEmergency = 2;
- }
-
- bitmap Feature : bitmap32 {
- kPerZoneSensitivity = 0x1;
- kMetadata = 0x2;
- }
-
- struct TransportMotionTriggerTimeControlStruct {
- int16u initialDuration = 0;
- int16u augmentationDuration = 1;
- elapsed_s maxDuration = 2;
- int16u blindDuration = 3;
- }
-
- struct TransportZoneOptionsStruct {
- nullable int16u zone = 0;
- optional int8u sensitivity = 1;
- }
-
- struct TransportTriggerOptionsStruct {
- TransportTriggerTypeEnum triggerType = 0;
- optional nullable TransportZoneOptionsStruct motionZones[] = 1;
- optional nullable int8u motionSensitivity = 2;
- optional TransportMotionTriggerTimeControlStruct motionTimeControl = 3;
- optional int16u maxPreRollLen = 4;
- }
-
- struct CMAFContainerOptionsStruct {
- CMAFInterfaceEnum CMAFInterface = 0;
- int16u segmentDuration = 1;
- int16u chunkDuration = 2;
- int8u sessionGroup = 3;
- char_string<16> trackName = 4;
- optional octet_string<16> CENCKey = 5;
- optional octet_string<16> CENCKeyID = 6;
- optional boolean metadataEnabled = 7;
- }
-
- struct ContainerOptionsStruct {
- ContainerFormatEnum containerType = 0;
- optional CMAFContainerOptionsStruct CMAFContainerOptions = 1;
- }
-
- struct TransportOptionsStruct {
- StreamUsageEnum streamUsage = 0;
- optional nullable int16u videoStreamID = 1;
- optional nullable int16u audioStreamID = 2;
- int16u TLSEndpointID = 3;
- long_char_string<2000> url = 4;
- TransportTriggerOptionsStruct triggerOptions = 5;
- IngestMethodsEnum ingestMethod = 6;
- ContainerOptionsStruct containerOptions = 7;
- optional epoch_s expiryTime = 8;
- }
-
- fabric_scoped struct TransportConfigurationStruct {
- int16u connectionID = 0;
- TransportStatusEnum transportStatus = 1;
- optional TransportOptionsStruct transportOptions = 2;
- fabric_idx fabricIndex = 254;
- }
-
- struct SupportedFormatStruct {
- ContainerFormatEnum containerFormat = 0;
- IngestMethodsEnum ingestMethod = 1;
- }
-
- info event PushTransportBegin = 0 {
- int16u connectionID = 0;
- TransportTriggerTypeEnum triggerType = 1;
- optional TriggerActivationReasonEnum activationReason = 2;
- }
-
- info event PushTransportEnd = 1 {
- int16u connectionID = 0;
- }
-
- readonly attribute SupportedFormatStruct supportedFormats[] = 0;
- readonly attribute TransportConfigurationStruct currentConnections[] = 1;
- readonly attribute command_id generatedCommandList[] = 65528;
- readonly attribute command_id acceptedCommandList[] = 65529;
- readonly attribute attrib_id attributeList[] = 65531;
- readonly attribute bitmap32 featureMap = 65532;
- readonly attribute int16u clusterRevision = 65533;
-
- request struct AllocatePushTransportRequest {
- TransportOptionsStruct transportOptions = 0;
- }
-
- response struct AllocatePushTransportResponse = 1 {
- TransportConfigurationStruct transportConfiguration = 0;
- }
-
- request struct DeallocatePushTransportRequest {
- int16u connectionID = 0;
- }
-
- request struct ModifyPushTransportRequest {
- int16u connectionID = 0;
- TransportOptionsStruct transportOptions = 1;
- }
-
- request struct SetTransportStatusRequest {
- nullable int16u connectionID = 0;
- TransportStatusEnum transportStatus = 1;
- }
-
- request struct ManuallyTriggerTransportRequest {
- int16u connectionID = 0;
- TriggerActivationReasonEnum activationReason = 1;
- optional TransportMotionTriggerTimeControlStruct timeControl = 2;
- optional long_octet_string<256> userDefined = 3;
- }
-
- request struct FindTransportRequest {
- nullable int16u connectionID = 0;
- }
-
- response struct FindTransportResponse = 7 {
- TransportConfigurationStruct transportConfigurations[] = 0;
- }
-
- /** This command SHALL allocate a transport and return a PushTransportConnectionID. */
- fabric command access(invoke: manage) AllocatePushTransport(AllocatePushTransportRequest): AllocatePushTransportResponse = 0;
- /** This command SHALL be generated to request the Node deallocates the specified transport. */
- fabric command access(invoke: manage) DeallocatePushTransport(DeallocatePushTransportRequest): DefaultSuccess = 2;
- /** This command is used to request the Node modifies the configuration of the specified push transport. */
- fabric command access(invoke: manage) ModifyPushTransport(ModifyPushTransportRequest): DefaultSuccess = 3;
- /** This command SHALL be generated to request the Node modifies the Transport Status of a specified transport or all transports. */
- fabric command access(invoke: manage) SetTransportStatus(SetTransportStatusRequest): DefaultSuccess = 4;
- /** This command SHALL be generated to request the Node to manually start the specified push transport. */
- fabric command ManuallyTriggerTransport(ManuallyTriggerTransportRequest): DefaultSuccess = 5;
- /** This command SHALL return the Transport Configuration for the specified push transport or all allocated transports for the fabric if null. */
- fabric command FindTransport(FindTransportRequest): FindTransportResponse = 6;
-}
-
/** This cluster provides facilities to configure and play Chime sounds, such as those used in a doorbell. */
cluster Chime = 1366 {
- revision 1;
+ revision 2;
struct ChimeSoundStruct {
int8u chimeID = 0;
char_string<48> name = 1;
}
+ info event ChimeStartedPlaying = 0 {
+ int8u chimeID = 0;
+ }
+
readonly attribute ChimeSoundStruct installedChimeSounds[] = 0;
attribute int8u selectedChime = 1;
attribute boolean enabled = 2;
@@ -6869,7 +6317,12 @@ cluster Chime = 1366 {
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
- command PlayChimeSound(): DefaultSuccess = 0;
+ request struct PlayChimeSoundRequest {
+ optional int8u chimeID = 0;
+ }
+
+ /** This command will play the currently selected chime or the chime passed in. */
+ command PlayChimeSound(PlayChimeSoundRequest): DefaultSuccess = 0;
}
/** This Cluster is used to manage TLS Client Certificates and to provision
@@ -8604,7 +8057,7 @@ endpoint 1 {
ram attribute defaultSensitivityLevel default = 2;
ram attribute alarmsActive;
ram attribute alarmsSuppressed;
- persist attribute alarmsEnabled;
+ ram attribute alarmsEnabled;
ram attribute alarmsSupported default = 0x03;
ram attribute sensorFault default = 0;
callback attribute generatedCommandList;
@@ -9154,109 +8607,6 @@ endpoint 1 {
handle command Sleep;
}
- server cluster CameraAvStreamManagement {
- callback attribute maxConcurrentEncoders;
- callback attribute maxEncodedPixelRate;
- callback attribute videoSensorParams;
- callback attribute nightVisionUsesInfrared;
- callback attribute minViewportResolution;
- callback attribute rateDistortionTradeOffPoints;
- callback attribute maxContentBufferSize;
- callback attribute microphoneCapabilities;
- callback attribute speakerCapabilities;
- callback attribute twoWayTalkSupport;
- callback attribute snapshotCapabilities;
- callback attribute maxNetworkBandwidth;
- callback attribute currentFrameRate;
- callback attribute HDRModeEnabled;
- callback attribute supportedStreamUsages;
- callback attribute allocatedVideoStreams;
- callback attribute allocatedAudioStreams;
- callback attribute allocatedSnapshotStreams;
- callback attribute streamUsagePriorities;
- callback attribute softRecordingPrivacyModeEnabled;
- callback attribute softLivestreamPrivacyModeEnabled;
- callback attribute hardPrivacyModeOn;
- callback attribute nightVision;
- callback attribute nightVisionIllum;
- callback attribute viewport;
- callback attribute speakerMuted;
- callback attribute speakerVolumeLevel;
- callback attribute speakerMaxLevel;
- callback attribute speakerMinLevel;
- callback attribute microphoneMuted;
- callback attribute microphoneVolumeLevel;
- callback attribute microphoneMaxLevel;
- callback attribute microphoneMinLevel;
- callback attribute microphoneAGCEnabled;
- callback attribute imageRotation;
- callback attribute imageFlipHorizontal;
- callback attribute imageFlipVertical;
- callback attribute localVideoRecordingEnabled;
- callback attribute localSnapshotRecordingEnabled;
- callback attribute statusLightEnabled;
- callback attribute statusLightBrightness;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute attributeList;
- callback attribute featureMap;
- ram attribute clusterRevision default = 1;
-
- handle command SnapshotStreamAllocate;
- handle command SnapshotStreamAllocateResponse;
- handle command SnapshotStreamDeallocate;
- handle command SetStreamPriorities;
- handle command CaptureSnapshot;
- handle command CaptureSnapshotResponse;
- }
-
- server cluster CameraAvSettingsUserLevelManagement {
- callback attribute MPTZPosition;
- ram attribute maxPresets default = 5;
- callback attribute MPTZPresets;
- callback attribute DPTZStreams;
- ram attribute zoomMax default = 100;
- ram attribute tiltMin default = -90;
- ram attribute tiltMax default = 90;
- ram attribute panMin default = -180;
- ram attribute panMax default = 180;
- ram attribute movementState;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute attributeList;
- ram attribute featureMap default = 0;
- ram attribute clusterRevision default = 1;
-
- handle command MPTZSetPosition;
- handle command MPTZRelativeMove;
- handle command MPTZMoveToPreset;
- handle command MPTZSavePreset;
- handle command MPTZRemovePreset;
- handle command DPTZSetViewport;
- handle command DPTZRelativeMove;
- }
-
- server cluster PushAvStreamTransport {
- emits event PushTransportBegin;
- emits event PushTransportEnd;
- callback attribute supportedFormats;
- callback attribute currentConnections;
- callback attribute generatedCommandList;
- callback attribute acceptedCommandList;
- callback attribute attributeList;
- ram attribute featureMap default = 0;
- ram attribute clusterRevision default = 1;
-
- handle command AllocatePushTransport;
- handle command AllocatePushTransportResponse;
- handle command DeallocatePushTransport;
- handle command ModifyPushTransport;
- handle command SetTransportStatus;
- handle command ManuallyTriggerTransport;
- handle command FindTransport;
- handle command FindTransportResponse;
- }
-
server cluster Chime {
callback attribute installedChimeSounds;
callback attribute selectedChime;
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
index 79096ff35aa..578c34942b2 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
@@ -11579,7 +11579,7 @@
"side": "server",
"type": "AlarmModeBitmap",
"included": 1,
- "storageOption": "NVM",
+ "storageOption": "RAM",
"singleton": 0,
"bounded": 0,
"defaultValue": "",
@@ -18870,70 +18870,29 @@
]
},
{
- "name": "Camera AV Stream Management",
- "code": 1361,
+ "name": "Chime",
+ "code": 1366,
"mfgCode": null,
- "define": "CAMERA_AV_STREAM_MANAGEMENT_CLUSTER",
+ "define": "CHIME_CLUSTER",
"side": "server",
"enabled": 1,
- "apiMaturity": "provisional",
"commands": [
{
- "name": "SnapshotStreamAllocate",
- "code": 7,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "SnapshotStreamAllocateResponse",
- "code": 8,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
- },
- {
- "name": "SnapshotStreamDeallocate",
- "code": 10,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "SetStreamPriorities",
- "code": 11,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "CaptureSnapshot",
- "code": 12,
+ "name": "PlayChimeSound",
+ "code": 0,
"mfgCode": null,
"source": "client",
"isIncoming": 1,
"isEnabled": 1
- },
- {
- "name": "CaptureSnapshotResponse",
- "code": 13,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
}
],
"attributes": [
{
- "name": "MaxConcurrentEncoders",
+ "name": "InstalledChimeSounds",
"code": 0,
"mfgCode": null,
"side": "server",
- "type": "int8u",
+ "type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -18945,11 +18904,11 @@
"reportableChange": 0
},
{
- "name": "MaxEncodedPixelRate",
+ "name": "SelectedChime",
"code": 1,
"mfgCode": null,
"side": "server",
- "type": "int32u",
+ "type": "int8u",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -18961,11 +18920,11 @@
"reportableChange": 0
},
{
- "name": "VideoSensorParams",
+ "name": "Enabled",
"code": 2,
"mfgCode": null,
"side": "server",
- "type": "VideoSensorParamsStruct",
+ "type": "boolean",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -18977,11 +18936,11 @@
"reportableChange": 0
},
{
- "name": "NightVisionUsesInfrared",
- "code": 3,
+ "name": "GeneratedCommandList",
+ "code": 65528,
"mfgCode": null,
"side": "server",
- "type": "boolean",
+ "type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -18993,11 +18952,11 @@
"reportableChange": 0
},
{
- "name": "MinViewportResolution",
- "code": 4,
+ "name": "AcceptedCommandList",
+ "code": 65529,
"mfgCode": null,
"side": "server",
- "type": "VideoResolutionStruct",
+ "type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -19009,8 +18968,8 @@
"reportableChange": 0
},
{
- "name": "RateDistortionTradeOffPoints",
- "code": 5,
+ "name": "AttributeList",
+ "code": 65531,
"mfgCode": null,
"side": "server",
"type": "array",
@@ -19025,43 +18984,175 @@
"reportableChange": 0
},
{
- "name": "MaxContentBufferSize",
- "code": 6,
+ "name": "FeatureMap",
+ "code": 65532,
"mfgCode": null,
"side": "server",
- "type": "int32u",
+ "type": "bitmap32",
"included": 1,
- "storageOption": "External",
+ "storageOption": "RAM",
"singleton": 0,
"bounded": 0,
- "defaultValue": null,
+ "defaultValue": "0",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
- "name": "MicrophoneCapabilities",
- "code": 7,
+ "name": "ClusterRevision",
+ "code": 65533,
"mfgCode": null,
"side": "server",
- "type": "AudioCapabilitiesStruct",
+ "type": "int16u",
"included": 1,
- "storageOption": "External",
+ "storageOption": "RAM",
"singleton": 0,
"bounded": 0,
- "defaultValue": null,
+ "defaultValue": "1",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
+ }
+ ]
+ },
+ {
+ "name": "TLS Certificate Management",
+ "code": 2049,
+ "mfgCode": null,
+ "define": "TLS_CERTIFICATE_MANAGEMENT_CLUSTER",
+ "side": "server",
+ "enabled": 1,
+ "commands": [
+ {
+ "name": "ProvisionRootCertificate",
+ "code": 0,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "ProvisionRootCertificateResponse",
+ "code": 1,
+ "mfgCode": null,
+ "source": "server",
+ "isIncoming": 0,
+ "isEnabled": 1
+ },
+ {
+ "name": "FindRootCertificate",
+ "code": 2,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "FindRootCertificateResponse",
+ "code": 3,
+ "mfgCode": null,
+ "source": "server",
+ "isIncoming": 0,
+ "isEnabled": 1
+ },
+ {
+ "name": "LookupRootCertificate",
+ "code": 4,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "LookupRootCertificateResponse",
+ "code": 5,
+ "mfgCode": null,
+ "source": "server",
+ "isIncoming": 0,
+ "isEnabled": 1
+ },
+ {
+ "name": "RemoveRootCertificate",
+ "code": 6,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "ClientCSR",
+ "code": 7,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
},
{
- "name": "SpeakerCapabilities",
+ "name": "ClientCSRResponse",
"code": 8,
"mfgCode": null,
+ "source": "server",
+ "isIncoming": 0,
+ "isEnabled": 1
+ },
+ {
+ "name": "ProvisionClientCertificate",
+ "code": 9,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "FindClientCertificate",
+ "code": 10,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "FindClientCertificateResponse",
+ "code": 11,
+ "mfgCode": null,
+ "source": "server",
+ "isIncoming": 0,
+ "isEnabled": 1
+ },
+ {
+ "name": "LookupClientCertificate",
+ "code": 12,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ },
+ {
+ "name": "LookupClientCertificateResponse",
+ "code": 13,
+ "mfgCode": null,
+ "source": "server",
+ "isIncoming": 0,
+ "isEnabled": 1
+ },
+ {
+ "name": "RemoveClientCertificate",
+ "code": 14,
+ "mfgCode": null,
+ "source": "client",
+ "isIncoming": 1,
+ "isEnabled": 1
+ }
+ ],
+ "attributes": [
+ {
+ "name": "MaxRootCertificates",
+ "code": 0,
+ "mfgCode": null,
"side": "server",
- "type": "AudioCapabilitiesStruct",
+ "type": "int8u",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -19073,11 +19164,11 @@
"reportableChange": 0
},
{
- "name": "TwoWayTalkSupport",
- "code": 9,
+ "name": "ProvisionedRootCertificates",
+ "code": 1,
"mfgCode": null,
"side": "server",
- "type": "TwoWayTalkSupportTypeEnum",
+ "type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -19089,11 +19180,11 @@
"reportableChange": 0
},
{
- "name": "SnapshotCapabilities",
- "code": 10,
+ "name": "MaxClientCertificates",
+ "code": 2,
"mfgCode": null,
"side": "server",
- "type": "array",
+ "type": "int8u",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -19105,11 +19196,11 @@
"reportableChange": 0
},
{
- "name": "MaxNetworkBandwidth",
- "code": 11,
+ "name": "ProvisionedClientCertificates",
+ "code": 3,
"mfgCode": null,
"side": "server",
- "type": "int32u",
+ "type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -19121,11 +19212,11 @@
"reportableChange": 0
},
{
- "name": "CurrentFrameRate",
- "code": 12,
+ "name": "GeneratedCommandList",
+ "code": 65528,
"mfgCode": null,
"side": "server",
- "type": "int16u",
+ "type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -19137,11 +19228,11 @@
"reportableChange": 0
},
{
- "name": "HDRModeEnabled",
- "code": 13,
+ "name": "AcceptedCommandList",
+ "code": 65529,
"mfgCode": null,
"side": "server",
- "type": "boolean",
+ "type": "array",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -19153,8 +19244,8 @@
"reportableChange": 0
},
{
- "name": "SupportedStreamUsages",
- "code": 14,
+ "name": "AttributeList",
+ "code": 65531,
"mfgCode": null,
"side": "server",
"type": "array",
@@ -19169,1431 +19260,27 @@
"reportableChange": 0
},
{
- "name": "AllocatedVideoStreams",
- "code": 15,
+ "name": "FeatureMap",
+ "code": 65532,
"mfgCode": null,
"side": "server",
- "type": "array",
+ "type": "bitmap32",
"included": 1,
- "storageOption": "External",
+ "storageOption": "RAM",
"singleton": 0,
"bounded": 0,
- "defaultValue": null,
+ "defaultValue": "0",
"reportable": 1,
"minInterval": 1,
"maxInterval": 65534,
"reportableChange": 0
},
{
- "name": "AllocatedAudioStreams",
- "code": 16,
+ "name": "ClusterRevision",
+ "code": 65533,
"mfgCode": null,
"side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AllocatedSnapshotStreams",
- "code": 17,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "StreamUsagePriorities",
- "code": 18,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "SoftRecordingPrivacyModeEnabled",
- "code": 19,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "SoftLivestreamPrivacyModeEnabled",
- "code": 20,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "HardPrivacyModeOn",
- "code": 21,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "NightVision",
- "code": 22,
- "mfgCode": null,
- "side": "server",
- "type": "TriStateAutoEnum",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "NightVisionIllum",
- "code": 23,
- "mfgCode": null,
- "side": "server",
- "type": "TriStateAutoEnum",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "Viewport",
- "code": 24,
- "mfgCode": null,
- "side": "server",
- "type": "ViewportStruct",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "SpeakerMuted",
- "code": 25,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "SpeakerVolumeLevel",
- "code": 26,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "SpeakerMaxLevel",
- "code": 27,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "SpeakerMinLevel",
- "code": 28,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "MicrophoneMuted",
- "code": 29,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "MicrophoneVolumeLevel",
- "code": 30,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "MicrophoneMaxLevel",
- "code": 31,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "MicrophoneMinLevel",
- "code": 32,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "MicrophoneAGCEnabled",
- "code": 33,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ImageRotation",
- "code": 34,
- "mfgCode": null,
- "side": "server",
- "type": "int16u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ImageFlipHorizontal",
- "code": 35,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ImageFlipVertical",
- "code": 36,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "LocalVideoRecordingEnabled",
- "code": 37,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "LocalSnapshotRecordingEnabled",
- "code": 38,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "StatusLightEnabled",
- "code": 39,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "StatusLightBrightness",
- "code": 40,
- "mfgCode": null,
- "side": "server",
- "type": "ThreeLevelAutoEnum",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "GeneratedCommandList",
- "code": 65528,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AcceptedCommandList",
- "code": 65529,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AttributeList",
- "code": 65531,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "FeatureMap",
- "code": 65532,
- "mfgCode": null,
- "side": "server",
- "type": "bitmap32",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ClusterRevision",
- "code": 65533,
- "mfgCode": null,
- "side": "server",
- "type": "int16u",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "1",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- }
- ]
- },
- {
- "name": "Camera AV Settings User Level Management",
- "code": 1362,
- "mfgCode": null,
- "define": "CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER",
- "side": "server",
- "enabled": 1,
- "apiMaturity": "provisional",
- "commands": [
- {
- "name": "MPTZSetPosition",
- "code": 0,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "MPTZRelativeMove",
- "code": 1,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "MPTZMoveToPreset",
- "code": 2,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "MPTZSavePreset",
- "code": 3,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "MPTZRemovePreset",
- "code": 4,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "DPTZSetViewport",
- "code": 5,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "DPTZRelativeMove",
- "code": 6,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- }
- ],
- "attributes": [
- {
- "name": "MPTZPosition",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "type": "MPTZStruct",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "MaxPresets",
- "code": 1,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "5",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "MPTZPresets",
- "code": 2,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "DPTZStreams",
- "code": 3,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ZoomMax",
- "code": 4,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "100",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "TiltMin",
- "code": 5,
- "mfgCode": null,
- "side": "server",
- "type": "int16s",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "-90",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "TiltMax",
- "code": 6,
- "mfgCode": null,
- "side": "server",
- "type": "int16s",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "90",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "PanMin",
- "code": 7,
- "mfgCode": null,
- "side": "server",
- "type": "int16s",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "-180",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "PanMax",
- "code": 8,
- "mfgCode": null,
- "side": "server",
- "type": "int16s",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "180",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "MovementState",
- "code": 9,
- "mfgCode": null,
- "side": "server",
- "type": "PhysicalMovementEnum",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "GeneratedCommandList",
- "code": 65528,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AcceptedCommandList",
- "code": 65529,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AttributeList",
- "code": 65531,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "FeatureMap",
- "code": 65532,
- "mfgCode": null,
- "side": "server",
- "type": "bitmap32",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "0",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ClusterRevision",
- "code": 65533,
- "mfgCode": null,
- "side": "server",
- "type": "int16u",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "1",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- }
- ]
- },
- {
- "name": "Push AV Stream Transport",
- "code": 1365,
- "mfgCode": null,
- "define": "PUSH_AV_STREAM_TRANSPORT_CLUSTER",
- "side": "server",
- "enabled": 1,
- "apiMaturity": "provisional",
- "commands": [
- {
- "name": "AllocatePushTransport",
- "code": 0,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "AllocatePushTransportResponse",
- "code": 1,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
- },
- {
- "name": "DeallocatePushTransport",
- "code": 2,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "ModifyPushTransport",
- "code": 3,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "SetTransportStatus",
- "code": 4,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "ManuallyTriggerTransport",
- "code": 5,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "FindTransport",
- "code": 6,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "FindTransportResponse",
- "code": 7,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
- }
- ],
- "attributes": [
- {
- "name": "SupportedFormats",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "CurrentConnections",
- "code": 1,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "GeneratedCommandList",
- "code": 65528,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AcceptedCommandList",
- "code": 65529,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AttributeList",
- "code": 65531,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "FeatureMap",
- "code": 65532,
- "mfgCode": null,
- "side": "server",
- "type": "bitmap32",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "0",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ClusterRevision",
- "code": 65533,
- "mfgCode": null,
- "side": "server",
- "type": "int16u",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "1",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- }
- ],
- "events": [
- {
- "name": "PushTransportBegin",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "included": 1
- },
- {
- "name": "PushTransportEnd",
- "code": 1,
- "mfgCode": null,
- "side": "server",
- "included": 1
- }
- ]
- },
- {
- "name": "Chime",
- "code": 1366,
- "mfgCode": null,
- "define": "CHIME_CLUSTER",
- "side": "server",
- "enabled": 1,
- "apiMaturity": "provisional",
- "commands": [
- {
- "name": "PlayChimeSound",
- "code": 0,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- }
- ],
- "attributes": [
- {
- "name": "InstalledChimeSounds",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "SelectedChime",
- "code": 1,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "Enabled",
- "code": 2,
- "mfgCode": null,
- "side": "server",
- "type": "boolean",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "GeneratedCommandList",
- "code": 65528,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AcceptedCommandList",
- "code": 65529,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AttributeList",
- "code": 65531,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "FeatureMap",
- "code": 65532,
- "mfgCode": null,
- "side": "server",
- "type": "bitmap32",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "0",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ClusterRevision",
- "code": 65533,
- "mfgCode": null,
- "side": "server",
- "type": "int16u",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "1",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- }
- ]
- },
- {
- "name": "TLS Certificate Management",
- "code": 2049,
- "mfgCode": null,
- "define": "TLS_CERTIFICATE_MANAGEMENT_CLUSTER",
- "side": "server",
- "enabled": 1,
- "apiMaturity": "provisional",
- "commands": [
- {
- "name": "ProvisionRootCertificate",
- "code": 0,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "ProvisionRootCertificateResponse",
- "code": 1,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
- },
- {
- "name": "FindRootCertificate",
- "code": 2,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "FindRootCertificateResponse",
- "code": 3,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
- },
- {
- "name": "LookupRootCertificate",
- "code": 4,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "LookupRootCertificateResponse",
- "code": 5,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
- },
- {
- "name": "RemoveRootCertificate",
- "code": 6,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "ClientCSR",
- "code": 7,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "ClientCSRResponse",
- "code": 8,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
- },
- {
- "name": "ProvisionClientCertificate",
- "code": 9,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "FindClientCertificate",
- "code": 10,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "FindClientCertificateResponse",
- "code": 11,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
- },
- {
- "name": "LookupClientCertificate",
- "code": 12,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- },
- {
- "name": "LookupClientCertificateResponse",
- "code": 13,
- "mfgCode": null,
- "source": "server",
- "isIncoming": 0,
- "isEnabled": 1
- },
- {
- "name": "RemoveClientCertificate",
- "code": 14,
- "mfgCode": null,
- "source": "client",
- "isIncoming": 1,
- "isEnabled": 1
- }
- ],
- "attributes": [
- {
- "name": "MaxRootCertificates",
- "code": 0,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ProvisionedRootCertificates",
- "code": 1,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "MaxClientCertificates",
- "code": 2,
- "mfgCode": null,
- "side": "server",
- "type": "int8u",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ProvisionedClientCertificates",
- "code": 3,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "GeneratedCommandList",
- "code": 65528,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AcceptedCommandList",
- "code": 65529,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "AttributeList",
- "code": 65531,
- "mfgCode": null,
- "side": "server",
- "type": "array",
- "included": 1,
- "storageOption": "External",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": null,
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "FeatureMap",
- "code": 65532,
- "mfgCode": null,
- "side": "server",
- "type": "bitmap32",
- "included": 1,
- "storageOption": "RAM",
- "singleton": 0,
- "bounded": 0,
- "defaultValue": "0",
- "reportable": 1,
- "minInterval": 1,
- "maxInterval": 65534,
- "reportableChange": 0
- },
- {
- "name": "ClusterRevision",
- "code": 65533,
- "mfgCode": null,
- "side": "server",
- "type": "int16u",
+ "type": "int16u",
"included": 1,
"storageOption": "External",
"singleton": 0,
@@ -20613,7 +19300,6 @@
"define": "TLS_CLIENT_MANAGEMENT_CLUSTER",
"side": "server",
"enabled": 1,
- "apiMaturity": "provisional",
"commands": [
{
"name": "ProvisionEndpoint",
diff --git a/examples/all-clusters-app/all-clusters-common/include/camera-av-settings-user-level-management-instance.h b/examples/all-clusters-app/all-clusters-common/include/camera-av-settings-user-level-management-instance.h
deleted file mode 100644
index 848f623f8b4..00000000000
--- a/examples/all-clusters-app/all-clusters-common/include/camera-av-settings-user-level-management-instance.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *
- * Copyright (c) 2025 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
-
-namespace chip {
-namespace app {
-namespace Clusters {
-namespace CameraAvSettingsUserLevelManagement {
-
-class AVSettingsUserLevelManagementDelegate : public Delegate
-{
-public:
- AVSettingsUserLevelManagementDelegate() = default;
- ~AVSettingsUserLevelManagementDelegate() = default;
-
- void ShutdownApp() override;
-
- bool CanChangeMPTZ() override;
-
- CHIP_ERROR LoadMPTZPresets(std::vector & mptzPresetHelpers) override;
- CHIP_ERROR LoadDPTZStreams(std::vector & dptzStreams) override;
- CHIP_ERROR PersistentAttributesLoadedCallback() override;
-
- virtual void VideoStreamAllocated(uint16_t aStreamID) override;
- virtual void VideoStreamDeallocated(uint16_t aStreamID) override;
- virtual void DefaultViewportUpdated(Globals::Structs::ViewportStruct::Type aViewport) override;
-
- // To be invoked by the Camera App once a physical PTZ action has been completed. This is expected to be a discrete period of
- // time after a request is made for PTZ via the HAL. This results in the request command receiving an appropriate status
- // response.
- void OnPhysicalMoveCompleted(Protocols::InteractionModel::Status status);
-
- void CancelActiveTimers();
-
- /**
- * delegate command handlers
- */
- Protocols::InteractionModel::Status MPTZSetPosition(Optional aPan, Optional aTilt, Optional aZoom,
- PhysicalPTZCallback * callback) override;
- Protocols::InteractionModel::Status MPTZRelativeMove(Optional aPan, Optional aTilt, Optional aZoom,
- PhysicalPTZCallback * callback) override;
- Protocols::InteractionModel::Status MPTZMoveToPreset(uint8_t aPreset, Optional aPan, Optional aTilt,
- Optional aZoom, PhysicalPTZCallback * callback) override;
- Protocols::InteractionModel::Status MPTZSavePreset(uint8_t aPreset) override;
- Protocols::InteractionModel::Status MPTZRemovePreset(uint8_t aPreset) override;
- Protocols::InteractionModel::Status DPTZSetViewport(uint16_t aVideoStreamID,
- Globals::Structs::ViewportStruct::Type aViewport) override;
- Protocols::InteractionModel::Status DPTZRelativeMove(uint16_t aVideoStreamID, Optional aDeltaX,
- Optional aDeltaY, Optional aZoomDelta,
- Globals::Structs::ViewportStruct::Type & aViewport) override;
-
-private:
- PhysicalPTZCallback * mCallback = nullptr;
-};
-
-void Shutdown();
-
-} // namespace CameraAvSettingsUserLevelManagement
-} // namespace Clusters
-} // namespace app
-} // namespace chip
diff --git a/examples/all-clusters-app/all-clusters-common/include/camera-av-stream-delegate-impl.h b/examples/all-clusters-app/all-clusters-common/include/camera-av-stream-delegate-impl.h
deleted file mode 100644
index 651275da5d6..00000000000
--- a/examples/all-clusters-app/all-clusters-common/include/camera-av-stream-delegate-impl.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- *
- * Copyright (c) 2025 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
-#include
-
-namespace chip {
-namespace app {
-namespace Clusters {
-namespace CameraAvStreamManagement {
-
-constexpr uint8_t kMaxVideoStreams = 10; // Maximum number of pre-allocated streams
-constexpr uint16_t kInvalidStreamID = 65500;
-
-struct VideoStream
-{
- uint16_t id; // Stream ID
- bool isAllocated; // Flag to indicate if the stream is allocated
- VideoCodecEnum codec; // Codec information (e.g., "H.264", "HEVC")
- uint16_t frameRate; // frame rate
-};
-
-struct AudioStream
-{
- uint16_t id; // Stream ID
- bool isAllocated; // Flag to indicate if the stream is allocated
- AudioCodecEnum codec; // Codec information (e.g., "OPUS", "AACLC")
- uint8_t channelCount; // channel count
-};
-
-struct SnapshotStream
-{
- uint16_t id; // Stream ID
- bool isAllocated; // Flag to indicate if the stream is allocated
- ImageCodecEnum codec; // Codec information (e.g., "JPEG")
- uint8_t quality; // Quality
-};
-
-/**
- * The application delegate to define the options & implement commands.
- */
-class CameraAVStreamManager : public CameraAVStreamMgmtDelegate
-{
-public:
- Protocols::InteractionModel::Status VideoStreamAllocate(const VideoStreamStruct & allocateArgs,
- uint16_t & outStreamID) override;
-
- Protocols::InteractionModel::Status VideoStreamModify(const uint16_t streamID, const chip::Optional waterMarkEnabled,
- const chip::Optional osdEnabled) override;
-
- Protocols::InteractionModel::Status VideoStreamDeallocate(const uint16_t streamID) override;
-
- Protocols::InteractionModel::Status AudioStreamAllocate(const AudioStreamStruct & allocateArgs,
- uint16_t & outStreamID) override;
-
- Protocols::InteractionModel::Status AudioStreamDeallocate(const uint16_t streamID) override;
-
- Protocols::InteractionModel::Status SnapshotStreamAllocate(const SnapshotStreamAllocateArgs & allocateArgs,
- uint16_t & outStreamID) override;
-
- Protocols::InteractionModel::Status SnapshotStreamModify(const uint16_t streamID, const chip::Optional waterMarkEnabled,
- const chip::Optional osdEnabled) override;
-
- Protocols::InteractionModel::Status SnapshotStreamDeallocate(const uint16_t streamID) override;
-
- void OnVideoStreamAllocated(const VideoStreamStruct & allocatedStream, StreamAllocationAction action) override;
-
- void OnStreamUsagePrioritiesChanged() override;
-
- void OnAttributeChanged(AttributeId attributeId) override;
-
- Protocols::InteractionModel::Status CaptureSnapshot(const DataModel::Nullable streamID,
- const VideoResolutionStruct & resolution,
- ImageSnapshot & outImageSnapshot) override;
-
- CHIP_ERROR PersistentAttributesLoadedCallback() override;
-
- CHIP_ERROR OnTransportAcquireAudioVideoStreams(uint16_t audioStreamID, uint16_t videoStreamID) override;
-
- CHIP_ERROR OnTransportReleaseAudioVideoStreams(uint16_t audioStreamID, uint16_t videoStreamID) override;
-
- const std::vector & GetAllocatedVideoStreams() const override;
-
- const std::vector & GetAllocatedAudioStreams() const override;
-
- void GetBandwidthForStreams(const Optional> & videoStreamId,
- const Optional> & audioStreamId, uint32_t & outBandwidthbps);
- void Init();
-
- CameraAVStreamManager() = default;
- ~CameraAVStreamManager() = default;
-
- // static inline CameraAVStreamManager & GetInstance() { return sCameraAVStreamMgrInstance; }
-
-private:
- std::vector videoStreams; // Vector to hold available video streams
- std::vector audioStreams; // Vector to hold available audio streams
- std::vector snapshotStreams; // Vector to hold available snapshot streams
- std::vector videoStreamStructs; // Vector to hold allocated video streams
- std::vector audioStreamStructs; // Vector to hold allocated audio streams
- void InitializeAvailableVideoStreams();
- void InitializeAvailableAudioStreams();
- void InitializeAvailableSnapshotStreams();
-};
-
-} // namespace CameraAvStreamManagement
-} // namespace Clusters
-} // namespace app
-} // namespace chip
diff --git a/examples/all-clusters-app/all-clusters-common/include/chime-instance.h b/examples/all-clusters-app/all-clusters-common/include/chime-instance.h
index 5a4bc5e71f1..e3204fab184 100644
--- a/examples/all-clusters-app/all-clusters-common/include/chime-instance.h
+++ b/examples/all-clusters-app/all-clusters-common/include/chime-instance.h
@@ -39,7 +39,7 @@ class ChimeCommandDelegate : public ChimeDelegate
CHIP_ERROR GetChimeIDByIndex(uint8_t chimeIndex, uint8_t & chimeID);
- Protocols::InteractionModel::Status PlayChimeSound();
+ Protocols::InteractionModel::Status PlayChimeSound(uint8_t chimeID);
ChimeCommandDelegate() = default;
~ChimeCommandDelegate() = default;
diff --git a/examples/all-clusters-app/all-clusters-common/include/push-av-stream-transport-delegate-impl.h b/examples/all-clusters-app/all-clusters-common/include/push-av-stream-transport-delegate-impl.h
deleted file mode 100644
index c6ee97de503..00000000000
--- a/examples/all-clusters-app/all-clusters-common/include/push-av-stream-transport-delegate-impl.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- *
- * Copyright (c) 2025 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
-#include
-
-namespace chip {
-namespace app {
-namespace Clusters {
-namespace PushAvStreamTransport {
-
-struct PushAvStream
-{
- uint16_t id;
- TransportOptionsStruct transportOptions;
- TransportStatusEnum transportStatus;
- PushAvStreamTransportStatusEnum connectionStatus;
-};
-
-/**
- * The application delegate to define the options & implement commands.
- */
-class PushAvStreamTransportManager : public PushAvStreamTransportDelegate
-{
-public:
- Protocols::InteractionModel::Status AllocatePushTransport(const TransportOptionsStruct & transportOptions,
- const uint16_t connectionID,
- FabricIndex accessingFabricIndex) override;
-
- Protocols::InteractionModel::Status DeallocatePushTransport(const uint16_t connectionID) override;
-
- Protocols::InteractionModel::Status ModifyPushTransport(const uint16_t connectionID,
- const TransportOptionsStorage transportOptions) override;
-
- Protocols::InteractionModel::Status SetTransportStatus(const std::vector connectionIDList,
- TransportStatusEnum transportStatus) override;
-
- Protocols::InteractionModel::Status ManuallyTriggerTransport(
- const uint16_t connectionID, TriggerActivationReasonEnum activationReason,
- const Optional & timeControl) override;
-
- Protocols::InteractionModel::Status
- ValidateBandwidthLimit(StreamUsageEnum streamUsage, const Optional> & videoStreamId,
- const Optional> & audioStreamId) override;
-
- Protocols::InteractionModel::Status SelectVideoStream(StreamUsageEnum streamUsage, uint16_t & videoStreamId) override;
-
- bool ValidateStreamUsage(StreamUsageEnum streamUsage) override;
-
- bool ValidateSegmentDuration(uint16_t segmentDuration, const Optional> & videoStreamId) override;
-
- Protocols::InteractionModel::Status SelectAudioStream(StreamUsageEnum streamUsage, uint16_t & audioStreamId) override;
-
- Protocols::InteractionModel::Status SetVideoStream(uint16_t videoStreamId) override;
-
- Protocols::InteractionModel::Status SetAudioStream(uint16_t audioStreamId) override;
-
- Protocols::InteractionModel::Status ValidateZoneId(uint16_t zoneId) override;
-
- bool ValidateMotionZoneListSize(size_t zoneListSize) override;
-
- PushAvStreamTransportStatusEnum GetTransportBusyStatus(const uint16_t connectionID) override;
-
- void OnAttributeChanged(AttributeId attributeId) override;
-
- CHIP_ERROR LoadCurrentConnections(std::vector & currentConnections) override;
-
- CHIP_ERROR PersistentAttributesLoadedCallback() override;
-
- void SetTLSCerts(Tls::CertificateTable::BufferedClientCert & clientCertEntry,
- Tls::CertificateTable::BufferedRootCert & rootCertEntry) override
- {
- // Handle TLS certificates if needed for implementation
- }
-
- CHIP_ERROR IsHardPrivacyModeActive(bool & isActive) override;
-
- CHIP_ERROR IsSoftRecordingPrivacyModeActive(bool & isActive) override;
-
- CHIP_ERROR IsSoftLivestreamPrivacyModeActive(bool & isActive) override;
-
- void SetPushAvStreamTransportServer(PushAvStreamTransportServer * serverLogic) override
- {
- // Store pointer to server logic if needed for implementation
- }
-
- void Init();
- PushAvStreamTransportManager() = default;
- ~PushAvStreamTransportManager() = default;
-
-private:
- std::vector pushavStreams;
-};
-
-} // namespace PushAvStreamTransport
-} // namespace Clusters
-} // namespace app
-} // namespace chip
diff --git a/examples/all-clusters-app/all-clusters-common/include/tls-certificate-management-instance.h b/examples/all-clusters-app/all-clusters-common/include/tls-certificate-management-instance.h
index 526a1b493e9..1692522722e 100644
--- a/examples/all-clusters-app/all-clusters-common/include/tls-certificate-management-instance.h
+++ b/examples/all-clusters-app/all-clusters-common/include/tls-certificate-management-instance.h
@@ -18,7 +18,7 @@
#pragma once
-#include
+#include
namespace chip {
namespace app {
@@ -27,7 +27,7 @@ namespace Clusters {
/**
* The application delegate to define the options & implement commands.
*/
-class TlsCertificateManagementCommandDelegate : public TlsCertificateManagementDelegate
+class TlsCertificateManagementCommandDelegate : public TLSCertificateManagementDelegate
{
static TlsCertificateManagementCommandDelegate instance;
Tls::CertificateTable & mCertificateTable;
@@ -75,6 +75,12 @@ class TlsCertificateManagementCommandDelegate : public TlsCertificateManagementD
static inline TlsCertificateManagementCommandDelegate & GetInstance() { return instance; }
};
+/**
+ * Initialize the TLS Certificate Management cluster with application-specific delegate and certificate table.
+ * MUST be called before server initialization (e.g. in ApplicationInit()).
+ */
+void InitializeTlsCertificateManagement();
+
} // namespace Clusters
} // namespace app
} // namespace chip
diff --git a/examples/all-clusters-app/all-clusters-common/include/tls-client-management-instance.h b/examples/all-clusters-app/all-clusters-common/include/tls-client-management-instance.h
index c62b3fbe86d..f1c56394e57 100644
--- a/examples/all-clusters-app/all-clusters-common/include/tls-client-management-instance.h
+++ b/examples/all-clusters-app/all-clusters-common/include/tls-client-management-instance.h
@@ -18,9 +18,8 @@
#pragma once
-#include
+#include
#include
-#include
#include
namespace chip {
@@ -48,10 +47,10 @@ struct TlsEndpointId
bool operator==(const TlsEndpointId & other) const { return (mEndpointId == other.mEndpointId); }
};
-class EndpointTable : public app::Storage::FabricTableImpl
+class EndpointTable : public app::Storage::FabricTableImpl
{
public:
- using Super = app::Storage::FabricTableImpl;
+ using Super = app::Storage::FabricTableImpl;
EndpointTable() : Super(kMaxProvisionedEndpoints, UINT16_MAX) {}
~EndpointTable() { Finish(); };
@@ -60,7 +59,7 @@ class EndpointTable : public app::Storage::FabricTableImpl airQualityFeatures(Feature::kModerate, Feature::kFair, Feature::kVeryPoor,
Feature::kExtremelyPoor);
gAirQualityCluster = new Instance(1, airQualityFeatures);
- gAirQualityCluster->Init();
+ TEMPORARY_RETURN_IGNORED gAirQualityCluster->Init();
}
void emberAfAirQualityClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp b/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp
index 761b96c69cd..c5050ade7cf 100644
--- a/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp
@@ -94,14 +94,16 @@ static void BoundDeviceChangedHandler(const Binding::TableEntry & binding, chip:
if (sSwitchOnOffState)
{
Clusters::OnOff::Commands::On::Type onCommand;
- Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
- binding.remote, onCommand, onSuccess, onFailure);
+ TEMPORARY_RETURN_IGNORED Controller::InvokeCommandRequest(peer_device->GetExchangeManager(),
+ peer_device->GetSecureSession().Value(), binding.remote,
+ onCommand, onSuccess, onFailure);
}
else
{
Clusters::OnOff::Commands::Off::Type offCommand;
- Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
- binding.remote, offCommand, onSuccess, onFailure);
+ TEMPORARY_RETURN_IGNORED Controller::InvokeCommandRequest(peer_device->GetExchangeManager(),
+ peer_device->GetSecureSession().Value(), binding.remote,
+ offCommand, onSuccess, onFailure);
}
}
}
@@ -114,7 +116,7 @@ static void BoundDeviceContextReleaseHandler(void * context)
static void InitBindingHandlerInternal(intptr_t arg)
{
auto & server = chip::Server::GetInstance();
- Binding::Manager::GetInstance().Init(
+ TEMPORARY_RETURN_IGNORED Binding::Manager::GetInstance().Init(
{ &server.GetFabricTable(), server.GetCASESessionManager(), &server.GetPersistentStorage() });
Binding::Manager::GetInstance().RegisterBoundDeviceChangedHandler(BoundDeviceChangedHandler);
Binding::Manager::GetInstance().RegisterBoundDeviceContextReleaseHandler(BoundDeviceContextReleaseHandler);
@@ -126,7 +128,7 @@ CHIP_ERROR InitBindingHandlers()
// so it requires the Server instance to be correctly initialized. Post the init function to
// the event queue so that everything is ready when initialization is conducted.
// TODO: Fix initialization order issue in Matter server.
- chip::DeviceLayer::PlatformMgr().ScheduleWork(InitBindingHandlerInternal);
+ TEMPORARY_RETURN_IGNORED chip::DeviceLayer::PlatformMgr().ScheduleWork(InitBindingHandlerInternal);
#if defined(ENABLE_CHIP_SHELL)
RegisterSwitchCommands();
#endif
diff --git a/examples/all-clusters-app/all-clusters-common/src/boolcfg-stub.cpp b/examples/all-clusters-app/all-clusters-common/src/boolcfg-stub.cpp
index fe2ec905068..c95dc63d5cd 100644
--- a/examples/all-clusters-app/all-clusters-common/src/boolcfg-stub.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/boolcfg-stub.cpp
@@ -32,12 +32,12 @@ bool HandleBooleanStateConfigurationTestEventTrigger(uint64_t eventTrigger)
{
case BooleanStateConfigurationTrigger::kSensorTrigger:
ChipLogProgress(Support, "[BooleanStateConfiguration-Test-Event] => Trigger sensor");
- SetAllEnabledAlarmsActive(1);
+ TEMPORARY_RETURN_IGNORED SetAllEnabledAlarmsActive(1);
break;
case BooleanStateConfigurationTrigger::kSensorUntrigger:
ChipLogProgress(Support, "[BooleanStateConfiguration-Test-Event] => Untrigger sensor");
- ClearAllAlarms(1);
+ TEMPORARY_RETURN_IGNORED ClearAllAlarms(1);
break;
default:
diff --git a/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp b/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp
index 64647b8080d..fe6a620d6ef 100644
--- a/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp
@@ -146,7 +146,7 @@ void emberAfActionsClusterInitCallback(EndpointId endpoint)
sActionsDelegateImpl = std::make_unique();
sActionsServer = std::make_unique(endpoint, *sActionsDelegateImpl.get());
- sActionsServer->Init();
+ TEMPORARY_RETURN_IGNORED sActionsServer->Init();
}
void emberAfActionsClusterShutdownCallback(EndpointId endpoint)
diff --git a/examples/all-clusters-app/all-clusters-common/src/camera-av-settings-user-level-management-stub.cpp b/examples/all-clusters-app/all-clusters-common/src/camera-av-settings-user-level-management-stub.cpp
deleted file mode 100644
index d770551998a..00000000000
--- a/examples/all-clusters-app/all-clusters-common/src/camera-av-settings-user-level-management-stub.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- *
- * Copyright (c) 2025 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
-
-using namespace chip;
-using namespace chip::app;
-using namespace chip::app::Clusters;
-using namespace chip::app::Clusters::CameraAvSettingsUserLevelManagement;
-
-using chip::Protocols::InteractionModel::Status;
-
-std::unique_ptr gDelegate;
-std::unique_ptr gAVSettingsUserLevelManagementCluster;
-static constexpr EndpointId kEndpointId = 1;
-
-static void onTimerExpiry(System::Layer * systemLayer, void * data);
-
-void Shutdown()
-{
- if (gAVSettingsUserLevelManagementCluster != nullptr)
- {
- gDelegate->CancelActiveTimers();
- gDelegate = nullptr;
- gAVSettingsUserLevelManagementCluster = nullptr;
- }
-}
-
-bool AVSettingsUserLevelManagementDelegate::CanChangeMPTZ()
-{
- // The server needs to verify that the camera is in a state whereby changing the MPTZ is possible.
- // Device specific logic will be required.
- return true;
-}
-
-void AVSettingsUserLevelManagementDelegate::VideoStreamAllocated(uint16_t aStreamID)
-{
- // The app needs to invoke this whenever the AV Stream Manager allocates a video stream; this informs the server of the
- // id that is now subject to DPTZ, and the default viewport of the device
- Globals::Structs::ViewportStruct::Type viewport = { 0, 0, 1920, 1080 };
- this->GetServer()->AddMoveCapableVideoStream(aStreamID, viewport);
-}
-
-void AVSettingsUserLevelManagementDelegate::VideoStreamDeallocated(uint16_t aStreamID)
-{
- // The app needs to invoke this whenever the AV Stream Manager deallocates a video stream; this informs the server of the
- // deallocated id that is now not subject to DPTZ
- this->GetServer()->RemoveMoveCapableVideoStream(aStreamID);
-}
-
-void AVSettingsUserLevelManagementDelegate::DefaultViewportUpdated(Globals::Structs::ViewportStruct::Type aViewport)
-{
- // The app needs to invoke this whenever the AV Stream Manager updates the device level default Viewport. This informs
- // the server of the new viewport that shall be appled to all known streams.
- this->GetServer()->UpdateMoveCapableVideoStreams(aViewport);
-}
-
-Status AVSettingsUserLevelManagementDelegate::MPTZSetPosition(Optional aPan, Optional aTilt,
- Optional aZoom, PhysicalPTZCallback * callback)
-{
- // The Cluster implementation has validated that the Feature Flags are set and the values themselves are in range. Do any needed
- // hardware interactions to actually set the camera to the new values of PTZ. Once the hardware has confirmed movements, invoke
- // the callback. The server itself will persist the new values.
- //
- mCallback = callback;
- DeviceLayer::SystemLayer().StartTimer(System::Clock::Seconds16(2), onTimerExpiry, this);
-
- return Status::Success;
-}
-
-Status AVSettingsUserLevelManagementDelegate::MPTZRelativeMove(Optional aPan, Optional aTilt,
- Optional aZoom, PhysicalPTZCallback * callback)
-{
- // The Cluster implementation has validated that the Feature Flags are set and the values themselves are in range. Do any needed
- // hardware interactions to actually set the camera to the new values of PTZ. Once the hardware has confirmed movements, invoke
- // the callback. The server itself will persist the new values.
- //
- mCallback = callback;
- DeviceLayer::SystemLayer().StartTimer(System::Clock::Seconds16(2), onTimerExpiry, this);
-
- return Status::Success;
-}
-
-Status AVSettingsUserLevelManagementDelegate::MPTZMoveToPreset(uint8_t aPreset, Optional aPan, Optional aTilt,
- Optional aZoom, PhysicalPTZCallback * callback)
-{
- // The Cluster implementation has validated the preset is valid, and provided the MPTZ values associated with that preset.
- // Do any needed hardware interactions to actually set the camera to the new values of PTZ. Once the hardware has confirmed
- // movements, invoke the callback. The server itself will persist the new values.
- //
- mCallback = callback;
- DeviceLayer::SystemLayer().StartTimer(System::Clock::Seconds16(2), onTimerExpiry, this);
-
- return Status::Success;
-}
-
-Status AVSettingsUserLevelManagementDelegate::MPTZSavePreset(uint8_t aPreset)
-{
- // The Cluster implementation has validated that there is space, and provided the new preset id.
- // The application needs to confirm that the current MPTZ values can be save in a new preset.
- //
- return Status::Success;
-}
-
-Status AVSettingsUserLevelManagementDelegate::MPTZRemovePreset(uint8_t aPreset)
-{
- // The Cluster implementation has validated that there is a saved preset associated with the provided id.
- // The application needs to confirm that this action is acceptable given the current state of the device.
- //
- return Status::Success;
-}
-
-Status AVSettingsUserLevelManagementDelegate::DPTZSetViewport(uint16_t aVideoStreamID,
- Globals::Structs::ViewportStruct::Type aViewport)
-{
- // The Cluster implementation has ensured that the videoStreamID represents a valid stream.
- // The application needs to interact with its instance of AVStreamManagement to access the stream, validate the viewport
- // and set the new vieport value.
- //
- return Status::Success;
-}
-
-Status AVSettingsUserLevelManagementDelegate::DPTZRelativeMove(uint16_t aVideoStreamID, Optional aDeltaX,
- Optional aDeltaY, Optional aZoomDelta,
- Globals::Structs::ViewportStruct::Type & aViewport)
-{
- // The Cluster implementation has ensured that the videoStreamID represents a valid stream.
- // The application needs to interact with its instance of AVStreamManagement to access the stream, validate
- // new dimensions after application of the deltas, and set the new values for the viewport based on the pixel movement
- // requested
- // The passed in viewport is empty, and needs to be populated by the delegate with the value of the viewport after
- // applying all deltas within the constraints of the sensor.
- //
- aViewport = { 0, 0, 1920, 1080 };
- return Status::Success;
-}
-
-CHIP_ERROR AVSettingsUserLevelManagementDelegate::LoadMPTZPresets(std::vector & mptzPresetHelpers)
-{
- mptzPresetHelpers.clear();
- return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR AVSettingsUserLevelManagementDelegate::LoadDPTZStreams(std::vector & dptzStreams)
-{
- dptzStreams.clear();
- return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR AVSettingsUserLevelManagementDelegate::PersistentAttributesLoadedCallback()
-{
- return CHIP_NO_ERROR;
-}
-
-// Timer expiration to mimic PTZ physical movememt
-//
-static void onTimerExpiry(System::Layer * systemLayer, void * data)
-{
- AVSettingsUserLevelManagementDelegate * delegate = reinterpret_cast(data);
-
- // All timers are cancelled on delegate shutdown, hence if this is invoked the delegate is alive
- delegate->OnPhysicalMoveCompleted(Protocols::InteractionModel::Status::Success);
-}
-
-void AVSettingsUserLevelManagementDelegate::ShutdownApp()
-{
- CancelActiveTimers();
-}
-
-void AVSettingsUserLevelManagementDelegate::CancelActiveTimers()
-{
- // Cancel the PTZ mimic timer if it is active
- DeviceLayer::SystemLayer().CancelTimer(onTimerExpiry, this);
-}
-
-// To be invoked by the camera once a physical PTZ action has completed. The callback method is realized by our cluster server,
-// make sure that is still alive before trying to invoke methods thereon.
-//
-void AVSettingsUserLevelManagementDelegate::OnPhysicalMoveCompleted(Protocols::InteractionModel::Status status)
-{
- if (GetServer() != nullptr)
- {
- if (mCallback != nullptr)
- {
- mCallback->OnPhysicalMovementComplete(status);
- }
- }
-}
-
-void emberAfCameraAvSettingsUserLevelManagementClusterInitCallback(chip::EndpointId aEndpointId)
-{
- VerifyOrDie(aEndpointId == 1); // this cluster is only enabled for endpoint 1.
- VerifyOrDie(!gDelegate && !gAVSettingsUserLevelManagementCluster);
- const int16_t appPanMin = -90;
- const int16_t appPanMax = 90;
- const int16_t appTiltMin = -45;
- const int16_t appTiltMax = 45;
- const uint8_t appZoomMax = 75;
- const uint8_t appMaxPresets = 5;
-
- gDelegate = std::make_unique();
- BitFlags avsumFeatures(
- CameraAvSettingsUserLevelManagement::Feature::kDigitalPTZ, CameraAvSettingsUserLevelManagement::Feature::kMechanicalPan,
- CameraAvSettingsUserLevelManagement::Feature::kMechanicalTilt,
- CameraAvSettingsUserLevelManagement::Feature::kMechanicalZoom,
- CameraAvSettingsUserLevelManagement::Feature::kMechanicalPresets);
- BitFlags avsumAttrs(
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kMptzPosition,
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kMaxPresets,
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kMptzPresets,
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kDptzStreams,
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kZoomMax,
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kTiltMin,
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kTiltMax,
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kPanMin,
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kPanMax,
- CameraAvSettingsUserLevelManagement::OptionalAttributes::kMovementState);
-
- gAVSettingsUserLevelManagementCluster = std::make_unique(
- kEndpointId, *gDelegate.get(), avsumFeatures, avsumAttrs, appMaxPresets);
- gAVSettingsUserLevelManagementCluster->Init();
-
- // Set app specific limits to pan, tilt, zoom
- gAVSettingsUserLevelManagementCluster->SetPanMin(appPanMin);
- gAVSettingsUserLevelManagementCluster->SetPanMax(appPanMax);
- gAVSettingsUserLevelManagementCluster->SetTiltMin(appTiltMin);
- gAVSettingsUserLevelManagementCluster->SetTiltMax(appTiltMax);
- gAVSettingsUserLevelManagementCluster->SetZoomMax(appZoomMax);
-}
diff --git a/examples/all-clusters-app/all-clusters-common/src/camera-av-stream-delegate-impl.cpp b/examples/all-clusters-app/all-clusters-common/src/camera-av-stream-delegate-impl.cpp
deleted file mode 100644
index dd67a6809b1..00000000000
--- a/examples/all-clusters-app/all-clusters-common/src/camera-av-stream-delegate-impl.cpp
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- *
- * Copyright (c) 2025 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
-#include
-#include
-#include
-#include
-#include
-
-#define SNAPSHOT_FILE_PATH "./capture_snapshot_test.jpg"
-#define SNAPSHOT_FILE_RES_WIDTH (168)
-#define SNAPSHOT_FILE_RES_HEIGHT (112)
-
-using namespace chip;
-using namespace chip::app;
-using namespace chip::app::DataModel;
-using namespace chip::app::Clusters;
-using namespace chip::app::Clusters::Globals;
-using namespace chip::app::Clusters::CameraAvStreamManagement;
-using chip::Protocols::InteractionModel::Status;
-
-// Global pointer to overall Camera AVStream Manager implementing the Cluster delegate.
-std::unique_ptr sCameraAVStreamMgrInstance;
-
-// Global pointer to Camera AVStream Mgmt Server SDK cluster;
-std::unique_ptr sCameraAVStreamMgmtClusterServerInstance;
-
-Protocols::InteractionModel::Status CameraAVStreamManager::VideoStreamAllocate(const VideoStreamStruct & allocateArgs,
- uint16_t & outStreamID)
-{
- outStreamID = kInvalidStreamID;
- bool foundAvailableStream = false;
-
- for (VideoStream & stream : videoStreams)
- {
- if (!stream.isAllocated)
- {
- foundAvailableStream = true;
-
- if (stream.codec == allocateArgs.videoCodec)
- {
- stream.isAllocated = true;
- outStreamID = stream.id;
- return Status::Success;
- }
- }
- }
-
- if (!foundAvailableStream)
- {
- return Status::ResourceExhausted;
- }
-
- return Status::Failure;
-}
-
-Protocols::InteractionModel::Status CameraAVStreamManager::VideoStreamModify(const uint16_t streamID,
- const Optional waterMarkEnabled,
- const Optional osdEnabled)
-{
- for (VideoStream & stream : videoStreams)
- {
- if (stream.id == streamID && stream.isAllocated)
- {
- ChipLogError(Zcl, "Modified video stream with ID: %d", streamID);
- return Status::Success;
- }
- }
-
- ChipLogError(Zcl, "Allocated video stream with ID: %d not found", streamID);
- return Status::NotFound;
-}
-
-Protocols::InteractionModel::Status CameraAVStreamManager::VideoStreamDeallocate(const uint16_t streamID)
-{
- for (VideoStream & stream : videoStreams)
- {
- if (stream.id == streamID && stream.isAllocated)
- {
- stream.isAllocated = false;
- break;
- }
- }
-
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status CameraAVStreamManager::AudioStreamAllocate(const AudioStreamStruct & allocateArgs,
- uint16_t & outStreamID)
-{
- outStreamID = kInvalidStreamID;
-
- bool foundAvailableStream = false;
-
- for (AudioStream & stream : audioStreams)
- {
- if (!stream.isAllocated)
- {
- foundAvailableStream = true;
-
- if (stream.codec == allocateArgs.audioCodec)
- {
- stream.isAllocated = true;
- outStreamID = stream.id;
- return Status::Success;
- }
- }
- }
-
- if (!foundAvailableStream)
- {
- return Status::ResourceExhausted;
- }
-
- return Status::Failure;
-}
-
-Protocols::InteractionModel::Status CameraAVStreamManager::AudioStreamDeallocate(const uint16_t streamID)
-{
- for (AudioStream & stream : audioStreams)
- {
- if (stream.id == streamID && stream.isAllocated)
- {
- stream.isAllocated = false;
- break;
- }
- }
-
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status CameraAVStreamManager::SnapshotStreamAllocate(const SnapshotStreamAllocateArgs & allocateArgs,
- uint16_t & outStreamID)
-{
- outStreamID = kInvalidStreamID;
-
- bool foundAvailableStream = false;
-
- for (SnapshotStream & stream : snapshotStreams)
- {
- if (!stream.isAllocated)
- {
- foundAvailableStream = true;
-
- if (stream.codec == allocateArgs.imageCodec)
- {
- stream.isAllocated = true;
- outStreamID = stream.id;
- return Status::Success;
- }
- }
- }
-
- if (!foundAvailableStream)
- {
- return Status::ResourceExhausted;
- }
-
- return Status::Failure;
-}
-
-Protocols::InteractionModel::Status CameraAVStreamManager::SnapshotStreamModify(const uint16_t streamID,
- const Optional waterMarkEnabled,
- const Optional osdEnabled)
-{
- for (SnapshotStream & stream : snapshotStreams)
- {
- if (stream.id == streamID && stream.isAllocated)
- {
- ChipLogError(Zcl, "Modified snapshot stream with ID: %d", streamID);
- return Status::Success;
- }
- }
-
- ChipLogError(Zcl, "Allocated snapshot stream with ID: %d not found", streamID);
- return Status::NotFound;
-}
-
-Protocols::InteractionModel::Status CameraAVStreamManager::SnapshotStreamDeallocate(const uint16_t streamID)
-{
- for (SnapshotStream & stream : snapshotStreams)
- {
- if (stream.id == streamID && stream.isAllocated)
- {
- stream.isAllocated = false;
- break;
- }
- }
-
- return Status::Success;
-}
-
-void CameraAVStreamManager::OnVideoStreamAllocated(const VideoStreamStruct & allocatedStream, StreamAllocationAction action)
-{
- ChipLogProgress(Zcl, "Video stream has been allocated");
-}
-
-void CameraAVStreamManager::OnStreamUsagePrioritiesChanged()
-{
- ChipLogProgress(Zcl, "Stream usage priorities changed");
-}
-
-void CameraAVStreamManager::OnAttributeChanged(AttributeId attributeId)
-{
- ChipLogProgress(Zcl, "Attribute changed for AttributeId = " ChipLogFormatMEI, ChipLogValueMEI(attributeId));
-}
-
-Protocols::InteractionModel::Status CameraAVStreamManager::CaptureSnapshot(const Nullable streamID,
- const VideoResolutionStruct & resolution,
- ImageSnapshot & outImageSnapshot)
-{
- std::ifstream file(SNAPSHOT_FILE_PATH, std::ios::binary | std::ios::ate);
- if (!file.is_open())
- {
- ChipLogError(Zcl, "Error opening snapshot image file: ");
- return Status::Failure;
- }
-
- std::streamsize size = file.tellg();
- file.seekg(0, std::ios::beg);
-
- // Ensure space for image snapshot data in outImageSnapshot
- outImageSnapshot.data.resize(static_cast(size));
-
- if (!file.read(reinterpret_cast(outImageSnapshot.data.data()), size))
- {
- ChipLogError(Zcl, "Error reading image file: ");
- file.close();
- return Status::Failure;
- }
-
- file.close();
-
- outImageSnapshot.imageRes.width = SNAPSHOT_FILE_RES_WIDTH;
- outImageSnapshot.imageRes.height = SNAPSHOT_FILE_RES_HEIGHT;
- outImageSnapshot.imageCodec = ImageCodecEnum::kJpeg;
-
- return Status::Success;
-}
-
-CHIP_ERROR
-CameraAVStreamManager::PersistentAttributesLoadedCallback()
-{
- ChipLogDetail(Zcl, "Persistent attributes loaded");
-
- return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR
-CameraAVStreamManager::OnTransportAcquireAudioVideoStreams(uint16_t audioStreamID, uint16_t videoStreamID)
-{
- ChipLogDetail(Zcl, "Transport acquired audio/video streams");
-
- return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR
-CameraAVStreamManager::OnTransportReleaseAudioVideoStreams(uint16_t audioStreamID, uint16_t videoStreamID)
-{
- ChipLogDetail(Zcl, "Transport released audio/video streams");
-
- return CHIP_NO_ERROR;
-}
-
-const std::vector & CameraAVStreamManager::GetAllocatedVideoStreams() const
-{
- return videoStreamStructs;
-}
-
-const std::vector & CameraAVStreamManager::GetAllocatedAudioStreams() const
-{
- return audioStreamStructs;
-}
-
-void CameraAVStreamManager::GetBandwidthForStreams(const Optional> & videoStreamId,
- const Optional> & audioStreamId,
- uint32_t & outBandwidthbps)
-{
- ChipLogDetail(Zcl, "Get bandwidth for streams called");
-}
-
-void CameraAVStreamManager::InitializeAvailableVideoStreams()
-{
- // Example initialization with different codecs
- // id, isAllocated, codec, fps
- videoStreams.push_back({ 0, false, VideoCodecEnum::kH264, 24 });
- videoStreams.push_back({ 1, false, VideoCodecEnum::kH264, 30 });
- videoStreams.push_back({ 2, false, VideoCodecEnum::kHevc, 30 });
- videoStreams.push_back({ 3, false, VideoCodecEnum::kHevc, 60 });
-}
-
-void CameraAVStreamManager::InitializeAvailableAudioStreams()
-{
- // Example initialization with different codecs
- // id, isAllocated, codec, channelCount
- audioStreams.push_back({ 0, false, AudioCodecEnum::kOpus, 2 });
- audioStreams.push_back({ 1, false, AudioCodecEnum::kOpus, 2 });
- audioStreams.push_back({ 2, false, AudioCodecEnum::kAacLc, 1 });
- audioStreams.push_back({ 3, false, AudioCodecEnum::kAacLc, 2 });
-}
-
-void CameraAVStreamManager::InitializeAvailableSnapshotStreams()
-{
- // Example initialization with different codecs
- // id, isAllocated, codec, quality
- snapshotStreams.push_back({ 0, false, ImageCodecEnum::kJpeg, 80 });
- snapshotStreams.push_back({ 1, false, ImageCodecEnum::kJpeg, 90 });
- snapshotStreams.push_back({ 2, false, ImageCodecEnum::kJpeg, 90 });
- snapshotStreams.push_back({ 3, false, ImageCodecEnum::kJpeg, 80 });
-}
-
-void CameraAVStreamManager::Init()
-{
- InitializeAvailableVideoStreams();
-
- InitializeAvailableAudioStreams();
-
- InitializeAvailableSnapshotStreams();
-}
-
-void emberAfCameraAvStreamManagementClusterInitCallback(EndpointId endpoint)
-{
- VerifyOrReturn(endpoint == 1, // this cluster is only enabled for endpoint 1.
- ChipLogError(Zcl, "AV Stream Mgmt cluster delegate is not implemented for endpoint with id %d.", endpoint));
-
- VerifyOrReturn(!sCameraAVStreamMgrInstance && !sCameraAVStreamMgmtClusterServerInstance);
-
- sCameraAVStreamMgrInstance = std::make_unique();
- sCameraAVStreamMgrInstance->Init();
-
- BitFlags features;
- features.Set(Feature::kSnapshot);
- features.Set(Feature::kVideo);
- features.Set(Feature::kNightVision);
- features.Set(Feature::kImageControl);
- features.Set(Feature::kAudio);
- features.Set(Feature::kPrivacy);
- features.Set(Feature::kSpeaker);
- features.Set(Feature::kLocalStorage);
- features.Set(Feature::kWatermark);
- features.Set(Feature::kOnScreenDisplay);
- features.Set(Feature::kHighDynamicRange);
-
- // Pure optional attributes that aren't covered by a feature flag, or are attested by the server given feature flag settings
- BitFlags optionalAttrs;
- optionalAttrs.Set(OptionalAttribute::kHardPrivacyModeOn);
- optionalAttrs.Set(OptionalAttribute::kNightVisionIllum);
- optionalAttrs.Set(OptionalAttribute::kMicrophoneAGCEnabled);
- optionalAttrs.Set(OptionalAttribute::kStatusLightEnabled);
- optionalAttrs.Set(OptionalAttribute::kStatusLightBrightness);
- optionalAttrs.Set(OptionalAttribute::kImageFlipVertical);
- optionalAttrs.Set(OptionalAttribute::kImageFlipHorizontal);
- optionalAttrs.Set(OptionalAttribute::kImageRotation);
-
- uint32_t maxConcurrentVideoEncoders = 1;
- uint32_t maxEncodedPixelRate = 10000;
- VideoSensorParamsStruct sensorParams = { 4608, 2592, 120, Optional(30) }; // Typical numbers for Pi camera.
- bool nightVisionUsesInfrared = false;
- VideoResolutionStruct minViewport = { 854, 480 }; // Assuming 480p resolution.
- std::vector rateDistortionTradeOffPoints = {};
- uint32_t maxContentBufferSize = 1024;
- AudioCapabilitiesStruct micCapabilities{};
- AudioCapabilitiesStruct spkrCapabilities{};
- TwoWayTalkSupportTypeEnum twowayTalkSupport = TwoWayTalkSupportTypeEnum::kNotSupported;
- std::vector snapshotCapabilities = {};
- uint32_t maxNetworkBandwidth = 64 * 1000 * 1000; // 64 Mbps
- std::vector supportedStreamUsages = { StreamUsageEnum::kLiveView, StreamUsageEnum::kRecording };
- std::vector streamUsagePriorities = { StreamUsageEnum::kLiveView, StreamUsageEnum::kRecording };
-
- sCameraAVStreamMgmtClusterServerInstance = std::make_unique(
- *sCameraAVStreamMgrInstance.get(), endpoint, features, optionalAttrs, maxConcurrentVideoEncoders, maxEncodedPixelRate,
- sensorParams, nightVisionUsesInfrared, minViewport, rateDistortionTradeOffPoints, maxContentBufferSize, micCapabilities,
- spkrCapabilities, twowayTalkSupport, snapshotCapabilities, maxNetworkBandwidth, supportedStreamUsages,
- streamUsagePriorities);
- sCameraAVStreamMgmtClusterServerInstance->Init();
-}
-
-void emberAfCameraAvStreamManagementClusterShutdownCallback(EndpointId endpoint)
-{
- sCameraAVStreamMgmtClusterServerInstance = nullptr;
- sCameraAVStreamMgrInstance = nullptr;
-}
diff --git a/examples/all-clusters-app/all-clusters-common/src/chime-instance.cpp b/examples/all-clusters-app/all-clusters-common/src/chime-instance.cpp
index 24586f91b93..ca692bc636f 100644
--- a/examples/all-clusters-app/all-clusters-common/src/chime-instance.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/chime-instance.cpp
@@ -58,7 +58,7 @@ CHIP_ERROR ChimeCommandDelegate::GetChimeIDByIndex(uint8_t chimeIndex, uint8_t &
return CHIP_NO_ERROR;
}
-Status ChimeCommandDelegate::PlayChimeSound()
+Status ChimeCommandDelegate::PlayChimeSound(uint8_t chimeID)
{
return Status::Success;
}
@@ -67,7 +67,7 @@ static ChimeServer gChimeClusterServerInstance = ChimeServer(EndpointId(1), Chim
void emberAfChimeClusterInitCallback(EndpointId endpoint)
{
- gChimeClusterServerInstance.Init();
+ TEMPORARY_RETURN_IGNORED gChimeClusterServerInstance.Init();
}
void emberAfChimeClusterShutdownCallback(EndpointId endpoint) {}
diff --git a/examples/all-clusters-app/all-clusters-common/src/concentration-measurement-instances.cpp b/examples/all-clusters-app/all-clusters-common/src/concentration-measurement-instances.cpp
index 3fa642bd8fa..f56b47a2c40 100644
--- a/examples/all-clusters-app/all-clusters-common/src/concentration-measurement-instances.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/concentration-measurement-instances.cpp
@@ -68,152 +68,155 @@ static Instance gFormaldehydeConcentrationMeasurementInstance =
void emberAfCarbonDioxideConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gCarbonDioxideConcentrationMeasurementInstance.Init();
-
- gCarbonDioxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gCarbonDioxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gCarbonDioxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
- gCarbonDioxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gCarbonDioxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gCarbonDioxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gCarbonDioxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gCarbonDioxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gCarbonDioxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(2.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gCarbonDioxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfCarbonMonoxideConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gCarbonMonoxideConcentrationMeasurementInstance.Init();
-
- gCarbonMonoxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gCarbonMonoxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gCarbonMonoxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
- gCarbonMonoxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gCarbonMonoxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gCarbonMonoxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gCarbonMonoxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gCarbonMonoxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gCarbonMonoxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gCarbonMonoxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfNitrogenDioxideConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gNitrogenDioxideConcentrationMeasurementInstance.Init();
-
- gNitrogenDioxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gNitrogenDioxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gNitrogenDioxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
- gNitrogenDioxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gNitrogenDioxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gNitrogenDioxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gNitrogenDioxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gNitrogenDioxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gNitrogenDioxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gNitrogenDioxideConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfPm1ConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gPm1ConcentrationMeasurementInstance.Init();
-
- gPm1ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gPm1ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gPm1ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
- gPm1ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gPm1ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gPm1ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gPm1ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gPm1ConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gPm1ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gPm1ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfPm10ConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gPm10ConcentrationMeasurementInstance.Init();
-
- gPm10ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gPm10ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gPm10ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
- gPm10ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gPm10ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gPm10ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gPm10ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gPm10ConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gPm10ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gPm10ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfPm25ConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gPm25ConcentrationMeasurementInstance.Init();
-
- gPm25ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gPm25ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gPm25ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
- gPm25ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gPm25ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gPm25ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gPm25ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gPm25ConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gPm25ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gPm25ConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfRadonConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gRadonConcentrationMeasurementInstance.Init();
-
- gRadonConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gRadonConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gRadonConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
- gRadonConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gRadonConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gRadonConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gRadonConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gRadonConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gRadonConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gRadonConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfTotalVolatileOrganicCompoundsConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.Init();
-
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMaxMeasuredValue(
+ MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetPeakMeasuredValue(
+ MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetAverageMeasuredValue(
+ MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gTotalVolatileOrganicCompoundsConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfOzoneConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gOzoneConcentrationMeasurementInstance.Init();
-
- gOzoneConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gOzoneConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gOzoneConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
- gOzoneConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gOzoneConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gOzoneConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gOzoneConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gOzoneConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gOzoneConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gOzoneConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfFormaldehydeConcentrationMeasurementClusterInitCallback(EndpointId endpoint)
{
- gFormaldehydeConcentrationMeasurementInstance.Init();
-
- gFormaldehydeConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
- gFormaldehydeConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
- gFormaldehydeConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
- gFormaldehydeConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
- gFormaldehydeConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
- gFormaldehydeConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
- gFormaldehydeConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
- gFormaldehydeConcentrationMeasurementInstance.SetUncertainty(0.0f);
- gFormaldehydeConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.Init();
+
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.SetMinMeasuredValue(MakeNullable(0.0f));
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.SetMaxMeasuredValue(MakeNullable(1000.0f));
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.SetMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.SetPeakMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.SetPeakMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.SetAverageMeasuredValue(MakeNullable(1.0f));
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.SetAverageMeasuredValueWindow(320);
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.SetUncertainty(0.0f);
+ TEMPORARY_RETURN_IGNORED gFormaldehydeConcentrationMeasurementInstance.SetLevelValue(LevelValueEnum::kLow);
}
void emberAfCarbonDioxideConcentrationMeasurementClusterShutdownCallback(EndpointId endpoint) {}
diff --git a/examples/all-clusters-app/all-clusters-common/src/dishwasher-mode.cpp b/examples/all-clusters-app/all-clusters-common/src/dishwasher-mode.cpp
index 1435435bd7e..8015aaeb24e 100644
--- a/examples/all-clusters-app/all-clusters-common/src/dishwasher-mode.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/dishwasher-mode.cpp
@@ -101,7 +101,7 @@ void emberAfDishwasherModeClusterInitCallback(chip::EndpointId endpointId)
VerifyOrDie(gDishwasherModeDelegate == nullptr && gDishwasherModeInstance == nullptr);
gDishwasherModeDelegate = new DishwasherMode::DishwasherModeDelegate;
gDishwasherModeInstance = new ModeBase::Instance(gDishwasherModeDelegate, 0x1, DishwasherMode::Id, 0);
- gDishwasherModeInstance->Init();
+ TEMPORARY_RETURN_IGNORED gDishwasherModeInstance->Init();
}
void emberAfDishwasherModeClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/energy-preference-delegate.cpp b/examples/all-clusters-app/all-clusters-common/src/energy-preference-delegate.cpp
index cfdaac5c4d9..a5b3e30ca1f 100644
--- a/examples/all-clusters-app/all-clusters-common/src/energy-preference-delegate.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/energy-preference-delegate.cpp
@@ -88,7 +88,7 @@ EPrefDelegate::GetEnergyBalanceAtIndex(chip::EndpointId aEndpoint, size_t aIndex
aOutStep = gsEnergyBalances[aIndex].step;
if (gsEnergyBalances[aIndex].label.HasValue())
{
- chip::CopyCharSpanToMutableCharSpan(gsEnergyBalances[aIndex].label.Value(), aOutLabel.Value());
+ TEMPORARY_RETURN_IGNORED chip::CopyCharSpanToMutableCharSpan(gsEnergyBalances[aIndex].label.Value(), aOutLabel.Value());
}
else
{
@@ -122,7 +122,7 @@ EPrefDelegate::GetLowPowerModeSensitivityAtIndex(chip::EndpointId aEndpoint, siz
aOutStep = gsPowerBalances[aIndex].step;
if (gsPowerBalances[aIndex].label.HasValue())
{
- chip::CopyCharSpanToMutableCharSpan(gsPowerBalances[aIndex].label.Value(), aOutLabel.Value());
+ TEMPORARY_RETURN_IGNORED chip::CopyCharSpanToMutableCharSpan(gsPowerBalances[aIndex].label.Value(), aOutLabel.Value());
}
else
{
diff --git a/examples/all-clusters-app/all-clusters-common/src/laundry-washer-mode.cpp b/examples/all-clusters-app/all-clusters-common/src/laundry-washer-mode.cpp
index b170be3646a..59de89f9902 100644
--- a/examples/all-clusters-app/all-clusters-common/src/laundry-washer-mode.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/laundry-washer-mode.cpp
@@ -100,7 +100,7 @@ void emberAfLaundryWasherModeClusterInitCallback(chip::EndpointId endpointId)
VerifyOrDie(gLaundryWasherModeDelegate == nullptr && gLaundryWasherModeInstance == nullptr);
gLaundryWasherModeDelegate = new LaundryWasherMode::LaundryWasherModeDelegate;
gLaundryWasherModeInstance = new ModeBase::Instance(gLaundryWasherModeDelegate, 0x1, LaundryWasherMode::Id, 0);
- gLaundryWasherModeInstance->Init();
+ TEMPORARY_RETURN_IGNORED gLaundryWasherModeInstance->Init();
}
void emberAfLaundryWasherModeClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/microwave-oven-mode.cpp b/examples/all-clusters-app/all-clusters-common/src/microwave-oven-mode.cpp
index d871f0baa76..fa11a2983b9 100644
--- a/examples/all-clusters-app/all-clusters-common/src/microwave-oven-mode.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/microwave-oven-mode.cpp
@@ -101,7 +101,7 @@ void emberAfMicrowaveOvenModeClusterInitCallback(chip::EndpointId endpointId)
VerifyOrDie(gMicrowaveOvenModeDelegate == nullptr && gMicrowaveOvenModeInstance == nullptr);
gMicrowaveOvenModeDelegate = new MicrowaveOvenMode::ExampleMicrowaveOvenModeDelegate;
gMicrowaveOvenModeInstance = new ModeBase::Instance(gMicrowaveOvenModeDelegate, endpointId, MicrowaveOvenMode::Id, 0);
- gMicrowaveOvenModeInstance->Init();
+ TEMPORARY_RETURN_IGNORED gMicrowaveOvenModeInstance->Init();
}
void emberAfMicrowaveOvenModeClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/occupancy-sensing-stub.cpp b/examples/all-clusters-app/all-clusters-common/src/occupancy-sensing-stub.cpp
index 41d3d1fabfe..7fdb4ac7164 100644
--- a/examples/all-clusters-app/all-clusters-common/src/occupancy-sensing-stub.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/occupancy-sensing-stub.cpp
@@ -62,11 +62,11 @@ void emberAfOccupancySensingClusterInitCallback(EndpointId endpointId)
if (gOccupancySensingClusterInstances[epIndex])
{
- gOccupancySensingClusterInstances[epIndex]->Init();
+ TEMPORARY_RETURN_IGNORED gOccupancySensingClusterInstances[epIndex]->Init();
- SetHoldTimeLimits(endpointId, holdTimeLimits);
+ TEMPORARY_RETURN_IGNORED SetHoldTimeLimits(endpointId, holdTimeLimits);
- SetHoldTime(endpointId, holdTime);
+ TEMPORARY_RETURN_IGNORED SetHoldTime(endpointId, holdTime);
}
}
else
diff --git a/examples/all-clusters-app/all-clusters-common/src/operational-state-delegate-impl.cpp b/examples/all-clusters-app/all-clusters-common/src/operational-state-delegate-impl.cpp
index e2a1be53e96..c2b0bdbe909 100644
--- a/examples/all-clusters-app/all-clusters-common/src/operational-state-delegate-impl.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/operational-state-delegate-impl.cpp
@@ -211,9 +211,10 @@ void emberAfOperationalStateClusterInitCallback(chip::EndpointId endpointId)
EndpointId operationalStateEndpoint = 0x01;
gOperationalStateInstance = new OperationalState::Instance(gOperationalStateDelegate, operationalStateEndpoint);
- gOperationalStateInstance->SetOperationalState(to_underlying(OperationalState::OperationalStateEnum::kStopped));
+ TEMPORARY_RETURN_IGNORED gOperationalStateInstance->SetOperationalState(
+ to_underlying(OperationalState::OperationalStateEnum::kStopped));
- gOperationalStateInstance->Init();
+ TEMPORARY_RETURN_IGNORED gOperationalStateInstance->Init();
}
void emberAfOperationalStateClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/oven-modes.cpp b/examples/all-clusters-app/all-clusters-common/src/oven-modes.cpp
index cfbc2febbd2..4f939721294 100644
--- a/examples/all-clusters-app/all-clusters-common/src/oven-modes.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/oven-modes.cpp
@@ -102,7 +102,7 @@ void emberAfOvenModeClusterInitCallback(chip::EndpointId endpointId)
VerifyOrDie(gOvenModeDelegate == nullptr && gOvenModeInstance == nullptr);
gOvenModeDelegate = new OvenMode::OvenModeDelegate;
gOvenModeInstance = new ModeBase::Instance(gOvenModeDelegate, 0x1, OvenMode::Id, 0x0);
- gOvenModeInstance->Init();
+ TEMPORARY_RETURN_IGNORED gOvenModeInstance->Init();
}
void emberAfOvenModeClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/oven-operational-state-delegate.cpp b/examples/all-clusters-app/all-clusters-common/src/oven-operational-state-delegate.cpp
index 6411a68dbb4..f10f319c180 100644
--- a/examples/all-clusters-app/all-clusters-common/src/oven-operational-state-delegate.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/oven-operational-state-delegate.cpp
@@ -54,9 +54,10 @@ void emberAfOvenCavityOperationalStateClusterInitCallback(chip::EndpointId endpo
gOvenCavityOperationalStateInstance =
new OvenCavityOperationalState::Instance(gOvenCavityOperationalStateDelegate, operationalStateEndpoint);
- gOvenCavityOperationalStateInstance->SetOperationalState(to_underlying(OperationalState::OperationalStateEnum::kStopped));
+ TEMPORARY_RETURN_IGNORED gOvenCavityOperationalStateInstance->SetOperationalState(
+ to_underlying(OperationalState::OperationalStateEnum::kStopped));
- gOvenCavityOperationalStateInstance->Init();
+ TEMPORARY_RETURN_IGNORED gOvenCavityOperationalStateInstance->Init();
}
void emberAfOvenCavityOperationalStateClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/push-av-stream-transport-delegate-impl.cpp b/examples/all-clusters-app/all-clusters-common/src/push-av-stream-transport-delegate-impl.cpp
deleted file mode 100644
index f524606c19e..00000000000
--- a/examples/all-clusters-app/all-clusters-common/src/push-av-stream-transport-delegate-impl.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- *
- * Copyright (c) 2025 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
-#include
-#include
-#include
-#include
-#include
-
-using namespace chip;
-using namespace chip::app;
-using namespace chip::app::DataModel;
-using namespace chip::app::Clusters;
-using namespace chip::app::Clusters::PushAvStreamTransport;
-using chip::Protocols::InteractionModel::Status;
-
-Protocols::InteractionModel::Status
-PushAvStreamTransportManager::AllocatePushTransport(const TransportOptionsStruct & transportOptions, const uint16_t connectionID,
- FabricIndex accessingFabricIndex)
-{
- PushAvStream stream{ connectionID, transportOptions, TransportStatusEnum::kInactive, PushAvStreamTransportStatusEnum::kIdle };
-
- /*Store the allocated stream persistently*/
- pushavStreams.push_back(stream);
-
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status PushAvStreamTransportManager::DeallocatePushTransport(const uint16_t connectionID)
-{
- pushavStreams.erase(std::remove_if(pushavStreams.begin(), pushavStreams.end(),
- [connectionID](const PushAvStream & stream) { return stream.id == connectionID; }),
- pushavStreams.end());
- ChipLogProgress(Zcl, "Deallocated Push AV Stream with ID: %d", connectionID);
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status
-PushAvStreamTransportManager::ModifyPushTransport(const uint16_t connectionID, const TransportOptionsStorage transportOptions)
-{
- for (PushAvStream & stream : pushavStreams)
- {
- if (stream.id == connectionID)
- {
- ChipLogProgress(Zcl, "Modified Push AV Stream with ID: %d", connectionID);
- return Status::Success;
- }
- }
- ChipLogError(Zcl, "Allocated Push AV Stream with ID: %d not found", connectionID);
- return Status::NotFound;
-}
-
-Protocols::InteractionModel::Status PushAvStreamTransportManager::SetTransportStatus(const std::vector connectionIDList,
- TransportStatusEnum transportStatus)
-{
- for (PushAvStream & stream : pushavStreams)
- {
- for (uint16_t connectionID : connectionIDList)
- {
- if (stream.id == connectionID)
- {
- stream.transportStatus = transportStatus;
- ChipLogProgress(Zcl, "Set Transport Status for Push AV Stream with ID: %d", connectionID);
- }
- }
- }
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status PushAvStreamTransportManager::ManuallyTriggerTransport(
- const uint16_t connectionID, TriggerActivationReasonEnum activationReason,
- const Optional & timeControl)
-{
- // TODO: Validates the requested stream usage against the camera's resource management and stream priority policies.
- for (PushAvStream & stream : pushavStreams)
- {
- if (stream.id == connectionID)
- {
- stream.connectionStatus = PushAvStreamTransportStatusEnum::kBusy;
- ChipLogProgress(Zcl, "Transport triggered for Push AV Stream with ID: %d", connectionID);
- }
- }
- return Status::Success;
-}
-
-bool PushAvStreamTransportManager::ValidateStreamUsage(StreamUsageEnum streamUsage)
-{
- return true;
-}
-
-bool PushAvStreamTransportManager::ValidateSegmentDuration(uint16_t segmentDuration,
- const Optional> & videoStreamId)
-{
- return true;
-}
-
-Protocols::InteractionModel::Status
-PushAvStreamTransportManager::ValidateBandwidthLimit(StreamUsageEnum streamUsage,
- const Optional> & videoStreamId,
- const Optional> & audioStreamId)
-{
- // TODO: Validates the requested stream usage against the camera's resource management.
- // Returning Status::Success to pass through checks in the Server Implementation.
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status PushAvStreamTransportManager::SelectVideoStream(StreamUsageEnum streamUsage,
- uint16_t & videoStreamId)
-{
- // TODO: Select and Assign videoStreamID from the allocated videoStreams
- // Returning Status::Success to pass through checks in the Server Implementation.
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status PushAvStreamTransportManager::SelectAudioStream(StreamUsageEnum streamUsage,
- uint16_t & audioStreamId)
-{
- // TODO: Select and Assign audioStreamID from the allocated audioStreams
- // Returning Status::Success to pass through checks in the Server Implementation.
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status PushAvStreamTransportManager::SetVideoStream(uint16_t videoStreamId)
-{
- // TODO: Validate videoStreamID from the allocated videoStreams
- // Returning Status::Success to pass through checks in the Server Implementation.
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status PushAvStreamTransportManager::SetAudioStream(uint16_t audioStreamId)
-{
- // TODO: Validate audioStreamID from the allocated audioStreams
- // Returning Status::Success to pass through checks in the Server Implementation.
- return Status::Success;
-}
-
-Protocols::InteractionModel::Status PushAvStreamTransportManager::ValidateZoneId(uint16_t zoneId)
-{
- // TODO: Validate zoneId from the allocated zones
- // Returning Status::Success to pass through checks in the Server Implementation.
- return Status::Success;
-}
-
-bool PushAvStreamTransportManager::ValidateMotionZoneListSize(size_t zoneListSize)
-{
- // TODO: Validate motion zone size
- // Returning true to pass through checks in the Server Implementation.
- return true;
-}
-
-PushAvStreamTransportStatusEnum PushAvStreamTransportManager::GetTransportBusyStatus(const uint16_t connectionID)
-{
- for (PushAvStream & stream : pushavStreams)
- {
- if (stream.id == connectionID)
- {
- return stream.connectionStatus;
- }
- }
- return PushAvStreamTransportStatusEnum::kUnknown;
-}
-
-void PushAvStreamTransportManager::OnAttributeChanged(AttributeId attributeId)
-{
- ChipLogProgress(Zcl, "Attribute changed for AttributeId = " ChipLogFormatMEI, ChipLogValueMEI(attributeId));
-}
-
-void PushAvStreamTransportManager::Init()
-{
- ChipLogProgress(Zcl, "Push AV Stream Transport Initialized");
-}
-CHIP_ERROR
-PushAvStreamTransportManager::LoadCurrentConnections(std::vector & currentConnections)
-{
- ChipLogProgress(Zcl, "Push AV Current Connections loaded");
-
- return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR
-PushAvStreamTransportManager::PersistentAttributesLoadedCallback()
-{
- ChipLogProgress(Zcl, "Push AV Stream Transport Persistent attributes loaded");
-
- return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR PushAvStreamTransportManager::IsHardPrivacyModeActive(bool & isActive)
-{
- isActive = false;
- return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR PushAvStreamTransportManager::IsSoftRecordingPrivacyModeActive(bool & isActive)
-{
- isActive = false;
- return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR PushAvStreamTransportManager::IsSoftLivestreamPrivacyModeActive(bool & isActive)
-{
- isActive = false;
- return CHIP_NO_ERROR;
-}
diff --git a/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-delegates.cpp b/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-delegates.cpp
index e6753f6de1f..a7667163529 100644
--- a/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-delegates.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-delegates.cpp
@@ -119,7 +119,7 @@ void emberAfActivatedCarbonFilterMonitoringClusterInitCallback(chip::EndpointId
gActivatedCarbonFilterInstance = new ResourceMonitoring::Instance(
gActivatedCarbonFilterDelegate, endpoint, ActivatedCarbonFilterMonitoring::Id,
static_cast(gActivatedCarbonFeatureMap.to_ulong()), ResourceMonitoring::DegradationDirectionEnum::kDown, true);
- gActivatedCarbonFilterInstance->Init();
+ TEMPORARY_RETURN_IGNORED gActivatedCarbonFilterInstance->Init();
}
void emberAfHepaFilterMonitoringClusterInitCallback(chip::EndpointId endpoint)
@@ -130,7 +130,7 @@ void emberAfHepaFilterMonitoringClusterInitCallback(chip::EndpointId endpoint)
gHepaFilterInstance = new ResourceMonitoring::Instance(gHepaFilterDelegate, endpoint, HepaFilterMonitoring::Id,
static_cast(gHepaFilterFeatureMap.to_ulong()),
ResourceMonitoring::DegradationDirectionEnum::kDown, true);
- gHepaFilterInstance->Init();
+ TEMPORARY_RETURN_IGNORED gHepaFilterInstance->Init();
}
void emberAfActivatedCarbonFilterMonitoringClusterShutdownCallback(chip::EndpointId endpoint)
@@ -154,23 +154,23 @@ CHIP_ERROR ImmutableReplacementProductListManager::Next(ReplacementProductStruct
{
case 0: {
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kUpc);
- item.SetProductIdentifierValue(CharSpan::fromCharString("111112222233"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("111112222233"));
break;
case 1:
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kGtin8);
- item.SetProductIdentifierValue(CharSpan::fromCharString("gtin8xxx"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("gtin8xxx"));
break;
case 2:
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kEan);
- item.SetProductIdentifierValue(CharSpan::fromCharString("4444455555666"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("4444455555666"));
break;
case 3:
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kGtin14);
- item.SetProductIdentifierValue(CharSpan::fromCharString("gtin14xxxxxxxx"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("gtin14xxxxxxxx"));
break;
case 4:
item.SetProductIdentifierType(ResourceMonitoring::ProductIdentifierTypeEnum::kOem);
- item.SetProductIdentifierValue(CharSpan::fromCharString("oem20xxxxxxxxxxxxxxx"));
+ TEMPORARY_RETURN_IGNORED item.SetProductIdentifierValue(CharSpan::fromCharString("oem20xxxxxxxxxxxxxxx"));
break;
default:
return CHIP_ERROR_PROVIDER_LIST_EXHAUSTED;
diff --git a/examples/all-clusters-app/all-clusters-common/src/rvc-modes.cpp b/examples/all-clusters-app/all-clusters-common/src/rvc-modes.cpp
index 4430aec24c0..b18386fbdcb 100644
--- a/examples/all-clusters-app/all-clusters-common/src/rvc-modes.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/rvc-modes.cpp
@@ -56,11 +56,13 @@ void RvcRunModeDelegate::HandleChangeToMode(uint8_t NewMode, ModeBase::Commands:
auto rvcOpStateInstance = RvcOperationalState::GetRvcOperationalStateInstance();
if (NewMode == RvcRunMode::ModeIdle)
{
- rvcOpStateInstance->SetOperationalState(to_underlying(OperationalState::OperationalStateEnum::kStopped));
+ TEMPORARY_RETURN_IGNORED rvcOpStateInstance->SetOperationalState(
+ to_underlying(OperationalState::OperationalStateEnum::kStopped));
}
else
{
- rvcOpStateInstance->SetOperationalState(to_underlying(OperationalState::OperationalStateEnum::kRunning));
+ TEMPORARY_RETURN_IGNORED rvcOpStateInstance->SetOperationalState(
+ to_underlying(OperationalState::OperationalStateEnum::kRunning));
}
response.status = to_underlying(ModeBase::StatusCode::kSuccess);
@@ -129,7 +131,7 @@ void emberAfRvcRunModeClusterInitCallback(chip::EndpointId endpointId)
gRvcRunModeDelegate = new RvcRunMode::RvcRunModeDelegate;
gRvcRunModeInstance = new ModeBase::Instance(gRvcRunModeDelegate, 0x1, RvcRunMode::Id,
chip::to_underlying(RvcRunMode::Feature::kDirectModeChange));
- gRvcRunModeInstance->Init();
+ TEMPORARY_RETURN_IGNORED gRvcRunModeInstance->Init();
}
void emberAfRvcRunModeClusterShutdownCallback(chip::EndpointId endpointId)
@@ -231,7 +233,7 @@ void emberAfRvcCleanModeClusterInitCallback(chip::EndpointId endpointId)
gRvcCleanModeDelegate = new RvcCleanMode::RvcCleanModeDelegate;
gRvcCleanModeInstance = new ModeBase::Instance(gRvcCleanModeDelegate, 0x1, RvcCleanMode::Id,
chip::to_underlying(RvcCleanMode::Feature::kDirectModeChange));
- gRvcCleanModeInstance->Init();
+ TEMPORARY_RETURN_IGNORED gRvcCleanModeInstance->Init();
}
void emberAfRvcCleanModeClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/rvc-operational-state-delegate-impl.cpp b/examples/all-clusters-app/all-clusters-common/src/rvc-operational-state-delegate-impl.cpp
index f7e6e02f95a..8329038002a 100644
--- a/examples/all-clusters-app/all-clusters-common/src/rvc-operational-state-delegate-impl.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/rvc-operational-state-delegate-impl.cpp
@@ -115,9 +115,10 @@ void emberAfRvcOperationalStateClusterInitCallback(chip::EndpointId endpointId)
EndpointId operationalStateEndpoint = 0x01;
gRvcOperationalStateInstance = new RvcOperationalState::Instance(gRvcOperationalStateDelegate, operationalStateEndpoint);
- gRvcOperationalStateInstance->SetOperationalState(to_underlying(OperationalState::OperationalStateEnum::kStopped));
+ TEMPORARY_RETURN_IGNORED gRvcOperationalStateInstance->SetOperationalState(
+ to_underlying(OperationalState::OperationalStateEnum::kStopped));
- gRvcOperationalStateInstance->Init();
+ TEMPORARY_RETURN_IGNORED gRvcOperationalStateInstance->Init();
}
void emberAfRvcOperationalStateClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp b/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp
index 88c85f71fc3..1690ee3caac 100644
--- a/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp
@@ -48,7 +48,8 @@ void emberAfPluginSmokeCoAlarmSelfTestRequestCommand(EndpointId endpointId)
{
ChipLogProgress(Support, "[Smoke-CO-Alarm] => Self test running");
- DeviceLayer::SystemLayer().StartTimer(System::Clock::Seconds32(kSelfTestingTimeoutSec), EndSelfTestingEventHandler, nullptr);
+ TEMPORARY_RETURN_IGNORED DeviceLayer::SystemLayer().StartTimer(System::Clock::Seconds32(kSelfTestingTimeoutSec),
+ EndSelfTestingEventHandler, nullptr);
}
bool HandleSmokeCOTestEventTrigger(uint64_t eventTrigger)
diff --git a/examples/all-clusters-app/all-clusters-common/src/soil-measurement-stub.cpp b/examples/all-clusters-app/all-clusters-common/src/soil-measurement-stub.cpp
index 51ec7e1e381..b8ef45922b9 100644
--- a/examples/all-clusters-app/all-clusters-common/src/soil-measurement-stub.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/soil-measurement-stub.cpp
@@ -70,7 +70,7 @@ void emberAfSoilMeasurementClusterInitCallback(EndpointId endpoint)
}
// Set initial measured value to min since all clusters does not perform any actual measurements
- gServer.Cluster().SetSoilMoistureMeasuredValue(kDefaultSoilMoistureMeasurementLimits.minMeasuredValue);
+ TEMPORARY_RETURN_IGNORED gServer.Cluster().SetSoilMoistureMeasuredValue(kDefaultSoilMoistureMeasurementLimits.minMeasuredValue);
}
void emberAfSoilMeasurementClusterShutdownCallback(EndpointId endpoint)
diff --git a/examples/all-clusters-app/all-clusters-common/src/tcc-mode.cpp b/examples/all-clusters-app/all-clusters-common/src/tcc-mode.cpp
index 8a7208f3477..b919f7fc58a 100644
--- a/examples/all-clusters-app/all-clusters-common/src/tcc-mode.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/tcc-mode.cpp
@@ -95,7 +95,7 @@ void emberAfRefrigeratorAndTemperatureControlledCabinetModeClusterInitCallback(c
VerifyOrDie(gTccModeDelegate == nullptr && gTccModeInstance == nullptr);
gTccModeDelegate = new RefrigeratorAndTemperatureControlledCabinetMode::TccModeDelegate;
gTccModeInstance = new ModeBase::Instance(gTccModeDelegate, 0x1, RefrigeratorAndTemperatureControlledCabinetMode::Id, 0);
- gTccModeInstance->Init();
+ TEMPORARY_RETURN_IGNORED gTccModeInstance->Init();
}
void emberAfRefrigeratorAndTemperatureControlledCabinetModeClusterShutdownCallback(chip::EndpointId endpointId)
diff --git a/examples/all-clusters-app/all-clusters-common/src/tls-certificate-management-instance.cpp b/examples/all-clusters-app/all-clusters-common/src/tls-certificate-management-instance.cpp
index eb755aeaecd..dd53007e3f0 100644
--- a/examples/all-clusters-app/all-clusters-common/src/tls-certificate-management-instance.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/tls-certificate-management-instance.cpp
@@ -18,7 +18,7 @@
#include
#include
#include
-#include
+#include
#include
#include
#include
@@ -40,13 +40,13 @@ static constexpr uint16_t kMaxIntermediateCerts = 10;
struct InlineBufferedRootCert : CertificateTable::BufferedRootCert
{
- PersistentStore buffer;
+ PersistenceBuffer buffer;
InlineBufferedRootCert() : CertificateTable::BufferedRootCert(buffer) {}
};
struct InlineBufferedClientCert : CertificateTable::BufferedClientCert
{
- PersistentStore buffer;
+ PersistenceBuffer buffer;
InlineBufferedClientCert() : CertificateTable::BufferedClientCert(buffer) {}
};
@@ -136,9 +136,6 @@ struct InlineEncodableClientCert : RefEncodableClientCert
InlineEncodableClientCert() : RefEncodableClientCert(inlineCertificate) {}
};
-static constexpr uint8_t kMaxRootCerts = kMaxRootCertificatesPerFabric;
-static constexpr uint8_t kMaxClientCerts = kMaxClientCertificatesPerFabric;
-
CHIP_ERROR FingerprintMatch(const ByteSpan & fingerprint, const ByteSpan & cert, bool & outMatch)
{
std::array fingerprintPayload = { 0 };
@@ -188,7 +185,7 @@ CHIP_ERROR TlsCertificateManagementCommandDelegate::RootCertsForFabric(EndpointI
VerifyOrReturnError(matterEndpoint == EndpointId(1), CHIP_IM_GLOBAL_STATUS(ConstraintError));
uint8_t numRootCerts;
- mCertificateTable.GetRootCertificateCount(fabric, numRootCerts);
+ ReturnErrorOnFailure(mCertificateTable.GetRootCertificateCount(fabric, numRootCerts));
ScopedMemoryBuffer rootCertificatePayloads;
ScopedMemoryBuffer rootCertificates;
rootCertificatePayloads.Alloc(numRootCerts);
@@ -350,7 +347,7 @@ CHIP_ERROR TlsCertificateManagementCommandDelegate::ClientCertsForFabric(Endpoin
VerifyOrReturnError(matterEndpoint == EndpointId(1), CHIP_IM_GLOBAL_STATUS(ConstraintError));
uint8_t numClientCerts;
- mCertificateTable.GetClientCertificateCount(fabric, numClientCerts);
+ ReturnErrorOnFailure(mCertificateTable.GetClientCertificateCount(fabric, numClientCerts));
UniquePtr certBuffer(New());
ScopedMemoryBuffer clientCertificatePayloads;
ScopedMemoryBuffer clientCertificates;
@@ -443,17 +440,18 @@ Status TlsCertificateManagementCommandDelegate::RemoveClientCert(EndpointId matt
static CertificateTableImpl gCertificateTableInstance;
TlsCertificateManagementCommandDelegate TlsCertificateManagementCommandDelegate::instance(gCertificateTableInstance);
-static TlsCertificateManagementServer gTlsCertificateManagementClusterServerInstance = TlsCertificateManagementServer(
- EndpointId(1), TlsCertificateManagementCommandDelegate::GetInstance(), TlsClientManagementCommandDelegate::GetInstance(),
- gCertificateTableInstance, kMaxRootCerts, kMaxClientCerts);
-void emberAfTlsCertificateManagementClusterInitCallback(EndpointId matterEndpoint)
-{
- gCertificateTableInstance.SetEndpoint(EndpointId(1));
- gTlsCertificateManagementClusterServerInstance.Init();
-}
+namespace chip {
+namespace app {
+namespace Clusters {
-void emberAfTlsCertificateManagementClusterShutdownCallback(EndpointId matterEndpoint)
+void InitializeTlsCertificateManagement()
{
- gTlsCertificateManagementClusterServerInstance.Finish();
+ MatterTlsCertificateManagementSetDelegate(TlsCertificateManagementCommandDelegate::GetInstance());
+ MatterTlsCertificateManagementSetDependencyChecker(TlsClientManagementCommandDelegate::GetInstance());
+ MatterTlsCertificateManagementSetCertificateTable(gCertificateTableInstance);
}
+
+} // namespace Clusters
+} // namespace app
+} // namespace chip
diff --git a/examples/all-clusters-app/all-clusters-common/src/tls-client-management-instance.cpp b/examples/all-clusters-app/all-clusters-common/src/tls-client-management-instance.cpp
index b06115baad8..2f0df52bb9f 100644
--- a/examples/all-clusters-app/all-clusters-common/src/tls-client-management-instance.cpp
+++ b/examples/all-clusters-app/all-clusters-common/src/tls-client-management-instance.cpp
@@ -19,9 +19,12 @@
#include
#include
#include
-#include
+#include
+#include
#include
+#include
#include
+#include
#include
#include
@@ -37,8 +40,8 @@ using namespace chip::Platform;
using namespace chip::TLV;
using namespace Protocols::InteractionModel;
-using EndpointSerializer = DefaultSerializer;
-using InnerIterator = TableEntryDataConvertingIterator;
+using EndpointSerializer = DefaultSerializer;
+using InnerIterator = TableEntryDataConvertingIterator;
namespace {
enum class TagEndpoint : uint8_t
@@ -67,11 +70,11 @@ static constexpr size_t kTlsEndpointMaxBytes =
sizeof(chip::FabricIndex) /* fabricIndex */));
struct BufferedEndpoint
{
- TlsClientManagementDelegate::EndpointStructType mEndpoint;
- PersistentStore mBuffer;
+ TLSClientManagementDelegate::EndpointStructType mEndpoint;
+ PersistenceBuffer mBuffer;
};
-class GlobalEndpointData : public PersistentData
+class GlobalEndpointData : public PersistableData
{
IncrementingIdHelper mEndpoints;
EndpointId mEndpointId = kInvalidEndpointId;
@@ -124,16 +127,10 @@ class GlobalEndpointData : public PersistentData
return reader.ExitContainer(container);
}
- CHIP_ERROR Load(PersistentStorageDelegate * storage) override
+ CHIP_ERROR Load(PersistentStorageDelegate * storage) // NOLINT(bugprone-derived-method-shadowing-base-method)
{
- CHIP_ERROR err = PersistentData::Load(storage);
- VerifyOrReturnError(CHIP_NO_ERROR == err || CHIP_ERROR_NOT_FOUND == err, err);
- if (CHIP_ERROR_NOT_FOUND == err)
- {
- Clear();
- }
-
- return CHIP_NO_ERROR;
+ CHIP_ERROR err = PersistableData::Load(storage);
+ return err.NoErrorIf(CHIP_ERROR_NOT_FOUND); // NOT_FOUND is OK; DataAccessor::Load already called Clear()
}
CHIP_ERROR GetNextId(FabricIndex fabric, uint16_t & id)
@@ -208,25 +205,25 @@ CHIP_ERROR EndpointSerializer::DeserializeId(TLV::TLVReader & reader, TlsEndpoin
}
template <>
-CHIP_ERROR EndpointSerializer::SerializeData(TLV::TLVWriter & writer, const TlsClientManagementDelegate::EndpointStructType & data)
+CHIP_ERROR EndpointSerializer::SerializeData(TLV::TLVWriter & writer, const TLSClientManagementDelegate::EndpointStructType & data)
{
return data.EncodeForRead(writer, TLV::ContextTag(TagEndpoint::kEndpointPayload), data.GetFabricIndex());
}
template <>
-CHIP_ERROR EndpointSerializer::DeserializeData(TLV::TLVReader & reader, TlsClientManagementDelegate::EndpointStructType & data)
+CHIP_ERROR EndpointSerializer::DeserializeData(TLV::TLVReader & reader, TLSClientManagementDelegate::EndpointStructType & data)
{
ReturnErrorOnFailure(reader.Next(TLV::kTLVType_Structure, TLV::ContextTag(TagEndpoint::kEndpointPayload)));
return data.Decode(reader);
}
template <>
-void EndpointSerializer::Clear(TlsClientManagementDelegate::EndpointStructType & data)
+void EndpointSerializer::Clear(TLSClientManagementDelegate::EndpointStructType & data)
{
- new (&data) TlsClientManagementDelegate::EndpointStructType();
+ new (&data) TLSClientManagementDelegate::EndpointStructType();
}
-template class chip::app::Storage::FabricTableImpl;
+template class chip::app::Storage::FabricTableImpl;
CHIP_ERROR TlsClientManagementCommandDelegate::Init(PersistentStorageDelegate & storage)
{
@@ -279,7 +276,11 @@ ClusterStatusCode TlsClientManagementCommandDelegate::ProvisionEndpoint(
{
numInFabric++;
auto & endpointStruct = endpoint.mEndpoint;
- if (endpointStruct.hostname.data_equal(provisionReq.hostname) && (endpointStruct.port == provisionReq.port))
+ // A host/port collision is detected if we are either:
+ // - provisioning a new endpoint (endpointID is null)
+ // - updating an existing endpoint, but the colliding endpoint is not the one being updated.
+ if (endpointStruct.hostname.data_equal(provisionReq.hostname) && (endpointStruct.port == provisionReq.port) &&
+ (provisionReq.endpointID.IsNull() || provisionReq.endpointID.Value() != endpointStruct.endpointID))
{
installedCheck = ClusterStatusCode::ClusterSpecificFailure(StatusCodeEnum::kEndpointAlreadyInstalled);
return CHIP_ERROR_BAD_REQUEST;
@@ -291,7 +292,7 @@ ClusterStatusCode TlsClientManagementCommandDelegate::ProvisionEndpoint(
if (provisionReq.endpointID.IsNull())
{
- VerifyOrReturnError(numInFabric < mTlsClientManagementServer->GetMaxProvisioned(),
+ VerifyOrReturnError(numInFabric < mTLSClientManagementCluster->GetMaxProvisioned(),
ClusterStatusCode(Status::ResourceExhausted));
EndpointSerializer::Clear(endpoint.mEndpoint);
auto & endpointStruct = endpoint.mEndpoint;
@@ -395,7 +396,11 @@ void TlsClientManagementCommandDelegate::RemoveFabric(FabricIndex fabric)
UniquePtr globalData(New(EndpointId(1)));
VerifyOrReturn(globalData);
ReturnOnFailure(globalData->Load(mStorage));
- ReturnAndLogOnFailure(globalData->RemoveAll(*mStorage, fabric), Zcl, "Failure clearing TLS endpoint data for fabric");
+
+ // Not having endpoint data for a fabric is not an error; the fabric may never
+ // have had TLS endpoints provisioned.
+ ReturnAndLogOnFailure(globalData->RemoveAll(*mStorage, fabric).NoErrorIf(CHIP_ERROR_NOT_FOUND), Zcl,
+ "Failure clearing TLS endpoint data for fabric");
}
CHIP_ERROR TlsClientManagementCommandDelegate::MutateEndpointReferenceCount(EndpointId matterEndpoint, FabricIndex fabric,
@@ -423,16 +428,17 @@ CHIP_ERROR TlsClientManagementCommandDelegate::MutateEndpointReferenceCount(Endp
static CertificateTableImpl gCertificateTableInstance;
TlsClientManagementCommandDelegate TlsClientManagementCommandDelegate::instance;
-static TlsClientManagementServer gTlsClientManagementClusterServerInstance = TlsClientManagementServer(
- EndpointId(1), TlsClientManagementCommandDelegate::GetInstance(), gCertificateTableInstance, kMaxProvisionedEndpoints);
-void emberAfTlsClientManagementClusterInitCallback(EndpointId matterEndpoint)
-{
- gCertificateTableInstance.SetEndpoint(EndpointId(1));
- gTlsClientManagementClusterServerInstance.Init();
-}
+namespace chip {
+namespace app {
+namespace Clusters {
-void emberAfTlsClientManagementClusterShutdownCallback(EndpointId matterEndpoint)
+void InitializeTlsClientManagement()
{
- gTlsClientManagementClusterServerInstance.Finish();
+ MatterTlsClientManagementSetDelegate(TlsClientManagementCommandDelegate::GetInstance());
+ MatterTlsClientManagementSetCertificateTable(gCertificateTableInstance);
}
+
+} // namespace Clusters
+} // namespace app
+} // namespace chip
diff --git a/examples/all-clusters-app/ameba/chip_main.cmake b/examples/all-clusters-app/ameba/chip_main.cmake
index 63a24daf0eb..898b9826f43 100644
--- a/examples/all-clusters-app/ameba/chip_main.cmake
+++ b/examples/all-clusters-app/ameba/chip_main.cmake
@@ -157,7 +157,6 @@ list(
${chip_dir}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp
${chip_dir}/examples/all-clusters-app/all-clusters-common/src/air-quality-instance.cpp
- ${chip_dir}/examples/all-clusters-app/all-clusters-common/src/camera-av-settings-user-level-management-stub.cpp
${chip_dir}/examples/all-clusters-app/all-clusters-common/src/chime-instance.cpp
${chip_dir}/examples/all-clusters-app/all-clusters-common/src/concentration-measurement-instances.cpp
${chip_dir}/examples/all-clusters-app/all-clusters-common/src/energy-preference-delegate.cpp
diff --git a/examples/all-clusters-app/ameba/main/chipinterface.cpp b/examples/all-clusters-app/ameba/main/chipinterface.cpp
index a53613caff1..8882f9ab9e8 100755
--- a/examples/all-clusters-app/ameba/main/chipinterface.cpp
+++ b/examples/all-clusters-app/ameba/main/chipinterface.cpp
@@ -132,18 +132,14 @@ static void InitServer(intptr_t context)
{
// Init ZCL Data Model and CHIP App Server
static chip::CommonCaseDeviceServerInitParams initParams;
+ initParams.InitializeStaticResourcesBeforeServerInit();
+ initParams.dataModelProvider = CodegenDataModelProviderInstance(initParams.persistentStorageDelegate);
#if CONFIG_ENABLE_AMEBA_TEST_EVENT_TRIGGER
static AmebaTestEventTriggerDelegate sTestEventTriggerDelegate{ ByteSpan(sTestEventTriggerEnableKey) };
initParams.testEventTriggerDelegate = &sTestEventTriggerDelegate;
#endif
- static AmebaObserver sAmebaObserver;
- initParams.appDelegate = &sAmebaObserver;
-
- initParams.InitializeStaticResourcesBeforeServerInit();
- initParams.dataModelProvider = CodegenDataModelProviderInstance(initParams.persistentStorageDelegate);
-
#if CONFIG_ENABLE_AMEBA_CRYPTO
ChipLogProgress(DeviceLayer, "platform crypto enabled!");
static chip::AmebaPersistentStorageOperationalKeystore sAmebaPersistentStorageOpKeystore;
@@ -151,10 +147,11 @@ static void InitServer(intptr_t context)
initParams.operationalKeystore = &sAmebaPersistentStorageOpKeystore;
#endif
+ static AmebaObserver sAmebaObserver;
+ initParams.appDelegate = &sAmebaObserver;
+ chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider);
chip::Server::GetInstance().Init(initParams);
gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage());
- // TODO: Use our own DeviceInfoProvider
- chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider);
#if CHIP_ENABLE_AMEBA_TERMS_AND_CONDITION
const Optional termsAndConditions = Optional(
diff --git a/examples/all-clusters-app/esp32/partitions.csv b/examples/all-clusters-app/esp32/partitions.csv
index 530cbadc617..c8b96a645f0 100644
--- a/examples/all-clusters-app/esp32/partitions.csv
+++ b/examples/all-clusters-app/esp32/partitions.csv
@@ -3,5 +3,9 @@
nvs, data, nvs, , 0xC000,
otadata, data, ota, , 0x2000,
phy_init, data, phy, , 0x1000,
-ota_0, app, ota_0, , 1900K,
-ota_1, app, ota_1, , 1900K,
+ota_0, app, ota_0, , 3800K,
+# This partition table is meant only for all-clusters-app.
+# OTA_0 partition size has been increased to fit all features,
+# and OTA_1 has been removed. This makes the app non-OTA upgradable.
+# Do NOT use this partition table in production builds,
+# production images must include an OTA_1 partition.
diff --git a/examples/all-clusters-app/linux/AllClustersCommandDelegate.cpp b/examples/all-clusters-app/linux/AllClustersCommandDelegate.cpp
index da94135ca40..c0cdea442e4 100644
--- a/examples/all-clusters-app/linux/AllClustersCommandDelegate.cpp
+++ b/examples/all-clusters-app/linux/AllClustersCommandDelegate.cpp
@@ -559,7 +559,7 @@ void AllClustersAppCommandHandler::HandleCommand(intptr_t context)
else if (name == "SimulateConfigurationVersionChange")
{
uint32_t configurationVersion = 0;
- ConfigurationMgr().GetConfigurationVersion(configurationVersion);
+ TEMPORARY_RETURN_IGNORED ConfigurationMgr().GetConfigurationVersion(configurationVersion);
configurationVersion++;
if (ConfigurationMgr().StoreConfigurationVersion(configurationVersion + 1) != CHIP_NO_ERROR)
@@ -592,7 +592,7 @@ void AllClustersAppCommandHandler::HandleCommand(intptr_t context)
}
else if (name == "UserIntentCommissioningStart")
{
- Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow();
+ TEMPORARY_RETURN_IGNORED Server::GetInstance().GetCommissioningWindowManager().OpenBasicCommissioningWindow();
}
else
{
@@ -616,7 +616,8 @@ void AllClustersAppCommandHandler::OnRebootSignalHandler(BootReasonType bootReas
if (ConfigurationMgr().StoreBootReason(static_cast(bootReason)) == CHIP_NO_ERROR)
{
Server::GetInstance().GenerateShutDownEvent();
- PlatformMgr().ScheduleWork([](intptr_t) { PlatformMgr().StopEventLoopTask(); });
+ TEMPORARY_RETURN_IGNORED PlatformMgr().ScheduleWork(
+ [](intptr_t) { TEMPORARY_RETURN_IGNORED PlatformMgr().StopEventLoopTask(); });
}
else
{
@@ -915,15 +916,18 @@ void AllClustersAppCommandHandler::OnOvenOperationalStateChange(std::string devi
OperationalState::Instance * operationalStateInstance = OvenCavityOperationalState::GetOperationalStateInstance();
if (operation == "Start" || operation == "Resume")
{
- operationalStateInstance->SetOperationalState(to_underlying(OperationalState::OperationalStateEnum::kRunning));
+ TEMPORARY_RETURN_IGNORED operationalStateInstance->SetOperationalState(
+ to_underlying(OperationalState::OperationalStateEnum::kRunning));
}
else if (operation == "Pause")
{
- operationalStateInstance->SetOperationalState(to_underlying(OperationalState::OperationalStateEnum::kPaused));
+ TEMPORARY_RETURN_IGNORED operationalStateInstance->SetOperationalState(
+ to_underlying(OperationalState::OperationalStateEnum::kPaused));
}
else if (operation == "Stop")
{
- operationalStateInstance->SetOperationalState(to_underlying(OperationalState::OperationalStateEnum::kStopped));
+ TEMPORARY_RETURN_IGNORED operationalStateInstance->SetOperationalState(
+ to_underlying(OperationalState::OperationalStateEnum::kStopped));
}
else if (operation == "OnFault")
{
@@ -967,7 +971,7 @@ void AllClustersAppCommandHandler::OnSoilMoistureChange(EndpointId endpointId, D
ChipLogDetail(NotSpecified, "Set SoilMoisture value to %u", soilMoisture.Value());
}
- SoilMeasurement::SetSoilMoistureMeasuredValue(soilMoisture);
+ TEMPORARY_RETURN_IGNORED SoilMeasurement::SetSoilMoistureMeasuredValue(soilMoisture);
}
void AllClustersAppCommandHandler::HandleSetOccupancyChange(EndpointId endpointId, uint8_t newOccupancyValue)
@@ -1044,5 +1048,6 @@ void AllClustersCommandDelegate::OnEventCommandReceived(const char * json)
return;
}
- chip::DeviceLayer::PlatformMgr().ScheduleWork(AllClustersAppCommandHandler::HandleCommand, reinterpret_cast(handler));
+ TEMPORARY_RETURN_IGNORED chip::DeviceLayer::PlatformMgr().ScheduleWork(AllClustersAppCommandHandler::HandleCommand,
+ reinterpret_cast(handler));
}
diff --git a/examples/all-clusters-app/linux/AppOptions.cpp b/examples/all-clusters-app/linux/AppOptions.cpp
index d0dd6250dd4..dcd9d88fdc8 100644
--- a/examples/all-clusters-app/linux/AppOptions.cpp
+++ b/examples/all-clusters-app/linux/AppOptions.cpp
@@ -67,7 +67,7 @@ struct MockClock : public ClockBase
MockClock() : mRealClock(SystemClock()) { Clock::Internal::SetSystemClockForTesting(this); }
~MockClock() { Clock::Internal::SetSystemClockForTesting(&mRealClock); }
- void SetUTCTime(Microseconds64 aOverride) { GetOffsetFrom(mRealClock, aOverride, mOffset); }
+ void SetUTCTime(Microseconds64 aOverride) { TEMPORARY_RETURN_IGNORED GetOffsetFrom(mRealClock, aOverride, mOffset); }
Microseconds64 GetMonotonicMicroseconds64() override { return mRealClock.GetMonotonicMicroseconds64(); }
Milliseconds64 GetMonotonicMilliseconds64() override { return mRealClock.GetMonotonicMilliseconds64(); }
diff --git a/examples/all-clusters-app/linux/BUILD.gn b/examples/all-clusters-app/linux/BUILD.gn
index 1bf679b50c0..a868694254d 100644
--- a/examples/all-clusters-app/linux/BUILD.gn
+++ b/examples/all-clusters-app/linux/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Project CHIP Authors
+# Copyright (c) 2020-2026 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.
@@ -34,8 +34,6 @@ source_set("chip-all-clusters-common") {
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/boolcfg-stub.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp",
- "${chip_root}/examples/all-clusters-app/all-clusters-common/src/camera-av-settings-user-level-management-stub.cpp",
- "${chip_root}/examples/all-clusters-app/all-clusters-common/src/camera-av-stream-delegate-impl.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/chime-instance.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/concentration-measurement-instances.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/dishwasher-alarm-stub.cpp",
@@ -50,7 +48,6 @@ source_set("chip-all-clusters-common") {
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/operational-state-delegate-impl.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/oven-modes.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/oven-operational-state-delegate.cpp",
- "${chip_root}/examples/all-clusters-app/all-clusters-common/src/push-av-stream-transport-delegate-impl.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-delegates.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/rvc-modes.cpp",
"${chip_root}/examples/all-clusters-app/all-clusters-common/src/rvc-operational-state-delegate-impl.cpp",
diff --git a/examples/all-clusters-app/linux/ButtonEventsSimulator.cpp b/examples/all-clusters-app/linux/ButtonEventsSimulator.cpp
index 0122eba4336..2e6e638cbc6 100644
--- a/examples/all-clusters-app/linux/ButtonEventsSimulator.cpp
+++ b/examples/all-clusters-app/linux/ButtonEventsSimulator.cpp
@@ -196,7 +196,7 @@ void ButtonEventsSimulator::SetState(ButtonEventsSimulator::State newState)
void ButtonEventsSimulator::StartTimer(System::Clock::Timeout duration)
{
- chip::DeviceLayer::SystemLayer().StartTimer(duration, &ButtonEventsSimulator::OnTimerDone, this);
+ TEMPORARY_RETURN_IGNORED chip::DeviceLayer::SystemLayer().StartTimer(duration, &ButtonEventsSimulator::OnTimerDone, this);
}
void ButtonEventsSimulator::Next()
diff --git a/examples/all-clusters-app/linux/main-common.cpp b/examples/all-clusters-app/linux/main-common.cpp
index 6ea446f4ff3..239c629ac91 100644
--- a/examples/all-clusters-app/linux/main-common.cpp
+++ b/examples/all-clusters-app/linux/main-common.cpp
@@ -1,6 +1,6 @@
/*
*
- * Copyright (c) 2020 Project CHIP Authors
+ * Copyright (c) 2020-2026 Project CHIP Authors
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +22,6 @@
#include "WindowCoveringManager.h"
#include "air-quality-instance.h"
#include "app-common/zap-generated/ids/Clusters.h"
-#include "camera-av-settings-user-level-management-instance.h"
#include "dishwasher-mode.h"
#include "include/diagnostic-logs-provider-delegate-impl.h"
#include "include/tv-callbacks.h"
@@ -33,7 +32,6 @@
#include "operational-state-delegate-impl.h"
#include "oven-modes.h"
#include "oven-operational-state-delegate.h"
-#include "push-av-stream-transport-delegate-impl.h"
#include "resource-monitoring-delegates.h"
#include "rvc-modes.h"
#include "rvc-operational-state-delegate-impl.h"
@@ -51,7 +49,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -119,7 +116,6 @@ Clusters::TemperatureControl::AppSupportedTemperatureLevelsDelegate sAppSupporte
Clusters::ModeSelect::StaticSupportedModesManager sStaticSupportedModesManager;
Clusters::ValveConfigurationAndControl::ValveControlDelegate sValveDelegate;
Clusters::TimeSynchronization::ExtendedTimeSyncDelegate sTimeSyncDelegate;
-Clusters::PushAvStreamTransport::PushAvStreamTransportManager gPushAvStreamTransportManager;
// Please refer to https://github.com/CHIP-Specifications/connectedhomeip-spec/blob/master/src/namespaces
constexpr const uint8_t kNamespaceCommon = 7;
@@ -193,7 +189,7 @@ void ApplicationInit()
if ((!path.empty()) and (sChipNamedPipeCommands.Start(path, &sAllClustersCommandDelegate) != CHIP_NO_ERROR))
{
ChipLogError(NotSpecified, "Failed to start CHIP NamedPipeCommands");
- sChipNamedPipeCommands.Stop();
+ TEMPORARY_RETURN_IGNORED sChipNamedPipeCommands.Stop();
}
#ifdef MATTER_DM_PLUGIN_DISHWASHER_ALARM_SERVER
@@ -213,20 +209,21 @@ void ApplicationInit()
VerifyOrDie(Clusters::UnitLocalization::UnitLocalizationServer::Instance().SetTemperatureUnit(
Clusters::UnitLocalization::TempUnitEnum::kFahrenheit) == CHIP_NO_ERROR);
- Clusters::PushAvStreamTransport::SetDelegate(chip::EndpointId(1), &gPushAvStreamTransportManager);
- Clusters::PushAvStreamTransport::SetTLSClientManagementDelegate(chip::EndpointId(1),
- &Clusters::TlsClientManagementCommandDelegate::GetInstance());
-
VerifyOrDie(CodegenDataModelProvider::Instance().Registry().Register(gIdentifyCluster1.Registration()) == CHIP_NO_ERROR);
VerifyOrDie(CodegenDataModelProvider::Instance().Registry().Register(gIdentifyCluster2.Registration()) == CHIP_NO_ERROR);
VerifyOrDie(CodegenDataModelProvider::Instance().Registry().Register(gIdentifyCluster3.Registration()) == CHIP_NO_ERROR);
VerifyOrDie(CodegenDataModelProvider::Instance().Registry().Register(gIdentifyCluster4.Registration()) == CHIP_NO_ERROR);
- SetTagList(/* endpoint= */ 0, Span(gEp0TagList));
- SetTagList(/* endpoint= */ 1, Span(gEp1TagList));
- SetTagList(/* endpoint= */ 2, Span(gEp2TagList));
- SetTagList(/* endpoint= */ 3, Span(gEp3TagList));
- SetTagList(/* endpoint= */ 4, Span(gEp4TagList));
+ TEMPORARY_RETURN_IGNORED SetTagList(/* endpoint= */ 0,
+ Span(gEp0TagList));
+ TEMPORARY_RETURN_IGNORED SetTagList(/* endpoint= */ 1,
+ Span(gEp1TagList));
+ TEMPORARY_RETURN_IGNORED SetTagList(/* endpoint= */ 2,
+ Span(gEp2TagList));
+ TEMPORARY_RETURN_IGNORED SetTagList(/* endpoint= */ 3,
+ Span(gEp3TagList));
+ TEMPORARY_RETURN_IGNORED SetTagList(/* endpoint= */ 4,
+ Span(gEp4TagList));
}
void ApplicationShutdown()
diff --git a/examples/all-clusters-app/linux/main.cpp b/examples/all-clusters-app/linux/main.cpp
index 2d83c132eec..5736618b620 100644
--- a/examples/all-clusters-app/linux/main.cpp
+++ b/examples/all-clusters-app/linux/main.cpp
@@ -19,6 +19,8 @@
#include "AppMain.h"
#include "AppOptions.h"
#include "binding-handler.h"
+#include "tls-certificate-management-instance.h"
+#include "tls-client-management-instance.h"
// Network commissioning
namespace {
@@ -31,6 +33,11 @@ int main(int argc, char * argv[])
ChipLinuxAppInit(argc, argv, AppOptions::GetOptions(), chip::MakeOptional(kNetworkCommissioningEndpointSecondary)) == 0);
VerifyOrDie(InitBindingHandlers() == CHIP_NO_ERROR);
+ // Initialize TLS Client and Certificate Management delegates before server starts
+ // This must be called before ChipLinuxAppMainLoop() which initializes the server
+ chip::app::Clusters::InitializeTlsClientManagement();
+ chip::app::Clusters::InitializeTlsCertificateManagement();
+
ChipLinuxAppMainLoop();
return 0;
diff --git a/examples/all-clusters-app/nxp/rt/rt1060/BUILD.gn b/examples/all-clusters-app/nxp/rt/rt1060/BUILD.gn
deleted file mode 100644
index 4faecbd23a4..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1060/BUILD.gn
+++ /dev/null
@@ -1,304 +0,0 @@
-# Copyright (c) 2021-2023 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/build.gni")
-import("//build_overrides/chip.gni")
-import("//build_overrides/nxp_sdk.gni")
-import("//build_overrides/openthread.gni")
-import("${chip_root}/src/platform/device.gni")
-
-#allows to get common NXP SDK gn options
-import("${nxp_sdk_build_root}/nxp_sdk.gni")
-
-# Allows to get various RT gn options
-import("${nxp_sdk_build_root}/${nxp_sdk_name}/rt_sdk.gni")
-
-import("${chip_root}/src/platform/nxp/${nxp_platform}/args.gni")
-import(
- "${nxp_sdk_build_root}/${nxp_sdk_name}/${rt_platform}/${rt_platform}.gni")
-import("${nxp_sdk_build_root}/${nxp_sdk_name}/nxp_executable.gni")
-
-assert(current_os == "freertos")
-assert(target_os == "freertos")
-assert(nxp_platform == "rt/rt1060")
-
-declare_args() {
- # Allows to enable to ota_provider support
- enable_ota_provider = false
-
- # Allows to connect to a predefine Wi-Fi network at boot
- wifi_auto_connect_at_boot = false
- wifi_auto_connect_at_boot_ssid = ""
- wifi_auto_connect_at_boot_password = ""
-
- # Setup discriminator as argument
- setup_discriminator = 3840
-}
-
-example_platform_dir =
- "${nxp_sdk_matter_support_root}/examples/platform/${nxp_platform}"
-common_example_dir = "${chip_root}/examples/platform/nxp/common"
-
-app_common_folder = "all-clusters-app/all-clusters-common"
-
-# Create here the SDK instance.
-# Particular sources/defines/includes could be added/changed depending on the target application.
-rt_sdk("sdk") {
- defines = []
-
- cflags = []
- public_deps = []
- public_configs = []
- sources = []
- include_dirs = []
-
- # Indicate paths to default board files
- include_dirs += [ "${example_platform_dir}/board/" ]
-
- # RT1060 rev A use same pin mux as rev B
- # If user needs different pin mux files for rev A and rev B boards, the source and include from below needs to be updated accordingly
- if (evkname == "evkmimxrt1060") {
- include_dirs += [ "${example_platform_dir}/board/evkbmimxrt1060/" ]
- sources += [ "${example_platform_dir}/board/evkbmimxrt1060/pin_mux.c" ]
- } else {
- include_dirs += [ "${example_platform_dir}/board/${evkname}/" ]
- sources += [ "${example_platform_dir}/board/${evkname}/pin_mux.c" ]
- }
-
- if (iw416_transceiver || w8801_transceiver || iwx12_transceiver) {
- if (evkname == "evkmimxrt1060") {
- include_dirs += [ "${example_platform_dir}/board/evkbmimxrt1060/" ]
- sources +=
- [ "${example_platform_dir}/board/evkbmimxrt1060/sdmmc_config.c" ]
- sources +=
- [ "${example_platform_dir}/board/evkbmimxrt1060/wifi_bt_config.c" ]
- } else {
- include_dirs += [ "${example_platform_dir}/board/${evkname}/" ]
- sources += [ "${example_platform_dir}/board/${evkname}/sdmmc_config.c" ]
- sources += [ "${example_platform_dir}/board/${evkname}/wifi_bt_config.c" ]
- }
- }
-
- sources += [ "${example_platform_dir}/board/hardware_init.c" ]
- sources += [ "${example_platform_dir}/board/clock_config.c" ]
- sources += [ "${example_platform_dir}/board/board.c" ]
- sources += [ "${example_platform_dir}/board/peripherals.c" ]
-
- # Indicate the path to CHIPProjectConfig.h
- include_dirs += [ "include/config" ]
-
- # Indicate the default path to FreeRTOSConfig.h
- include_dirs += [ "${example_platform_dir}/app/project_include/freeRTOS" ]
-
- # Indicate the default path to OpenThreadConfig.h
- include_dirs += [ "${example_platform_dir}/app/project_include/openthread" ]
-
- # For matter with BR feature, increase FreeRTOS heap size
- if (chip_enable_wifi && chip_enable_openthread) {
- defines += [ "configTOTAL_HEAP_SIZE=(size_t)(170 * 1024)" ]
- }
-
- defines += [
- "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setup_discriminator}",
- ]
-}
-
-# Create the SDK driver instance.
-# Particular sources/defines/includes could be added to add other drivers not available in the default sdk driver template
-rt1060_sdk_drivers("sdk_driver") {
-}
-
-rt_executable("all_cluster_app") {
- output_name = "chip-rt1060-all-cluster-example"
-
- defines = [
- "CONFIG_RENDEZVOUS_MODE=7",
- "CONFIG_APP_FREERTOS_OS=1",
- ]
-
- if (chip_enable_openthread) {
- defines += [ "CONFIG_NET_L2_OPENTHREAD=1" ]
- }
-
- include_dirs = [
- "../../common/main/include",
- "../../common/main",
- "${chip_root}/examples/all-clusters-app/all-clusters-common/include",
- "${chip_root}/examples/providers/",
- ]
-
- sources = [
- "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp",
- "../../common/main/AppTask.cpp",
- "../../common/main/DeviceCallbacks.cpp",
- "../../common/main/ZclCallbacks.cpp",
- "../../common/main/include/AppEvent.h",
- "../../common/main/include/AppTask.h",
- "../../common/main/include/DeviceCallbacks.h",
- "../../common/main/main.cpp",
- ]
-
- # App common files
- include_dirs += [
- "${common_example_dir}/icd/include",
- "${common_example_dir}/matter_cli/include",
- "${common_example_dir}/device_manager/include",
- "${common_example_dir}/device_callbacks/include",
- "${common_example_dir}/matter_button/include",
- "${common_example_dir}/factory_data/include",
- "${common_example_dir}/app_task/include",
- ]
-
- sources += [
- "${chip_root}/examples/platform/nxp/${nxp_platform}/factory_data/source/AppFactoryDataExample.cpp",
- "${common_example_dir}/app_task/source/AppTaskBase.cpp",
- "${common_example_dir}/app_task/source/AppTaskFreeRTOS.cpp",
- "${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
- "${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp",
- "${common_example_dir}/icd/source/ICDUtil.cpp",
- "${common_example_dir}/matter_button/source/ButtonRegistrationEmpty.cpp",
- ]
-
- deps = [
- "${chip_root}/examples/${app_common_folder}",
- "${chip_root}/examples/providers:device_info_provider_please_do_not_reuse_as_is",
- "${chip_root}/src/app/clusters/network-commissioning:network-commissioning",
- "${chip_root}/src/setup_payload:onboarding-codes-utils",
- ]
-
- sources += [
- "${chip_root}/examples/${app_common_folder}/src/bridged-actions-stub.cpp",
- "${chip_root}/examples/${app_common_folder}/src/smco-stub.cpp",
- "${chip_root}/examples/${app_common_folder}/src/static-supported-modes-manager.cpp",
- ]
-
- if (nxp_enable_matter_cli) {
- defines += [ "ENABLE_CHIP_SHELL" ]
- deps += [
- "${chip_root}/examples/shell/shell_common:shell_common",
- "${chip_root}/src/lib/shell:shell",
- ]
- sources += [
- "${common_example_dir}/matter_cli/source/AppCLIBase.cpp",
- "${common_example_dir}/matter_cli/source/AppCLIFreeRTOS.cpp",
- ]
- }
-
- if (chip_enable_ota_requestor) {
- include_dirs += [ "${common_example_dir}/ota_requestor/include" ]
- sources += [
- "${common_example_dir}/ota_requestor/source/OTARequestorInitiator.cpp",
- "${common_example_dir}/ota_requestor/source/OTARequestorInitiatorCommon.cpp",
- ]
- }
-
- if (wifi_auto_connect_at_boot) {
- assert(wifi_auto_connect_at_boot_ssid != "" &&
- wifi_auto_connect_at_boot_password != "",
- "WiFi SSID and password must be specified at build time!")
-
- defines += [
- "CONFIG_CHIP_APP_WIFI_CONNECT_AT_BOOT=1",
- "CONFIG_CHIP_APP_WIFI_SSID=\"${wifi_auto_connect_at_boot_ssid}\"",
- "CONFIG_CHIP_APP_WIFI_PASSWORD=\"${wifi_auto_connect_at_boot_password}\"",
- ]
-
- include_dirs += [ "${common_example_dir}/wifi_connect/include" ]
- sources += [ "${common_example_dir}/wifi_connect/source/WifiConnect.cpp" ]
- }
-
- if (enable_ota_provider) {
- defines += [ "CONFIG_CHIP_OTA_PROVIDER=1" ]
-
- include_dirs += [
- "${common_example_dir}/ota_provider/include",
- "${common_example_dir}/ota_provider/ota-provider-common",
- ]
-
- sources += [
- "${common_example_dir}/ota_provider/ota-provider-common/RTBdxOtaSender.cpp",
- "${common_example_dir}/ota_provider/ota-provider-common/RTOTAProviderExample.cpp",
- "${common_example_dir}/ota_provider/source/OTAProvider.cpp",
- ]
-
- deps += [
- "${chip_root}/src/app/server",
- "${chip_root}/src/protocols/bdx",
- "${chip_root}/third_party/jsoncpp",
- ]
- }
-
- if (chip_enable_ble) {
- defines += [ "APP_BT_DEVICE_NAME=\"NXP-AllClustersApp\"" ]
- }
-
- # In case a dedicated assert function needs to be supported the flag sdk_fsl_assert_support should be set to false
- # The would add to the build a dedicated application assert implementation.
- if (!sdk_fsl_assert_support) {
- sources += [ "${common_example_dir}/app_assert/source/AppAssert.cpp" ]
- }
-
- cflags = [ "-Wconversion" ]
-
- ldscript =
- "${example_platform_dir}/app/ldscripts/MIMXRT1062xxxxx_flexspi_nor.ld"
-
- inputs = [ ldscript ]
-
- ldflags = [
- "-T" + rebase_path(ldscript, root_build_dir),
- "-fno-common",
- "-Wl,--defsym=__stack_size__=2048",
- "-ffreestanding",
- "-fno-builtin",
- "-mapcs",
- "-u qspiflash_config",
- "-u image_vector_table",
- "-u boot_data",
- "-u dcd_data",
- "-Wl,-print-memory-usage",
- "-Wl,--no-warn-rwx-segments",
- ]
-
- if (evkname == "evkcmimxrt1060") {
- ldflags += [ "-Wl,--defsym=gFlashSize_d=0x1000000" ]
- }
-
- if (enable_ota_provider) {
- # As the OTA file will be stored in the littlefs file system, it is required to increase the size of the file system
- # To be able to store an OTA file with a MAX size of 640K,
- # it recommended to size the file system with:
- # 161 sectors of 4K => reserved for the OTA file
- # 32 sectors of 4K => reserved for Matter/OT/BLE settings storage
- ldflags += [ "-Wl,--defsym=gNVMSectorCountLink_d=193" ]
- }
-
- if (chip_enable_ota_requestor) {
- # If OTA build flag is enabled,
- # we would need to reserve enough space for the bootloader (MCUBoot)
- # MCUBoot requires 0x11000 Bytes to be reserved at the base of the flash
- # Consequently, some sections will need to be shifted
- ldflags += [ "-Wl,--defsym=__m_mcuboot_size__=0x40000" ]
- }
-
- output_dir = root_out_dir
-}
-
-group("rt1060") {
- deps = [ ":all_cluster_app" ]
-}
-
-group("default") {
- deps = [ ":rt1060" ]
-}
diff --git a/examples/all-clusters-app/nxp/rt/rt1060/args.gni b/examples/all-clusters-app/nxp/rt/rt1060/args.gni
deleted file mode 100644
index c2d91a5db7b..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1060/args.gni
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2023 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")
-
-# SDK target definitions
-nxp_sdk_target = get_label_info(":sdk", "label_no_toolchain")
-nxp_sdk_driver_target = get_label_info(":sdk_driver", "label_no_toolchain")
diff --git a/examples/all-clusters-app/nxp/rt/rt1060/build_overrides b/examples/all-clusters-app/nxp/rt/rt1060/build_overrides
deleted file mode 120000
index f10867042f4..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1060/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../../../build_overrides
\ No newline at end of file
diff --git a/examples/all-clusters-app/nxp/rt/rt1060/include/config/CHIPProjectConfig.h b/examples/all-clusters-app/nxp/rt/rt1060/include/config/CHIPProjectConfig.h
deleted file mode 100644
index 0ca6dc65b21..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1060/include/config/CHIPProjectConfig.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright (c) 2020 Project CHIP Authors
- * Copyright (c) 2020 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.
- */
-
-/**
- * @file
- * Example project configuration file for CHIP.
- *
- * This is a place to put application or project-specific overrides
- * to the default configuration values for general CHIP features.
- *
- */
-
-#pragma once
-
-/*
- * Tells to the platform Factory Data Provider whether to use the example configuration or real/provisioned data.
- */
-#ifndef CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA
-#define CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA 0
-#endif
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID
- *
- * 0xFFF1: Test vendor.
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID 0xFFF1
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID
- *
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8005
-
-#if !CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA
-// Use a default pairing code if one hasn't been provisioned in flash.
-#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE
-#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR
-#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
-#endif
-
-// Use a default pairing code if one hasn't been provisioned in flash.
-#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS"
-
-/**
- * CHIP_DEVICE_CONFIG_USE_TEST_SERIAL_NUMBER
- *
- * Enables the use of a hard-coded default serial number if none
- * is found in CHIP NV storage.
- */
-#define CHIP_DEVICE_CONFIG_USE_TEST_SERIAL_NUMBER "DUMMY_SN"
-
-#endif /* !CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA */
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION
- *
- * The hardware version number assigned to device or product by the device vendor. This
- * number is scoped to the device product id, and typically corresponds to a revision of the
- * physical device, a change to its packaging, and/or a change to its marketing presentation.
- * This value is generally *not* incremented for device software versions.
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 100
-
-#ifndef CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING "v0.1.0"
-#endif
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
- *
- * A string identifying the software version running on the device.
- * CHIP currently expects the software version to be in the format
- * {MAJOR_VERSION}.0d{MINOR_VERSION}
- */
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING NXP_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION NXP_CONFIG_DEVICE_SOFTWARE_VERSION
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME
-#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME "NXP Semiconductors"
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME
-#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME "NXP Demo App"
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_CERTIFICATION_DECLARATION
-//-> format_version = 1
-//-> vendor_id = 0xFFF1
-//-> product_id_array = [ 0x8000, 0x8001, 0x8002, 0x8003, 0x8004, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 0x800A, 0x800B,
-// 0x800C, 0x800D, 0x800E, 0x800F, 0x8010, 0x8011, 0x8012, 0x8013, 0x8014, 0x8015, 0x8016, 0x8017, 0x8018, 0x8019, 0x801A,
-// 0x801B, 0x801C, 0x801D, 0x801E, 0x801F, 0x8020, 0x8021, 0x8022, 0x8023, 0x8024, 0x8025, 0x8026, 0x8027, 0x8028, 0x8029,
-// 0x802A, 0x802B, 0x802C, 0x802D, 0x802E, 0x802F, 0x8030, 0x8031, 0x8032, 0x8033, 0x8034, 0x8035, 0x8036, 0x8037, 0x8038,
-// 0x8039, 0x803A, 0x803B, 0x803C, 0x803D, 0x803E, 0x803F, 0x8040, 0x8041, 0x8042, 0x8043, 0x8044, 0x8045, 0x8046, 0x8047,
-// 0x8048, 0x8049, 0x804A, 0x804B, 0x804C, 0x804D, 0x804E, 0x804F, 0x8050, 0x8051, 0x8052, 0x8053, 0x8054, 0x8055, 0x8056,
-// 0x8057, 0x8058, 0x8059, 0x805A, 0x805B, 0x805C, 0x805D, 0x805E, 0x805F, 0x8060, 0x8061, 0x8062, 0x8063 ]
-//-> device_type_id = 0x0016
-//-> certificate_id = "ZIG20142ZB330003-24"
-//-> security_level = 0
-//-> security_information = 0
-//-> version_number = 0x2694
-//-> certification_type = 0
-//-> dac_origin_vendor_id is not present
-//-> dac_origin_product_id is not present
-#define CHIP_DEVICE_CONFIG_CERTIFICATION_DECLARATION \
- { \
- 0x30, 0x82, 0x02, 0x19, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x02, 0x0a, 0x30, \
- 0x82, 0x02, 0x06, 0x02, 0x01, 0x03, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, \
- 0x02, 0x01, 0x30, 0x82, 0x01, 0x71, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, \
- 0x01, 0x62, 0x04, 0x82, 0x01, 0x5e, 0x15, 0x24, 0x00, 0x01, 0x25, 0x01, 0xf1, 0xff, 0x36, 0x02, 0x05, 0x00, 0x80, \
- 0x05, 0x01, 0x80, 0x05, 0x02, 0x80, 0x05, 0x03, 0x80, 0x05, 0x04, 0x80, 0x05, 0x05, 0x80, 0x05, 0x06, 0x80, 0x05, \
- 0x07, 0x80, 0x05, 0x08, 0x80, 0x05, 0x09, 0x80, 0x05, 0x0a, 0x80, 0x05, 0x0b, 0x80, 0x05, 0x0c, 0x80, 0x05, 0x0d, \
- 0x80, 0x05, 0x0e, 0x80, 0x05, 0x0f, 0x80, 0x05, 0x10, 0x80, 0x05, 0x11, 0x80, 0x05, 0x12, 0x80, 0x05, 0x13, 0x80, \
- 0x05, 0x14, 0x80, 0x05, 0x15, 0x80, 0x05, 0x16, 0x80, 0x05, 0x17, 0x80, 0x05, 0x18, 0x80, 0x05, 0x19, 0x80, 0x05, \
- 0x1a, 0x80, 0x05, 0x1b, 0x80, 0x05, 0x1c, 0x80, 0x05, 0x1d, 0x80, 0x05, 0x1e, 0x80, 0x05, 0x1f, 0x80, 0x05, 0x20, \
- 0x80, 0x05, 0x21, 0x80, 0x05, 0x22, 0x80, 0x05, 0x23, 0x80, 0x05, 0x24, 0x80, 0x05, 0x25, 0x80, 0x05, 0x26, 0x80, \
- 0x05, 0x27, 0x80, 0x05, 0x28, 0x80, 0x05, 0x29, 0x80, 0x05, 0x2a, 0x80, 0x05, 0x2b, 0x80, 0x05, 0x2c, 0x80, 0x05, \
- 0x2d, 0x80, 0x05, 0x2e, 0x80, 0x05, 0x2f, 0x80, 0x05, 0x30, 0x80, 0x05, 0x31, 0x80, 0x05, 0x32, 0x80, 0x05, 0x33, \
- 0x80, 0x05, 0x34, 0x80, 0x05, 0x35, 0x80, 0x05, 0x36, 0x80, 0x05, 0x37, 0x80, 0x05, 0x38, 0x80, 0x05, 0x39, 0x80, \
- 0x05, 0x3a, 0x80, 0x05, 0x3b, 0x80, 0x05, 0x3c, 0x80, 0x05, 0x3d, 0x80, 0x05, 0x3e, 0x80, 0x05, 0x3f, 0x80, 0x05, \
- 0x40, 0x80, 0x05, 0x41, 0x80, 0x05, 0x42, 0x80, 0x05, 0x43, 0x80, 0x05, 0x44, 0x80, 0x05, 0x45, 0x80, 0x05, 0x46, \
- 0x80, 0x05, 0x47, 0x80, 0x05, 0x48, 0x80, 0x05, 0x49, 0x80, 0x05, 0x4a, 0x80, 0x05, 0x4b, 0x80, 0x05, 0x4c, 0x80, \
- 0x05, 0x4d, 0x80, 0x05, 0x4e, 0x80, 0x05, 0x4f, 0x80, 0x05, 0x50, 0x80, 0x05, 0x51, 0x80, 0x05, 0x52, 0x80, 0x05, \
- 0x53, 0x80, 0x05, 0x54, 0x80, 0x05, 0x55, 0x80, 0x05, 0x56, 0x80, 0x05, 0x57, 0x80, 0x05, 0x58, 0x80, 0x05, 0x59, \
- 0x80, 0x05, 0x5a, 0x80, 0x05, 0x5b, 0x80, 0x05, 0x5c, 0x80, 0x05, 0x5d, 0x80, 0x05, 0x5e, 0x80, 0x05, 0x5f, 0x80, \
- 0x05, 0x60, 0x80, 0x05, 0x61, 0x80, 0x05, 0x62, 0x80, 0x05, 0x63, 0x80, 0x18, 0x24, 0x03, 0x16, 0x2c, 0x04, 0x13, \
- 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x32, 0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x33, 0x2d, 0x32, 0x34, \
- 0x24, 0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x94, 0x26, 0x24, 0x08, 0x00, 0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, \
- 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa, 0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a, 0xdd, \
- 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, \
- 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02, 0x20, 0x24, 0xe5, \
- 0xd1, 0xf4, 0x7a, 0x7d, 0x7b, 0x0d, 0x20, 0x6a, 0x26, 0xef, 0x69, 0x9b, 0x7c, 0x97, 0x57, 0xb7, 0x2d, 0x46, 0x90, \
- 0x89, 0xde, 0x31, 0x92, 0xe6, 0x78, 0xc7, 0x45, 0xe7, 0xf6, 0x0c, 0x02, 0x21, 0x00, 0xf8, 0xaa, 0x2f, 0xa7, 0x11, \
- 0xfc, 0xb7, 0x9b, 0x97, 0xe3, 0x97, 0xce, 0xda, 0x66, 0x7b, 0xae, 0x46, 0x4e, 0x2b, 0xd3, 0xff, 0xdf, 0xc3, 0xcc, \
- 0xed, 0x7a, 0xa8, 0xca, 0x5f, 0x4c, 0x1a, 0x7c \
- }
-#endif
-
-/**
- * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC
- *
- * Enables synchronizing the device's real time clock with a remote CHIP Time service
- * using the CHIP Time Sync protocol.
- */
-// #define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 1
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_WDM_OFFLOAD
- *
- * Select the ability to offload event logs to any interested subscribers using WDM.
- */
-#define CHIP_CONFIG_EVENT_LOGGING_WDM_OFFLOAD 1
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS
- *
- * Enable recording UTC timestamps.
- */
-#define CHIP_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS 1
-
-/**
- * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE
- *
- * A size, in bytes, of the individual debug event logging buffer.
- */
-#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512)
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE
- *
- * For a development build, set the default importance of events to be logged as Debug.
- * Since debug is the lowest importance level, this means all standard, critical, info and
- * debug importance level vi events get logged.
- */
-#if BUILD_RELEASE
-#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production
-#else
-#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug
-#endif // BUILD_RELEASE
-
-/* Increasing the retransmission interval of the MRP messages after subsequent failures */
-#ifndef CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL
-#define CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL (2000_ms32)
-#endif
-
-#define CHIP_CONFIG_ENABLE_ACL_EXTENSIONS 1
diff --git a/examples/all-clusters-app/nxp/rt/rt1060/third_party/connectedhomeip b/examples/all-clusters-app/nxp/rt/rt1060/third_party/connectedhomeip
deleted file mode 120000
index 305f2077ffe..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1060/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../..
\ No newline at end of file
diff --git a/examples/all-clusters-app/nxp/rt/rt1170/.gn b/examples/all-clusters-app/nxp/rt/rt1170/.gn
deleted file mode 100644
index 59dcfeb229a..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1170/.gn
+++ /dev/null
@@ -1,35 +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.
-
-import("//build_overrides/build.gni")
-import("//build_overrides/chip.gni")
-
-# The location of the build configuration file.
-buildconfig = "${build_root}/config/BUILDCONFIG.gn"
-
-# CHIP uses angle bracket includes.
-check_system_includes = true
-
-default_args = {
- target_cpu = "arm"
- target_os = "freertos"
-
- import("//args.gni")
-
- # Import common example GN args
- import("${chip_root}/examples/platform/nxp/common/gn/args.gni")
-
- # Import default platform configs
- import("${chip_root}/src/platform/nxp/rt/rt1170/args.gni")
-}
diff --git a/examples/all-clusters-app/nxp/rt/rt1170/BUILD.gn b/examples/all-clusters-app/nxp/rt/rt1170/BUILD.gn
deleted file mode 100644
index 1976700c579..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1170/BUILD.gn
+++ /dev/null
@@ -1,250 +0,0 @@
-# Copyright (c) 2021-2023 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/build.gni")
-import("//build_overrides/chip.gni")
-import("//build_overrides/nxp_sdk.gni")
-import("//build_overrides/openthread.gni")
-import("${chip_root}/src/platform/device.gni")
-
-#allows to get common NXP SDK gn options
-import("${nxp_sdk_build_root}/nxp_sdk.gni")
-
-# Allows to get various RT gn options
-import("${nxp_sdk_build_root}/${nxp_sdk_name}/rt_sdk.gni")
-
-import("${chip_root}/src/platform/nxp/${nxp_platform}/args.gni")
-import(
- "${nxp_sdk_build_root}/${nxp_sdk_name}/${rt_platform}/${rt_platform}.gni")
-import("${nxp_sdk_build_root}/${nxp_sdk_name}/nxp_executable.gni")
-
-assert(current_os == "freertos")
-assert(target_os == "freertos")
-assert(nxp_platform == "rt/rt1170")
-
-declare_args() {
- # Allows to connect to a predefine Wi-Fi network at boot
- wifi_auto_connect_at_boot = false
- wifi_auto_connect_at_boot_ssid = ""
- wifi_auto_connect_at_boot_password = ""
-
- # Setup discriminator as argument
- setup_discriminator = 3840
-}
-
-example_platform_dir =
- "${nxp_sdk_matter_support_root}/examples/platform/${nxp_platform}"
-common_example_dir = "${chip_root}/examples/platform/nxp/common"
-
-app_common_folder = "all-clusters-app/all-clusters-common"
-
-# Create here the SDK instance.
-# Particular sources/defines/includes could be added/changed depending on the target application.
-rt_sdk("sdk") {
- defines = []
-
- cflags = []
- public_deps = []
- public_configs = []
- sources = []
- include_dirs = []
-
- # Indicate paths to default board files
- include_dirs += [ "${example_platform_dir}/board/" ]
- sources += [ "${example_platform_dir}/board/pin_mux.c" ]
- sources += [ "${example_platform_dir}/board/hardware_init.c" ]
- sources += [ "${example_platform_dir}/board/clock_config.c" ]
- sources += [ "${example_platform_dir}/board/board.c" ]
- sources += [ "${example_platform_dir}/board/peripherals.c" ]
- sources += [ "${example_platform_dir}/board/sdmmc_config.c" ]
- sources += [ "${example_platform_dir}/board/wifi_bt_config.c" ]
-
- # Indicate the path to CHIPProjectConfig.h
- include_dirs += [ "include/config" ]
-
- # Indicate the default path to FreeRTOSConfig.h
- include_dirs += [ "${example_platform_dir}/app/project_include/freeRTOS" ]
-
- # Indicate the default path to OpenThreadConfig.h
- include_dirs += [ "${example_platform_dir}/app/project_include/openthread" ]
-
- # For matter with BR feature, increase FreeRTOS heap size
- if (chip_enable_wifi && chip_enable_openthread) {
- defines += [ "configTOTAL_HEAP_SIZE=(size_t)(170 * 1024)" ]
- }
-
- defines += [
- "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setup_discriminator}",
- ]
-}
-
-# Create the SDK driver instance.
-# Particular sources/defines/includes could be added to add other drivers not available in the default sdk driver template
-rt1170_sdk_drivers("sdk_driver") {
-}
-
-rt_executable("all_cluster_app") {
- output_name = "chip-rt1170-all-cluster-example"
-
- defines = [
- "CONFIG_RENDEZVOUS_MODE=7",
- "CONFIG_APP_FREERTOS_OS=1",
- ]
-
- if (chip_enable_openthread) {
- defines += [ "CONFIG_NET_L2_OPENTHREAD=1" ]
- }
-
- include_dirs = [
- "../../common/main/include",
- "../../common/main",
- "${chip_root}/examples/all-clusters-app/all-clusters-common/include",
- "${chip_root}/examples/providers/",
- ]
-
- sources = [
- "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp",
- "../../common/main/AppTask.cpp",
- "../../common/main/DeviceCallbacks.cpp",
- "../../common/main/ZclCallbacks.cpp",
- "../../common/main/include/AppEvent.h",
- "../../common/main/include/AppTask.h",
- "../../common/main/include/DeviceCallbacks.h",
- "../../common/main/main.cpp",
- ]
-
- # App common files
- include_dirs += [
- "${common_example_dir}/icd/include",
- "${common_example_dir}/matter_button/include",
- "${common_example_dir}/matter_cli/include",
- "${common_example_dir}/device_manager/include",
- "${common_example_dir}/device_callbacks/include",
- "${common_example_dir}/factory_data/include",
- "${common_example_dir}/app_task/include",
- ]
-
- sources += [
- "${common_example_dir}/app_task/source/AppTaskBase.cpp",
- "${common_example_dir}/app_task/source/AppTaskFreeRTOS.cpp",
- "${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
- "${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp",
- "${common_example_dir}/factory_data/source/AppFactoryDataDefaultImpl.cpp",
- "${common_example_dir}/icd/source/ICDUtil.cpp",
- "${common_example_dir}/matter_button/source/ButtonRegistrationEmpty.cpp",
- ]
-
- deps = [
- "${chip_root}/examples/${app_common_folder}",
- "${chip_root}/examples/providers:device_info_provider_please_do_not_reuse_as_is",
- "${chip_root}/src/app/clusters/network-commissioning:network-commissioning",
- "${chip_root}/src/setup_payload:onboarding-codes-utils",
- ]
-
- sources += [
- "${chip_root}/examples/${app_common_folder}/src/bridged-actions-stub.cpp",
- "${chip_root}/examples/${app_common_folder}/src/smco-stub.cpp",
- "${chip_root}/examples/${app_common_folder}/src/static-supported-modes-manager.cpp",
- ]
-
- if (nxp_enable_matter_cli) {
- defines += [ "ENABLE_CHIP_SHELL" ]
- deps += [
- "${chip_root}/examples/shell/shell_common:shell_common",
- "${chip_root}/src/lib/shell:shell",
- ]
- sources += [
- "${common_example_dir}/matter_cli/source/AppCLIBase.cpp",
- "${common_example_dir}/matter_cli/source/AppCLIFreeRTOS.cpp",
- ]
- }
-
- if (chip_enable_ota_requestor) {
- include_dirs += [ "${common_example_dir}/ota_requestor/include" ]
- sources += [
- "${common_example_dir}/ota_requestor/source/OTARequestorInitiator.cpp",
- "${common_example_dir}/ota_requestor/source/OTARequestorInitiatorCommon.cpp",
- ]
- }
-
- if (wifi_auto_connect_at_boot) {
- assert(wifi_auto_connect_at_boot_ssid != "" &&
- wifi_auto_connect_at_boot_password != "",
- "WiFi SSID and password must be specified at build time!")
-
- defines += [
- "CONFIG_CHIP_APP_WIFI_CONNECT_AT_BOOT=1",
- "CONFIG_CHIP_APP_WIFI_SSID=\"${wifi_auto_connect_at_boot_ssid}\"",
- "CONFIG_CHIP_APP_WIFI_PASSWORD=\"${wifi_auto_connect_at_boot_password}\"",
- ]
-
- include_dirs += [ "${common_example_dir}/wifi_connect/include" ]
- sources += [ "${common_example_dir}/wifi_connect/source/WifiConnect.cpp" ]
- }
-
- if (chip_enable_ble) {
- defines += [ "APP_BT_DEVICE_NAME=\"NXP-AllClustersApp\"" ]
- }
-
- # In case a dedicated assert function needs to be supported the flag sdk_fsl_assert_support should be set to false
- # The would add to the build a dedicated application assert implementation.
- if (!sdk_fsl_assert_support) {
- sources += [ "${common_example_dir}/app_assert/source/AppAssert.cpp" ]
- }
-
- cflags = [ "-Wconversion" ]
-
- ldscript =
- "${example_platform_dir}/app/ldscripts/MIMXRT1176xxxxx_cm7_flexspi_nor.ld"
-
- inputs = [ ldscript ]
-
- ldflags = [
- "-T" + rebase_path(ldscript, root_build_dir),
- "-fno-common",
- "-Wl,--defsym=__stack_size__=2048",
- "-ffreestanding",
- "-fno-builtin",
- "-mapcs",
- "-u qspiflash_config",
- "-u image_vector_table",
- "-u boot_data",
- "-u dcd_data",
- "-Wl,-print-memory-usage",
- "-Wl,--no-warn-rwx-segments",
- ]
-
- if (chip_enable_ota_requestor) {
- if (no_mcuboot) {
- # If "no_mcuboot" is set to true, the application will be linked at the base of the flash.
- print(
- "Warning : The OTA Requestor is enabled without MCUBoot. This will prevent the application from applying software updates.")
- } else {
- # we need to reserve enough space for the bootloader (MCUBoot)
- # MCUBoot requires 0x40000 Bytes to be reserved at the base of the flash
- # Consequently, some sections will need to be shifted
- ldflags += [ "-Wl,--defsym=__m_mcuboot_size__=0x40000" ]
- }
- }
-
- output_dir = root_out_dir
-}
-
-group("rt1170") {
- deps = [ ":all_cluster_app" ]
-}
-
-group("default") {
- deps = [ ":rt1170" ]
-}
diff --git a/examples/all-clusters-app/nxp/rt/rt1170/args.gni b/examples/all-clusters-app/nxp/rt/rt1170/args.gni
deleted file mode 100644
index c2d91a5db7b..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1170/args.gni
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2023 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")
-
-# SDK target definitions
-nxp_sdk_target = get_label_info(":sdk", "label_no_toolchain")
-nxp_sdk_driver_target = get_label_info(":sdk_driver", "label_no_toolchain")
diff --git a/examples/all-clusters-app/nxp/rt/rt1170/build_overrides b/examples/all-clusters-app/nxp/rt/rt1170/build_overrides
deleted file mode 120000
index f10867042f4..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1170/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../../../build_overrides
\ No newline at end of file
diff --git a/examples/all-clusters-app/nxp/rt/rt1170/include/config/CHIPProjectConfig.h b/examples/all-clusters-app/nxp/rt/rt1170/include/config/CHIPProjectConfig.h
deleted file mode 100644
index 0ca6dc65b21..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1170/include/config/CHIPProjectConfig.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright (c) 2020 Project CHIP Authors
- * Copyright (c) 2020 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.
- */
-
-/**
- * @file
- * Example project configuration file for CHIP.
- *
- * This is a place to put application or project-specific overrides
- * to the default configuration values for general CHIP features.
- *
- */
-
-#pragma once
-
-/*
- * Tells to the platform Factory Data Provider whether to use the example configuration or real/provisioned data.
- */
-#ifndef CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA
-#define CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA 0
-#endif
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID
- *
- * 0xFFF1: Test vendor.
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID 0xFFF1
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID
- *
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8005
-
-#if !CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA
-// Use a default pairing code if one hasn't been provisioned in flash.
-#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE
-#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR
-#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
-#endif
-
-// Use a default pairing code if one hasn't been provisioned in flash.
-#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS"
-
-/**
- * CHIP_DEVICE_CONFIG_USE_TEST_SERIAL_NUMBER
- *
- * Enables the use of a hard-coded default serial number if none
- * is found in CHIP NV storage.
- */
-#define CHIP_DEVICE_CONFIG_USE_TEST_SERIAL_NUMBER "DUMMY_SN"
-
-#endif /* !CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA */
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION
- *
- * The hardware version number assigned to device or product by the device vendor. This
- * number is scoped to the device product id, and typically corresponds to a revision of the
- * physical device, a change to its packaging, and/or a change to its marketing presentation.
- * This value is generally *not* incremented for device software versions.
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 100
-
-#ifndef CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING "v0.1.0"
-#endif
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
- *
- * A string identifying the software version running on the device.
- * CHIP currently expects the software version to be in the format
- * {MAJOR_VERSION}.0d{MINOR_VERSION}
- */
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING NXP_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION NXP_CONFIG_DEVICE_SOFTWARE_VERSION
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME
-#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME "NXP Semiconductors"
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME
-#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME "NXP Demo App"
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_CERTIFICATION_DECLARATION
-//-> format_version = 1
-//-> vendor_id = 0xFFF1
-//-> product_id_array = [ 0x8000, 0x8001, 0x8002, 0x8003, 0x8004, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 0x800A, 0x800B,
-// 0x800C, 0x800D, 0x800E, 0x800F, 0x8010, 0x8011, 0x8012, 0x8013, 0x8014, 0x8015, 0x8016, 0x8017, 0x8018, 0x8019, 0x801A,
-// 0x801B, 0x801C, 0x801D, 0x801E, 0x801F, 0x8020, 0x8021, 0x8022, 0x8023, 0x8024, 0x8025, 0x8026, 0x8027, 0x8028, 0x8029,
-// 0x802A, 0x802B, 0x802C, 0x802D, 0x802E, 0x802F, 0x8030, 0x8031, 0x8032, 0x8033, 0x8034, 0x8035, 0x8036, 0x8037, 0x8038,
-// 0x8039, 0x803A, 0x803B, 0x803C, 0x803D, 0x803E, 0x803F, 0x8040, 0x8041, 0x8042, 0x8043, 0x8044, 0x8045, 0x8046, 0x8047,
-// 0x8048, 0x8049, 0x804A, 0x804B, 0x804C, 0x804D, 0x804E, 0x804F, 0x8050, 0x8051, 0x8052, 0x8053, 0x8054, 0x8055, 0x8056,
-// 0x8057, 0x8058, 0x8059, 0x805A, 0x805B, 0x805C, 0x805D, 0x805E, 0x805F, 0x8060, 0x8061, 0x8062, 0x8063 ]
-//-> device_type_id = 0x0016
-//-> certificate_id = "ZIG20142ZB330003-24"
-//-> security_level = 0
-//-> security_information = 0
-//-> version_number = 0x2694
-//-> certification_type = 0
-//-> dac_origin_vendor_id is not present
-//-> dac_origin_product_id is not present
-#define CHIP_DEVICE_CONFIG_CERTIFICATION_DECLARATION \
- { \
- 0x30, 0x82, 0x02, 0x19, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x02, 0x0a, 0x30, \
- 0x82, 0x02, 0x06, 0x02, 0x01, 0x03, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, \
- 0x02, 0x01, 0x30, 0x82, 0x01, 0x71, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, \
- 0x01, 0x62, 0x04, 0x82, 0x01, 0x5e, 0x15, 0x24, 0x00, 0x01, 0x25, 0x01, 0xf1, 0xff, 0x36, 0x02, 0x05, 0x00, 0x80, \
- 0x05, 0x01, 0x80, 0x05, 0x02, 0x80, 0x05, 0x03, 0x80, 0x05, 0x04, 0x80, 0x05, 0x05, 0x80, 0x05, 0x06, 0x80, 0x05, \
- 0x07, 0x80, 0x05, 0x08, 0x80, 0x05, 0x09, 0x80, 0x05, 0x0a, 0x80, 0x05, 0x0b, 0x80, 0x05, 0x0c, 0x80, 0x05, 0x0d, \
- 0x80, 0x05, 0x0e, 0x80, 0x05, 0x0f, 0x80, 0x05, 0x10, 0x80, 0x05, 0x11, 0x80, 0x05, 0x12, 0x80, 0x05, 0x13, 0x80, \
- 0x05, 0x14, 0x80, 0x05, 0x15, 0x80, 0x05, 0x16, 0x80, 0x05, 0x17, 0x80, 0x05, 0x18, 0x80, 0x05, 0x19, 0x80, 0x05, \
- 0x1a, 0x80, 0x05, 0x1b, 0x80, 0x05, 0x1c, 0x80, 0x05, 0x1d, 0x80, 0x05, 0x1e, 0x80, 0x05, 0x1f, 0x80, 0x05, 0x20, \
- 0x80, 0x05, 0x21, 0x80, 0x05, 0x22, 0x80, 0x05, 0x23, 0x80, 0x05, 0x24, 0x80, 0x05, 0x25, 0x80, 0x05, 0x26, 0x80, \
- 0x05, 0x27, 0x80, 0x05, 0x28, 0x80, 0x05, 0x29, 0x80, 0x05, 0x2a, 0x80, 0x05, 0x2b, 0x80, 0x05, 0x2c, 0x80, 0x05, \
- 0x2d, 0x80, 0x05, 0x2e, 0x80, 0x05, 0x2f, 0x80, 0x05, 0x30, 0x80, 0x05, 0x31, 0x80, 0x05, 0x32, 0x80, 0x05, 0x33, \
- 0x80, 0x05, 0x34, 0x80, 0x05, 0x35, 0x80, 0x05, 0x36, 0x80, 0x05, 0x37, 0x80, 0x05, 0x38, 0x80, 0x05, 0x39, 0x80, \
- 0x05, 0x3a, 0x80, 0x05, 0x3b, 0x80, 0x05, 0x3c, 0x80, 0x05, 0x3d, 0x80, 0x05, 0x3e, 0x80, 0x05, 0x3f, 0x80, 0x05, \
- 0x40, 0x80, 0x05, 0x41, 0x80, 0x05, 0x42, 0x80, 0x05, 0x43, 0x80, 0x05, 0x44, 0x80, 0x05, 0x45, 0x80, 0x05, 0x46, \
- 0x80, 0x05, 0x47, 0x80, 0x05, 0x48, 0x80, 0x05, 0x49, 0x80, 0x05, 0x4a, 0x80, 0x05, 0x4b, 0x80, 0x05, 0x4c, 0x80, \
- 0x05, 0x4d, 0x80, 0x05, 0x4e, 0x80, 0x05, 0x4f, 0x80, 0x05, 0x50, 0x80, 0x05, 0x51, 0x80, 0x05, 0x52, 0x80, 0x05, \
- 0x53, 0x80, 0x05, 0x54, 0x80, 0x05, 0x55, 0x80, 0x05, 0x56, 0x80, 0x05, 0x57, 0x80, 0x05, 0x58, 0x80, 0x05, 0x59, \
- 0x80, 0x05, 0x5a, 0x80, 0x05, 0x5b, 0x80, 0x05, 0x5c, 0x80, 0x05, 0x5d, 0x80, 0x05, 0x5e, 0x80, 0x05, 0x5f, 0x80, \
- 0x05, 0x60, 0x80, 0x05, 0x61, 0x80, 0x05, 0x62, 0x80, 0x05, 0x63, 0x80, 0x18, 0x24, 0x03, 0x16, 0x2c, 0x04, 0x13, \
- 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x32, 0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x33, 0x2d, 0x32, 0x34, \
- 0x24, 0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x94, 0x26, 0x24, 0x08, 0x00, 0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, \
- 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa, 0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a, 0xdd, \
- 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, \
- 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02, 0x20, 0x24, 0xe5, \
- 0xd1, 0xf4, 0x7a, 0x7d, 0x7b, 0x0d, 0x20, 0x6a, 0x26, 0xef, 0x69, 0x9b, 0x7c, 0x97, 0x57, 0xb7, 0x2d, 0x46, 0x90, \
- 0x89, 0xde, 0x31, 0x92, 0xe6, 0x78, 0xc7, 0x45, 0xe7, 0xf6, 0x0c, 0x02, 0x21, 0x00, 0xf8, 0xaa, 0x2f, 0xa7, 0x11, \
- 0xfc, 0xb7, 0x9b, 0x97, 0xe3, 0x97, 0xce, 0xda, 0x66, 0x7b, 0xae, 0x46, 0x4e, 0x2b, 0xd3, 0xff, 0xdf, 0xc3, 0xcc, \
- 0xed, 0x7a, 0xa8, 0xca, 0x5f, 0x4c, 0x1a, 0x7c \
- }
-#endif
-
-/**
- * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC
- *
- * Enables synchronizing the device's real time clock with a remote CHIP Time service
- * using the CHIP Time Sync protocol.
- */
-// #define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 1
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_WDM_OFFLOAD
- *
- * Select the ability to offload event logs to any interested subscribers using WDM.
- */
-#define CHIP_CONFIG_EVENT_LOGGING_WDM_OFFLOAD 1
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS
- *
- * Enable recording UTC timestamps.
- */
-#define CHIP_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS 1
-
-/**
- * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE
- *
- * A size, in bytes, of the individual debug event logging buffer.
- */
-#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512)
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE
- *
- * For a development build, set the default importance of events to be logged as Debug.
- * Since debug is the lowest importance level, this means all standard, critical, info and
- * debug importance level vi events get logged.
- */
-#if BUILD_RELEASE
-#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production
-#else
-#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug
-#endif // BUILD_RELEASE
-
-/* Increasing the retransmission interval of the MRP messages after subsequent failures */
-#ifndef CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL
-#define CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL (2000_ms32)
-#endif
-
-#define CHIP_CONFIG_ENABLE_ACL_EXTENSIONS 1
diff --git a/examples/all-clusters-app/nxp/rt/rt1170/third_party/connectedhomeip b/examples/all-clusters-app/nxp/rt/rt1170/third_party/connectedhomeip
deleted file mode 120000
index 305f2077ffe..00000000000
--- a/examples/all-clusters-app/nxp/rt/rt1170/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../..
\ No newline at end of file
diff --git a/examples/all-clusters-app/nxp/rt/rw61x/.gn b/examples/all-clusters-app/nxp/rt/rw61x/.gn
deleted file mode 100644
index cbbec24fe8c..00000000000
--- a/examples/all-clusters-app/nxp/rt/rw61x/.gn
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2020 Project CHIP Authors
-# Copyright 2023 NXP
-#
-# 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/build.gni")
-import("//build_overrides/chip.gni")
-
-# The location of the build configuration file.
-buildconfig = "${build_root}/config/BUILDCONFIG.gn"
-
-# CHIP uses angle bracket includes.
-check_system_includes = true
-
-default_args = {
- target_cpu = "arm"
- target_os = "freertos"
-
- import("//args.gni")
-
- # Import common example GN args
- import("${chip_root}/examples/platform/nxp/common/gn/args.gni")
-
- # Import default platform configs
- import("${chip_root}/src/platform/nxp/rt/rw61x/args.gni")
-}
diff --git a/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn b/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn
deleted file mode 100644
index d5469323248..00000000000
--- a/examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn
+++ /dev/null
@@ -1,273 +0,0 @@
-# Copyright (c) 2021 Project CHIP Authors
-# Copyright 2023-2024 NXP
-#
-# 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/build.gni")
-import("//build_overrides/chip.gni")
-import("//build_overrides/nxp_sdk.gni")
-import("//build_overrides/openthread.gni")
-import("${chip_root}/src/platform/device.gni")
-
-#allows to get common NXP SDK gn options
-import("${nxp_sdk_build_root}/nxp_sdk.gni")
-
-# Allows to get various RT gn options
-import("${nxp_sdk_build_root}/${nxp_sdk_name}/rt_sdk.gni")
-
-import("${chip_root}/src/platform/nxp/${nxp_platform}/args.gni")
-import(
- "${nxp_sdk_build_root}/${nxp_sdk_name}/${rt_platform}/${rt_platform}.gni")
-import("${nxp_sdk_build_root}/${nxp_sdk_name}/nxp_executable.gni")
-
-assert(current_os == "freertos")
-assert(target_os == "freertos")
-assert(nxp_platform == "rt/rw61x")
-
-declare_args() {
- # Allows to connect to a predefine Wi-Fi network at boot
- wifi_auto_connect_at_boot = false
- wifi_auto_connect_at_boot_ssid = ""
- wifi_auto_connect_at_boot_password = ""
-
- # Setup discriminator as argument
- setup_discriminator = 3840
-}
-
-example_platform_dir =
- "${nxp_sdk_matter_support_root}/examples/platform/${nxp_platform}"
-common_example_dir = "${chip_root}/examples/platform/nxp/common"
-
-app_common_folder = "all-clusters-app/all-clusters-common"
-
-# Create here the SDK instance.
-# Particular sources/defines/includes could be added/changed depending on the target application.
-rt_sdk("sdk") {
- defines = []
-
- cflags = []
- public_deps = []
- public_configs = []
- sources = []
- include_dirs = []
-
- # Indicate paths to default board files
- include_dirs += [ "${example_platform_dir}/board/" ]
- sources += [ "${example_platform_dir}/board/pin_mux.c" ]
- sources += [ "${example_platform_dir}/board/hardware_init.c" ]
- sources += [ "${example_platform_dir}/board/peripherals.c" ]
-
- if (board_version == "frdm") {
- include_dirs += [ "${example_platform_dir}/board/frdmrw612/" ]
- sources += [ "${example_platform_dir}/board/frdmrw612/clock_config.c" ]
- sources += [ "${example_platform_dir}/board/frdmrw612/board.c" ]
- } else {
- include_dirs += [ "${example_platform_dir}/board/rdrw612bga/" ]
- sources += [ "${example_platform_dir}/board/rdrw612bga/clock_config.c" ]
- sources += [ "${example_platform_dir}/board/rdrw612bga/board.c" ]
- }
-
- # Indicate the path to CHIPProjectConfig.h
- include_dirs += [ "include/config" ]
-
- # Indicate the default path to FreeRTOSConfig.h
- include_dirs += [ "${example_platform_dir}/app/project_include/freeRTOS" ]
-
- # Indicate the default path to OpenThreadConfig.h
- include_dirs += [ "${example_platform_dir}/app/project_include/openthread" ]
-
- # For matter with BR feature, increase FreeRTOS heap size
- if (chip_enable_wifi && chip_enable_openthread) {
- defines += [ "configTOTAL_HEAP_SIZE=(size_t)(170 * 1024)" ]
- }
-
- defines += [
- "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setup_discriminator}",
- ]
-}
-
-# Create the SDK driver instance.
-# Particular sources/defines/includes could be added to add other drivers not available in the default sdk driver template
-rw61x_sdk_drivers("sdk_driver") {
-}
-
-rt_executable("all_cluster_app") {
- output_name = "chip-rw61x-all-cluster-example"
-
- defines = [
- "CONFIG_RENDEZVOUS_MODE=7",
- "CONFIG_APP_FREERTOS_OS=1",
- ]
-
- if (chip_enable_openthread) {
- defines += [ "CONFIG_NET_L2_OPENTHREAD=1" ]
- }
-
- include_dirs = [
- "../../common/main/include",
- "../../common/main",
- "${chip_root}/examples/all-clusters-app/all-clusters-common/include",
- "${chip_root}/examples/providers/",
- ]
-
- sources = [
- "${chip_root}/examples/all-clusters-app/all-clusters-common/src/binding-handler.cpp",
- "../../common/main/AppTask.cpp",
- "../../common/main/DeviceCallbacks.cpp",
- "../../common/main/ZclCallbacks.cpp",
- "../../common/main/include/AppEvent.h",
- "../../common/main/include/AppTask.h",
- "../../common/main/include/DeviceCallbacks.h",
- "../../common/main/main.cpp",
- ]
-
- if (nxp_enable_secure_whole_factory_data ||
- nxp_enable_secure_EL2GO_factory_data) {
- sources += [ "${chip_root}/examples/platform/nxp/${nxp_platform}/factory_data/source/AppFactoryDataExample.cpp" ]
- if (nxp_enable_secure_whole_factory_data) {
- defines += [ "ENABLE_SECURE_WHOLE_FACTORY_DATA" ]
- }
- } else {
- sources += [
- "${common_example_dir}/factory_data/source/AppFactoryDataDefaultImpl.cpp",
- ]
- }
-
- # App common files
- include_dirs += [
- "${common_example_dir}/icd/include",
- "${common_example_dir}/matter_button/include",
- "${common_example_dir}/matter_cli/include",
- "${common_example_dir}/device_manager/include",
- "${common_example_dir}/device_callbacks/include",
- "${common_example_dir}/app_task/include",
- "${common_example_dir}/factory_data/include",
- "${common_example_dir}/operational_keystore/include",
- ]
-
- sources += [
- "${common_example_dir}/app_task/source/AppTaskBase.cpp",
- "${common_example_dir}/app_task/source/AppTaskFreeRTOS.cpp",
- "${common_example_dir}/device_callbacks/source/CommonDeviceCallbacks.cpp",
- "${common_example_dir}/device_manager/source/CHIPDeviceManager.cpp",
- "${common_example_dir}/icd/source/ICDUtil.cpp",
- "${common_example_dir}/matter_button/source/ButtonRegistrationEmpty.cpp",
- "${common_example_dir}/operational_keystore/source/OperationalKeystoreS50.cpp",
- ]
-
- deps = [
- "${chip_root}/examples/${app_common_folder}",
- "${chip_root}/examples/providers:device_info_provider_please_do_not_reuse_as_is",
- "${chip_root}/src/app/clusters/network-commissioning:network-commissioning",
- "${chip_root}/src/platform/logging:default",
- "${chip_root}/src/setup_payload:onboarding-codes-utils",
- ]
-
- # Operational key secure storage
- defines += [ "CONFIG_OPERATIONAL_KEYSTORE=1" ]
-
- sources += [
- "${chip_root}/examples/all-clusters-app/all-clusters-common/src/bridged-actions-stub.cpp",
- "${chip_root}/examples/all-clusters-app/all-clusters-common/src/smco-stub.cpp",
- "${chip_root}/examples/all-clusters-app/all-clusters-common/src/static-supported-modes-manager.cpp",
- ]
-
- if (nxp_enable_matter_cli) {
- defines += [ "ENABLE_CHIP_SHELL" ]
- deps += [
- "${chip_root}/examples/shell/shell_common:shell_common",
- "${chip_root}/src/lib/shell:shell",
- ]
- sources += [
- "${common_example_dir}/matter_cli/source/AppCLIBase.cpp",
- "${common_example_dir}/matter_cli/source/AppCLIFreeRTOS.cpp",
- ]
- }
-
- if (chip_enable_ota_requestor) {
- include_dirs += [ "${common_example_dir}/ota_requestor/include" ]
- sources += [
- "${common_example_dir}/ota_requestor/source/OTARequestorInitiator.cpp",
- "${common_example_dir}/ota_requestor/source/OTARequestorInitiatorCommon.cpp",
- ]
- }
-
- if (wifi_auto_connect_at_boot) {
- assert(wifi_auto_connect_at_boot_ssid != "" &&
- wifi_auto_connect_at_boot_password != "",
- "WiFi SSID and password must be specified at build time!")
-
- defines += [
- "CONFIG_CHIP_APP_WIFI_CONNECT_AT_BOOT=1",
- "CONFIG_CHIP_APP_WIFI_SSID=\"${wifi_auto_connect_at_boot_ssid}\"",
- "CONFIG_CHIP_APP_WIFI_PASSWORD=\"${wifi_auto_connect_at_boot_password}\"",
- ]
-
- include_dirs += [ "${common_example_dir}/wifi_connect/include" ]
- sources += [ "${common_example_dir}/wifi_connect/source/WifiConnect.cpp" ]
- }
-
- if (chip_enable_ble) {
- defines += [ "APP_BT_DEVICE_NAME=\"NXP-AllClustersApp\"" ]
- }
-
- # In case a dedicated assert function needs to be supported the flag sdk_fsl_assert_support should be set to false
- # The would add to the build a dedicated application assert implementation.
- if (!sdk_fsl_assert_support) {
- sources += [ "${common_example_dir}/app_assert/source/AppAssert.cpp" ]
- }
-
- cflags = [ "-Wconversion" ]
-
- ldscript = "${example_platform_dir}/app/ldscripts/RW610_flash.ld"
-
- inputs = [ ldscript ]
-
- ldflags = [
- "-T" + rebase_path(ldscript, root_build_dir),
- "-fno-common",
- "-Wl,--defsym=__stack_size__=2048",
- "-ffreestanding",
- "-fno-builtin",
- "-mapcs",
- "-u qspiflash_config",
- "-u image_vector_table",
- "-u boot_data",
- "-u dcd_data",
- "-Wl,-print-memory-usage",
- "-Wl,--no-warn-rwx-segments",
- ]
-
- if (chip_enable_ota_requestor) {
- if (no_mcuboot) {
- # If "no_mcuboot" is set to true, the application will be linked at the base of the flash.
- print(
- "Warning : The OTA Requestor is enabled without MCUBoot. This will prevent the application from applying software updates.")
- } else {
- # we need to reserve enough space for the bootloader (MCUBoot)
- # MCUBoot requires 0x20000 Bytes to be reserved at the base of the flash
- # Consequently, some sections will need to be shifted
- ldflags += [ "-Wl,--defsym=__m_mcuboot_size__=0x20000" ]
- }
- }
-
- output_dir = root_out_dir
-}
-
-group("rw61x") {
- deps = [ ":all_cluster_app" ]
-}
-
-group("default") {
- deps = [ ":rw61x" ]
-}
diff --git a/examples/all-clusters-app/nxp/rt/rw61x/args.gni b/examples/all-clusters-app/nxp/rt/rw61x/args.gni
deleted file mode 100644
index c2d91a5db7b..00000000000
--- a/examples/all-clusters-app/nxp/rt/rw61x/args.gni
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2023 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")
-
-# SDK target definitions
-nxp_sdk_target = get_label_info(":sdk", "label_no_toolchain")
-nxp_sdk_driver_target = get_label_info(":sdk_driver", "label_no_toolchain")
diff --git a/examples/all-clusters-app/nxp/rt/rw61x/build_overrides b/examples/all-clusters-app/nxp/rt/rw61x/build_overrides
deleted file mode 120000
index f10867042f4..00000000000
--- a/examples/all-clusters-app/nxp/rt/rw61x/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../../../build_overrides
\ No newline at end of file
diff --git a/examples/all-clusters-app/nxp/rt/rw61x/include/config/CHIPProjectConfig.h b/examples/all-clusters-app/nxp/rt/rw61x/include/config/CHIPProjectConfig.h
deleted file mode 100644
index 8847f9fd6ba..00000000000
--- a/examples/all-clusters-app/nxp/rt/rw61x/include/config/CHIPProjectConfig.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (c) 2020 Project CHIP Authors
- * Copyright (c) 2020 Google LLC.
- * Copyright 2023 NXP
- * 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.
- */
-
-/**
- * @file
- * Example project configuration file for CHIP.
- *
- * This is a place to put application or project-specific overrides
- * to the default configuration values for general CHIP features.
- *
- */
-
-#pragma once
-
-/*
- * Tells to the platform Factory Data Provider whether to use the example configuration or real/provisioned data.
- */
-#ifndef CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA
-#define CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA 0
-#endif
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID
- *
- * 0xFFF1: Test vendor.
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID 0xFFF1
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID
- *
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8005
-
-#if !CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA
-// Use a default pairing code if one hasn't been provisioned in flash.
-#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE
-#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR
-#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
-#endif
-
-// Use a default pairing code if one hasn't been provisioned in flash.
-#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS"
-
-/**
- * CHIP_DEVICE_CONFIG_USE_TEST_SERIAL_NUMBER
- *
- * Enables the use of a hard-coded default serial number if none
- * is found in CHIP NV storage.
- */
-#define CHIP_DEVICE_CONFIG_USE_TEST_SERIAL_NUMBER "DUMMY_SN"
-
-#endif /* !CONFIG_CHIP_PLAT_LOAD_REAL_FACTORY_DATA */
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION
- *
- * The hardware version number assigned to device or product by the device vendor. This
- * number is scoped to the device product id, and typically corresponds to a revision of the
- * physical device, a change to its packaging, and/or a change to its marketing presentation.
- * This value is generally *not* incremented for device software versions.
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 100
-
-#ifndef CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING "v0.1.0"
-#endif
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
- *
- * A string identifying the software version running on the device.
- * CHIP currently expects the software version to be in the format
- * {MAJOR_VERSION}.0d{MINOR_VERSION}
- */
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING NXP_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION NXP_CONFIG_DEVICE_SOFTWARE_VERSION
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME
-#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME "NXP Semiconductors"
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME
-#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME "NXP Demo App"
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_CERTIFICATION_DECLARATION
-//-> format_version = 1
-//-> vendor_id = 0xFFF1
-//-> product_id_array = [ 0x8000, 0x8001, 0x8002, 0x8003, 0x8004, 0x8005, 0x8006, 0x8007, 0x8008, 0x8009, 0x800A, 0x800B,
-// 0x800C, 0x800D, 0x800E, 0x800F, 0x8010, 0x8011, 0x8012, 0x8013, 0x8014, 0x8015, 0x8016, 0x8017, 0x8018, 0x8019, 0x801A,
-// 0x801B, 0x801C, 0x801D, 0x801E, 0x801F, 0x8020, 0x8021, 0x8022, 0x8023, 0x8024, 0x8025, 0x8026, 0x8027, 0x8028, 0x8029,
-// 0x802A, 0x802B, 0x802C, 0x802D, 0x802E, 0x802F, 0x8030, 0x8031, 0x8032, 0x8033, 0x8034, 0x8035, 0x8036, 0x8037, 0x8038,
-// 0x8039, 0x803A, 0x803B, 0x803C, 0x803D, 0x803E, 0x803F, 0x8040, 0x8041, 0x8042, 0x8043, 0x8044, 0x8045, 0x8046, 0x8047,
-// 0x8048, 0x8049, 0x804A, 0x804B, 0x804C, 0x804D, 0x804E, 0x804F, 0x8050, 0x8051, 0x8052, 0x8053, 0x8054, 0x8055, 0x8056,
-// 0x8057, 0x8058, 0x8059, 0x805A, 0x805B, 0x805C, 0x805D, 0x805E, 0x805F, 0x8060, 0x8061, 0x8062, 0x8063 ]
-//-> device_type_id = 0x0016
-//-> certificate_id = "ZIG20142ZB330003-24"
-//-> security_level = 0
-//-> security_information = 0
-//-> version_number = 0x2694
-//-> certification_type = 0
-//-> dac_origin_vendor_id is not present
-//-> dac_origin_product_id is not present
-#define CHIP_DEVICE_CONFIG_CERTIFICATION_DECLARATION \
- { \
- 0x30, 0x82, 0x02, 0x19, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x02, 0x0a, 0x30, \
- 0x82, 0x02, 0x06, 0x02, 0x01, 0x03, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, \
- 0x02, 0x01, 0x30, 0x82, 0x01, 0x71, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, \
- 0x01, 0x62, 0x04, 0x82, 0x01, 0x5e, 0x15, 0x24, 0x00, 0x01, 0x25, 0x01, 0xf1, 0xff, 0x36, 0x02, 0x05, 0x00, 0x80, \
- 0x05, 0x01, 0x80, 0x05, 0x02, 0x80, 0x05, 0x03, 0x80, 0x05, 0x04, 0x80, 0x05, 0x05, 0x80, 0x05, 0x06, 0x80, 0x05, \
- 0x07, 0x80, 0x05, 0x08, 0x80, 0x05, 0x09, 0x80, 0x05, 0x0a, 0x80, 0x05, 0x0b, 0x80, 0x05, 0x0c, 0x80, 0x05, 0x0d, \
- 0x80, 0x05, 0x0e, 0x80, 0x05, 0x0f, 0x80, 0x05, 0x10, 0x80, 0x05, 0x11, 0x80, 0x05, 0x12, 0x80, 0x05, 0x13, 0x80, \
- 0x05, 0x14, 0x80, 0x05, 0x15, 0x80, 0x05, 0x16, 0x80, 0x05, 0x17, 0x80, 0x05, 0x18, 0x80, 0x05, 0x19, 0x80, 0x05, \
- 0x1a, 0x80, 0x05, 0x1b, 0x80, 0x05, 0x1c, 0x80, 0x05, 0x1d, 0x80, 0x05, 0x1e, 0x80, 0x05, 0x1f, 0x80, 0x05, 0x20, \
- 0x80, 0x05, 0x21, 0x80, 0x05, 0x22, 0x80, 0x05, 0x23, 0x80, 0x05, 0x24, 0x80, 0x05, 0x25, 0x80, 0x05, 0x26, 0x80, \
- 0x05, 0x27, 0x80, 0x05, 0x28, 0x80, 0x05, 0x29, 0x80, 0x05, 0x2a, 0x80, 0x05, 0x2b, 0x80, 0x05, 0x2c, 0x80, 0x05, \
- 0x2d, 0x80, 0x05, 0x2e, 0x80, 0x05, 0x2f, 0x80, 0x05, 0x30, 0x80, 0x05, 0x31, 0x80, 0x05, 0x32, 0x80, 0x05, 0x33, \
- 0x80, 0x05, 0x34, 0x80, 0x05, 0x35, 0x80, 0x05, 0x36, 0x80, 0x05, 0x37, 0x80, 0x05, 0x38, 0x80, 0x05, 0x39, 0x80, \
- 0x05, 0x3a, 0x80, 0x05, 0x3b, 0x80, 0x05, 0x3c, 0x80, 0x05, 0x3d, 0x80, 0x05, 0x3e, 0x80, 0x05, 0x3f, 0x80, 0x05, \
- 0x40, 0x80, 0x05, 0x41, 0x80, 0x05, 0x42, 0x80, 0x05, 0x43, 0x80, 0x05, 0x44, 0x80, 0x05, 0x45, 0x80, 0x05, 0x46, \
- 0x80, 0x05, 0x47, 0x80, 0x05, 0x48, 0x80, 0x05, 0x49, 0x80, 0x05, 0x4a, 0x80, 0x05, 0x4b, 0x80, 0x05, 0x4c, 0x80, \
- 0x05, 0x4d, 0x80, 0x05, 0x4e, 0x80, 0x05, 0x4f, 0x80, 0x05, 0x50, 0x80, 0x05, 0x51, 0x80, 0x05, 0x52, 0x80, 0x05, \
- 0x53, 0x80, 0x05, 0x54, 0x80, 0x05, 0x55, 0x80, 0x05, 0x56, 0x80, 0x05, 0x57, 0x80, 0x05, 0x58, 0x80, 0x05, 0x59, \
- 0x80, 0x05, 0x5a, 0x80, 0x05, 0x5b, 0x80, 0x05, 0x5c, 0x80, 0x05, 0x5d, 0x80, 0x05, 0x5e, 0x80, 0x05, 0x5f, 0x80, \
- 0x05, 0x60, 0x80, 0x05, 0x61, 0x80, 0x05, 0x62, 0x80, 0x05, 0x63, 0x80, 0x18, 0x24, 0x03, 0x16, 0x2c, 0x04, 0x13, \
- 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x32, 0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x33, 0x2d, 0x32, 0x34, \
- 0x24, 0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x94, 0x26, 0x24, 0x08, 0x00, 0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, \
- 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa, 0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a, 0xdd, \
- 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, \
- 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02, 0x20, 0x24, 0xe5, \
- 0xd1, 0xf4, 0x7a, 0x7d, 0x7b, 0x0d, 0x20, 0x6a, 0x26, 0xef, 0x69, 0x9b, 0x7c, 0x97, 0x57, 0xb7, 0x2d, 0x46, 0x90, \
- 0x89, 0xde, 0x31, 0x92, 0xe6, 0x78, 0xc7, 0x45, 0xe7, 0xf6, 0x0c, 0x02, 0x21, 0x00, 0xf8, 0xaa, 0x2f, 0xa7, 0x11, \
- 0xfc, 0xb7, 0x9b, 0x97, 0xe3, 0x97, 0xce, 0xda, 0x66, 0x7b, 0xae, 0x46, 0x4e, 0x2b, 0xd3, 0xff, 0xdf, 0xc3, 0xcc, \
- 0xed, 0x7a, 0xa8, 0xca, 0x5f, 0x4c, 0x1a, 0x7c \
- }
-#endif
-
-/**
- * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC
- *
- * Enables synchronizing the device's real time clock with a remote CHIP Time service
- * using the CHIP Time Sync protocol.
- */
-// #define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 1
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_WDM_OFFLOAD
- *
- * Select the ability to offload event logs to any interested subscribers using WDM.
- */
-#define CHIP_CONFIG_EVENT_LOGGING_WDM_OFFLOAD 1
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS
- *
- * Enable recording UTC timestamps.
- */
-#define CHIP_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS 1
-
-/**
- * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE
- *
- * A size, in bytes, of the individual debug event logging buffer.
- */
-#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512)
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE
- *
- * For a development build, set the default importance of events to be logged as Debug.
- * Since debug is the lowest importance level, this means all standard, critical, info and
- * debug importance level vi events get logged.
- */
-#if BUILD_RELEASE
-#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Production
-#else
-#define CHIP_CONFIG_EVENT_LOGGING_DEFAULT_IMPORTANCE chip::Profiles::DataManagement::Debug
-#endif // BUILD_RELEASE
-
-/* Increasing the retransmission interval of the MRP messages after subsequent failures */
-#ifndef CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL
-#define CHIP_CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL (2000_ms32)
-#endif
-
-#define CHIP_CONFIG_ENABLE_ACL_EXTENSIONS 1
diff --git a/examples/all-clusters-app/nxp/rt/rw61x/third_party/connectedhomeip b/examples/all-clusters-app/nxp/rt/rw61x/third_party/connectedhomeip
deleted file mode 120000
index 305f2077ffe..00000000000
--- a/examples/all-clusters-app/nxp/rt/rw61x/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../..
\ No newline at end of file
diff --git a/examples/all-clusters-app/nxp/zephyr/CMakeLists.txt b/examples/all-clusters-app/nxp/zephyr/CMakeLists.txt
index 0d0f66c0c86..a6852252fd5 100644
--- a/examples/all-clusters-app/nxp/zephyr/CMakeLists.txt
+++ b/examples/all-clusters-app/nxp/zephyr/CMakeLists.txt
@@ -88,6 +88,13 @@ if(CONFIG_CHIP_OTA_REQUESTOR)
)
endif()
+if (CONFIG_CHIP_FACTORY_DATA)
+ target_sources(app PRIVATE
+ ${CHIP_ROOT}/src/platform/nxp/zephyr/FactoryDataProviderImpl.cpp
+ ${CHIP_ROOT}/src/platform/nxp/common/factory_data/legacy/FactoryDataProvider.cpp
+ )
+endif()
+
chip_configure_data_model(app
ZAP_FILE ${ALL_CLUSTERS_COMMON_DIR}/all-clusters-app.zap
)
diff --git a/examples/all-clusters-app/realtek/data_model/all-clusters-app.matter b/examples/all-clusters-app/realtek/data_model/all-clusters-app.matter
index 4ef3dc9175a..cd0429e71c4 100644
--- a/examples/all-clusters-app/realtek/data_model/all-clusters-app.matter
+++ b/examples/all-clusters-app/realtek/data_model/all-clusters-app.matter
@@ -352,6 +352,8 @@ fabric_scoped struct WebRTCSessionStruct {
nullable int16u videoStreamID = 4;
nullable int16u audioStreamID = 5;
boolean metadataEnabled = 6;
+ optional int16u videoStreams[] = 7;
+ optional int16u audioStreams[] = 8;
fabric_idx fabricIndex = 254;
}
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
index 285d3c79afc..9efdb6ac9c4 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
@@ -352,6 +352,8 @@ fabric_scoped struct WebRTCSessionStruct {
nullable int16u videoStreamID = 4;
nullable int16u audioStreamID = 5;
boolean metadataEnabled = 6;
+ optional int16u videoStreams[] = 7;
+ optional int16u audioStreams[] = 8;
fabric_idx fabricIndex = 254;
}
diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter
index a6922edeaff..03797b95853 100644
--- a/examples/bridge-app/bridge-common/bridge-app.matter
+++ b/examples/bridge-app/bridge-common/bridge-app.matter
@@ -352,6 +352,8 @@ fabric_scoped struct WebRTCSessionStruct {
nullable int16u videoStreamID = 4;
nullable int16u audioStreamID = 5;
boolean metadataEnabled = 6;
+ optional int16u videoStreams[] = 7;
+ optional int16u audioStreams[] = 8;
fabric_idx fabricIndex = 254;
}
diff --git a/examples/bridge-app/linux/bridged-actions-stub.cpp b/examples/bridge-app/linux/bridged-actions-stub.cpp
index 80de3027db4..e55a382e2cd 100644
--- a/examples/bridge-app/linux/bridged-actions-stub.cpp
+++ b/examples/bridge-app/linux/bridged-actions-stub.cpp
@@ -263,5 +263,5 @@ void emberAfActionsClusterInitCallback(EndpointId endpoint)
gLinuxActionsDelegateImpl.SetEndpointId(endpoint);
sActionsServer = std::make_unique(endpoint, gLinuxActionsDelegateImpl);
- sActionsServer->Init();
+ TEMPORARY_RETURN_IGNORED sActionsServer->Init();
}
diff --git a/examples/bridge-app/linux/main.cpp b/examples/bridge-app/linux/main.cpp
index 22cd37ee826..aa8e3be5d3f 100644
--- a/examples/bridge-app/linux/main.cpp
+++ b/examples/bridge-app/linux/main.cpp
@@ -409,7 +409,7 @@ void CallReportingCallback(intptr_t closure)
void ScheduleReportingCallback(Device * dev, ClusterId cluster, AttributeId attribute)
{
auto * path = Platform::New(dev->GetEndpointId(), cluster, attribute);
- PlatformMgr().ScheduleWork(CallReportingCallback, reinterpret_cast(path));
+ TEMPORARY_RETURN_IGNORED PlatformMgr().ScheduleWork(CallReportingCallback, reinterpret_cast(path));
}
} // anonymous namespace
@@ -490,12 +490,12 @@ Protocols::InteractionModel::Status HandleReadBridgedDeviceBasicAttribute(Device
else if ((attributeId == NodeLabel::Id) && (maxReadLength == 32))
{
MutableByteSpan zclNameSpan(buffer, maxReadLength);
- MakeZclCharString(zclNameSpan, dev->GetName());
+ TEMPORARY_RETURN_IGNORED MakeZclCharString(zclNameSpan, dev->GetName());
}
else if ((attributeId == UniqueID::Id) && (maxReadLength == 32))
{
MutableByteSpan zclUniqueIdSpan(buffer, maxReadLength);
- MakeZclCharString(zclUniqueIdSpan, dev->GetUniqueId());
+ TEMPORARY_RETURN_IGNORED MakeZclCharString(zclUniqueIdSpan, dev->GetUniqueId());
}
else if ((attributeId == ConfigurationVersion::Id) && (maxReadLength == 4))
{
@@ -678,35 +678,36 @@ class BridgedPowerSourceAttrAccess : public AttributeAccessInterface
switch (aPath.mAttributeId)
{
case PowerSource::Attributes::BatChargeLevel::Id:
- aEncoder.Encode(dev->GetBatChargeLevel());
+ TEMPORARY_RETURN_IGNORED aEncoder.Encode(dev->GetBatChargeLevel());
break;
case PowerSource::Attributes::Order::Id:
- aEncoder.Encode(dev->GetOrder());
+ TEMPORARY_RETURN_IGNORED aEncoder.Encode(dev->GetOrder());
break;
case PowerSource::Attributes::Status::Id:
- aEncoder.Encode(dev->GetStatus());
+ TEMPORARY_RETURN_IGNORED aEncoder.Encode(dev->GetStatus());
break;
case PowerSource::Attributes::Description::Id:
- aEncoder.Encode(chip::CharSpan(dev->GetDescription().c_str(), dev->GetDescription().size()));
+ TEMPORARY_RETURN_IGNORED aEncoder.Encode(
+ chip::CharSpan(dev->GetDescription().c_str(), dev->GetDescription().size()));
break;
case PowerSource::Attributes::EndpointList::Id: {
std::vector & list = dev->GetEndpointList();
DataModel::List