Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'camera-met' of https://github.com/marktrayer/connectedh…
Browse files Browse the repository at this point in the history
…omeip into camera-met
marktrayer committed Dec 19, 2024
2 parents b93972a + d02245d commit 92c7c58
Showing 315 changed files with 15,172 additions and 6,441 deletions.
28 changes: 18 additions & 10 deletions .github/workflows/check-data-model-directory-updates.yaml
Original file line number Diff line number Diff line change
@@ -12,20 +12,28 @@
# See the License for the specific language governing permissions and
# limitations under the License.

name: Check for changes to data_model directory without a sha update
name: Data model directory checks

on:
pull_request:
paths:
- "data_model/**"

jobs:
check-submodule-update-label:
name: Check for changes to data_model directory without a sha update
check-data_model-updates:
name: Check for updates to data model directory without SHA updates
runs-on: ubuntu-latest
if: "git diff --name-only HEAD^..HEAD data_model/ | grep -q spec_sha"
container:
image: ghcr.io/project-chip/chip-build
steps:
- name: Error Message
run: echo This pull request attempts to update data_model directory, but is missing updates to spec_sha file with the latest version of the sha. Files in the data_model directory are generated automatically and should not be updated manually.
- name: Fail Job
run: exit 1
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Check for changes to master data_model directory without a SHA update
run: |
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
run: |
python3 scripts/dm_xml_ci_change_enforcement.py data_model/1.3
- name: Check for changes to 1.4 data_model directory without a SHA update
run: |
python3 scripts/dm_xml_ci_change_enforcement.py data_model/1.4
10 changes: 9 additions & 1 deletion .github/workflows/examples-esp32.yaml
Original file line number Diff line number Diff line change
@@ -83,7 +83,6 @@ jobs:
"./scripts/build/build_examples.py \
--enable-flashbundle \
--target esp32-m5stack-all-clusters-minimal \
--target esp32-m5stack-all-clusters-rpc-ipv6only \
--pregen-dir ./zzz_pregenerated \
build \
--copy-artifacts-to out/artifacts \
@@ -95,6 +94,15 @@ jobs:
mv scripts/tools/zap/generate.py.renamed scripts/tools/zap/generate.py
- name: Build example All Clusters App(Target:ESP32C3)
run: scripts/examples/esp_example.sh all-clusters-app sdkconfig.defaults.esp32c3 esp32c3
- name: Build example All Clusters App(Target:ESP32)
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py \
--enable-flashbundle \
--target esp32-devkitc-all-clusters-rpc-ipv6only \
build \
--copy-artifacts-to out/artifacts \
"
- name: Copy aside build products
run: |
mkdir -p example_binaries/esp32-build
2 changes: 0 additions & 2 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -579,8 +579,6 @@
"esp32-devkitc-temperature-measurement",
"esp32-m5stack-all-clusters",
"esp32-m5stack-all-clusters-ipv6only",
"esp32-m5stack-all-clusters-rpc",
"esp32-m5stack-all-clusters-rpc-ipv6only",
"infineon-psoc6-all-clusters",
"infineon-psoc6-lock",
"infineon-psoc6-light",
7 changes: 7 additions & 0 deletions config/zephyr/Kconfig
Original file line number Diff line number Diff line change
@@ -582,3 +582,10 @@ config CHIP_BLE_ADVERTISING_DURATION
else the maximum duration time can be extended to 2880 minutes (48h).

endif

if BT
config CHIP_CUSTOM_BLE_ADV_DATA
bool "Use custom BLE advertising data"
help
Customization of BLE advertising data at the application layer
endif
20 changes: 20 additions & 0 deletions docs/development_controllers/chip-tool/chip_tool_guide.md
Original file line number Diff line number Diff line change
@@ -9,6 +9,26 @@ the setup payload or performing discovery actions.

<hr>

## Table of Contents

- [Installation](#installation)
- [Building from source](#building-from-source)
- [Running the CHIP Tool](#running-the-chip-tool)
- [CHIP Tool modes](#chip-tool-modes)
- [Single-command mode (default)](#single-command-mode-default)
- [Interactive mode](#interactive-mode)
- [Using CHIP Tool for Matter device testing](#using-chip-tool-for-matter-device-testing)
- [Supported commands and options](#supported-commands-and-options)
- [List all supported clusters](#printing-all-supported-clusters)
- [List all supported command for a cluster](#getting-the-list-of-commands-supported-for-a-specific-cluster)
- [List all supported attributes for a cluster](#getting-the-list-of-attributes-supported-for-a-specific-cluster)
- [Command options](#getting-the-list-of-command-options)
- [Testing and Interaction](#running-a-test-suite-against-a-paired-peer-device)
- [Multi-admin scenario](#multi-admin-scenario)
- [Subscribing to events or attributes](#subscribing-to-events-or-attributes)
- [Using wildcards](#using-wildcards)
- [Saving users and credentials for door lock device](#saving-users-and-credentials-on-door-lock-devices)

## Installation

On Linux distributions
2 changes: 1 addition & 1 deletion docs/ids_and_codes/spec_clusters.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# 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. Refer to this page: [data_model](/data_model/README.md). DO NOT EDIT BY HAND!

| ID (Decimal) | ID (hex) | Name |
|--------------|----------|----------------------------------------------------------|
Original file line number Diff line number Diff line change
@@ -1147,7 +1147,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** Commands to trigger a Node to allow a new Administrator to commission it. */
Original file line number Diff line number Diff line change
@@ -1100,7 +1100,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */
Original file line number Diff line number Diff line change
@@ -2050,7 +2050,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */
@@ -4010,7 +4010,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}

/** Attributes and commands for monitoring HEPA filters in a device */
@@ -9047,7 +9047,7 @@ endpoint 1 {
ram attribute occupancySensorTypeBitmap default = 1;
callback attribute holdTime;
callback attribute holdTimeLimits;
ram attribute PIROccupiedToUnoccupiedDelay default = 10;
callback attribute PIROccupiedToUnoccupiedDelay;
callback attribute featureMap;
ram attribute clusterRevision default = 5;
}
@@ -9505,7 +9505,7 @@ endpoint 2 {
ram attribute occupancySensorTypeBitmap default = 1;
callback attribute holdTime;
callback attribute holdTimeLimits;
ram attribute PIROccupiedToUnoccupiedDelay default = 10;
callback attribute PIROccupiedToUnoccupiedDelay;
callback attribute featureMap;
ram attribute clusterRevision default = 5;
}
92 changes: 92 additions & 0 deletions examples/all-clusters-app/esp32/sdkconfig_rpc.defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
#
# Copyright (c) 2024 Project CHIP Authors
# Copyright (c) 2024 Nest Labs, Inc.
# 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.
#
# Description:
# CI uses this to select the ESP32.
#
CONFIG_IDF_TARGET="esp32"
CONFIG_IDF_TARGET_ESP32=y

# Default to 921600 baud when flashing and monitoring device
CONFIG_ESPTOOLPY_BAUD_921600B=y
CONFIG_ESPTOOLPY_BAUD=921600
CONFIG_ESPTOOLPY_COMPRESSED=y
CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y
CONFIG_ESPTOOLPY_MONITOR_BAUD=115200

#enable BT
CONFIG_BT_ENABLED=y
CONFIG_BT_NIMBLE_ENABLED=y

#enable lwip ipv6 autoconfig
CONFIG_LWIP_IPV6_AUTOCONFIG=y

# Use a custom partition table
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"

# Vendor and product id
CONFIG_DEVICE_VENDOR_ID=0xFFF1
CONFIG_DEVICE_PRODUCT_ID=0x8001

# Main task needs a bit more stack than the default
# default is 3584, bump this up to 5k.
CONFIG_ESP_MAIN_TASK_STACK_SIZE=5120

# PW RPC Debug channel
CONFIG_EXAMPLE_UART_PORT_NUM=0
CONFIG_EXAMPLE_UART_BAUD_RATE=115200
CONFIG_EXAMPLE_UART_RXD=3
CONFIG_EXAMPLE_UART_TXD=1
CONFIG_ENABLE_PW_RPC=y

# Disable shell
CONFIG_ENABLE_CHIP_SHELL=n

# Serial Flasher config
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"


#disable Bluetooth modem sleep
#enable it may cause GPIO ISR triggers continuously
CONFIG_BTDM_CTRL_MODEM_SLEEP=n
CONFIG_BTDM_CTRL_MODEM_SLEEP_MODE_ORIG=n
CONFIG_BTDM_CTRL_LPCLK_SEL_MAIN_XTAL=n

# Enable HKDF in mbedtls
CONFIG_MBEDTLS_HKDF_C=y

# Build chip tests
CONFIG_BUILD_CHIP_TESTS=y

# Move functions from IRAM to flash
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y

CONFIG_DIAG_USE_EXTERNAL_LOG_WRAP=y

# Memory Optimizations
CONFIG_NIMBLE_MAX_CONNECTIONS=1
CONFIG_BTDM_CTRL_BLE_MAX_CONN=1
CONFIG_BT_NIMBLE_ROLE_CENTRAL=n
CONFIG_BT_NIMBLE_ROLE_OBSERVER=n

# Reduce the event logging buffer to reduce the DRAM overflow
# TODO: [ESP32] Fix the DRAM overflow in esp32 apps #34717
CONFIG_EVENT_LOGGING_CRIT_BUFFER_SIZE=512
CONFIG_EVENT_LOGGING_INFO_BUFFER_SIZE=512
CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE=512
3 changes: 0 additions & 3 deletions examples/all-clusters-app/linux/ValveControlDelegate.cpp
Original file line number Diff line number Diff line change
@@ -38,7 +38,6 @@ DataModel::Nullable<chip::Percent> ValveControlDelegate::HandleOpenValve(DataMod
// In this demo application, the transition is considered instant,
// so current level is set to the requested level and current state is set to kOpen.
currentLevel = sLevel;
Attributes::CurrentState::Set(kValveEndpoint, ValveConfigurationAndControl::ValveStateEnum::kOpen);

return DataModel::Nullable<chip::Percent>(currentLevel);
}
@@ -48,8 +47,6 @@ CHIP_ERROR ValveControlDelegate::HandleCloseValve()
sLastOpenDuration = 0;
sLevel = 0;
ReturnErrorOnFailure(ValveConfigurationAndControl::UpdateCurrentLevel(kValveEndpoint, sLevel));
ReturnErrorOnFailure(
ValveConfigurationAndControl::UpdateCurrentState(kValveEndpoint, ValveConfigurationAndControl::ValveStateEnum::kClosed));
ChipLogProgress(NotSpecified, "Valve closed");
return CHIP_NO_ERROR;
}
3 changes: 3 additions & 0 deletions examples/all-clusters-app/nxp/common/main/AppTask.cpp
Original file line number Diff line number Diff line change
@@ -40,6 +40,9 @@ void AllClustersApp::AppTask::PostInitMatterStack()

void AllClustersApp::AppTask::PostInitMatterServerInstance()
{
#ifdef APP_BT_DEVICE_NAME
chip::DeviceLayer::ConnectivityMgr().SetBLEDeviceName(APP_BT_DEVICE_NAME);
#endif
// Disable last fixed endpoint, which is used as a placeholder for all of the
// supported clusters so that ZAP will generated the requisite code.
emberAfEndpointEnableDisable(emberAfEndpointFromIndex(static_cast<uint16_t>(emberAfFixedEndpointCount() - 1)), false);
4 changes: 4 additions & 0 deletions examples/all-clusters-app/nxp/rt/rt1060/BUILD.gn
Original file line number Diff line number Diff line change
@@ -223,6 +223,10 @@ rt_executable("all_cluster_app") {
]
}

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) {
4 changes: 4 additions & 0 deletions examples/all-clusters-app/nxp/rt/rt1170/BUILD.gn
Original file line number Diff line number Diff line change
@@ -188,6 +188,10 @@ rt_executable("all_cluster_app") {
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) {
4 changes: 4 additions & 0 deletions examples/all-clusters-app/nxp/rt/rw61x/BUILD.gn
Original file line number Diff line number Diff line change
@@ -210,6 +210,10 @@ rt_executable("all_cluster_app") {
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) {
Original file line number Diff line number Diff line change
@@ -1965,7 +1965,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */
@@ -2879,7 +2879,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}

/** An interface to a generic way to secure a door */
2 changes: 1 addition & 1 deletion examples/bridge-app/bridge-common/bridge-app.matter
Original file line number Diff line number Diff line change
@@ -1454,7 +1454,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */
Original file line number Diff line number Diff line change
@@ -1262,7 +1262,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */
Original file line number Diff line number Diff line change
@@ -1219,7 +1219,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */
Original file line number Diff line number Diff line change
@@ -1070,7 +1070,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** Commands to trigger a Node to allow a new Administrator to commission it. */
Original file line number Diff line number Diff line change
@@ -1406,7 +1406,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */
Original file line number Diff line number Diff line change
@@ -1344,7 +1344,7 @@ cluster GeneralDiagnostics = 51 {
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
command access(invoke: manage) PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}

/** The Software Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */
Loading

0 comments on commit 92c7c58

Please sign in to comment.