Skip to content

Commit

Permalink
Merge branch 'master' into fix_external_platform_build
Browse files Browse the repository at this point in the history
  • Loading branch information
wqx6 authored Dec 26, 2023
2 parents 24ec114 + b364ee6 commit 8b8400f
Show file tree
Hide file tree
Showing 165 changed files with 4,921 additions and 2,078 deletions.
12 changes: 12 additions & 0 deletions .github/workflows/java-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ jobs:
"./scripts/build/build_examples.py \
--target linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test \
--target linux-x64-java-matter-controller \
--target linux-x64-lit-icd-ipv6only \
build \
"
- name: Build Kotlin Matter Controller
Expand Down Expand Up @@ -210,6 +211,17 @@ jobs:
--tool-args "code --nodeid 1 --setup-payload 34970112332 --discover-once 1 --use-only-onnetwork-discovery 0 -t 1000" \
--factoryreset \
'
- name: Run Pairing ICD Onnetwork Test
run: |
scripts/run_in_python_env.sh out/venv \
'./scripts/tests/run_java_test.py \
--app out/linux-x64-lit-icd-ipv6only/lit-icd-app \
--app-args "--discriminator 3840 --interface-id -1" \
--tool-path out/linux-x64-java-matter-controller \
--tool-cluster "pairing" \
--tool-args "onnetwork-long --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
--factoryreset \
'
- name: Run Pairing Onnetwork Test
run: |
scripts/run_in_python_env.sh out/venv \
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,18 +210,18 @@ The Matter repository is structured as follows:
| credentials | Development and test credentials |
| docs | Documentation, including guides. Visit the [Matter SDK documentation page](https://project-chip.github.io/connectedhomeip-doc/index.html) to read it. |
| examples | Example firmware applications that demonstrate use of Matter |
| integrations | 3rd Party integrations |
| integrations | 3rd party integrations |
| scripts | Scripts needed to work with the Matter repository |
| src | Implementation of Matter |
| third_party | 3rd party code used by Matter |
| zzz_generated | zap generated template code - Revolving around cluster information |
| BUILD.gn | Build file for the gn build system |
| zzz_generated | ZAP generated template code - Revolving around cluster information |
| BUILD.gn | Build file for the GN build system |
| CODE_OF_CONDUCT.md | Code of conduct for Matter and contribution to it |
| CONTRIBUTING.md | Guidelines for contributing to Matter |
| LICENSE | Matter license file |
| REVIEWERS.md | PR reviewers |
| gn_build.sh | Build script for specific projects such as Android, EFR32, etc. |
| README.md | This File |
| README.md | This file |

# License

Expand Down
16 changes: 16 additions & 0 deletions config/esp32/components/chip/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,13 @@ menu "CHIP Core"
help
The delay time for OTA reboot on applying.

config CHIP_ENABLE_PAIRING_AUTOSTART
bool "Open commissioning window on boot"
default y
help
Opens the commissioning window automatically at application boot time if
the node is not yet commissioned.

endmenu # "System Options"

menu "Security Options"
Expand Down Expand Up @@ -867,6 +874,15 @@ menu "CHIP Device Layer"
then this option gets enabled.
Also, please disable ESP_SECURE_CERT_DS_PERIPHERAL from the menuconfig when this option is disabled

config ENABLE_SET_CERT_DECLARATION_API
depends on ENABLE_ESP32_FACTORY_DATA_PROVIDER || SEC_CERT_DAC_PROVIDER
bool "Enable Set CD API"
default n
help
By default, the implementation reads the Certification Declaration (CD) from the 'chip-factory'
NVS namespace. If this option is enabled, the application can use an API to set a CD,
the configured CD will be used for subsequent CD reads.

config ENABLE_ESP_INSIGHTS_TRACE
bool "Enable Matter ESP Insights"
depends on ESP_INSIGHTS_ENABLED
Expand Down
28 changes: 28 additions & 0 deletions docs/guides/chip_tool_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ directory.
> `/tmp/chip_tool_config.ini` file. Deleting this and other `.ini` files in the
> `/tmp` directory can sometimes resolve issues related to stale configuration.
> **Note:** To make the configuration persistent (since `/tmp` directory might
> be flushed at each reboot) you can change the directory where CHIP Tool caches
> its configuration by using the option `--storage-directory`
<hr>

## Building and running the CHIP Tool
Expand Down Expand Up @@ -676,6 +680,30 @@ The following flags are available:
<hr>
##### Changing storage directory
By default, CHIP Tool stores its configuration into the `/tmp` directory. You
can change the storage directory by using the `--storage-directory` flag.
Usage:
```
--storage-directory <directory>
```
Here, _<directory\>_ is the path to the directory where the configuration is
stored.
**Example of usage:**
```
$ ./chip-tool pairing ble-wifi <node_id> <ssid> <password> <pin_code> <discriminator> --storage-directory <directory>
$ ./chip-tool temperaturemeasurement read measured-value <node_id> <endpoint_id> --storage-directory <directory>

```
<hr>
### Commissioner name and ID flags
All CHIP Tool commands can be used together with the following
Expand Down
27 changes: 26 additions & 1 deletion docs/guides/esp32/factory_data.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
## Using ESP32 Factory Data Provider

**WARNING:** The following steps outline the development workflow for building a
matter device.

Please take a look at
[security considerations](https://docs.espressif.com/projects/esp-matter/en/latest/esp32/security.html)
and review the security guidelines outlined in
[security workflow](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/security/host-based-security-workflows.html)
for production workflows.

Ensure to select the appropriate SoC from the menu on the left-hand side, as the
provided references are specific to ESP32.

---

By default applications uses test-mode or default commissionable data provider,
device attestation credentials provider, device instance info provider, and
device info provider.
Expand Down Expand Up @@ -47,6 +61,15 @@ specific implementation of `CommissionableDataProvider` and
[Component config → CHIP Device Layer → Commissioning options → Use ESP32
Factory Data Provider]

By default, the factory data provider implementation reads the Certification
Declaration (CD) from the 'chip-factory' NVS namespace. Enable
`CONFIG_ENABLE_SET_CERT_DECLARATION_API` option to enable an API which lets you
set the CD from the application and the configured CD will be used for
subsequent CD reads.

[Component config -> CHIP Device Layer -> Commissioning options -> Enable Set CD
API]

Enable config option `CONFIG_ENABLE_ESP32_DEVICE_INSTANCE_INFO_PROVIDER` to use
ESP32 specific implementation of `DeviceInstanceInfoProvider`.

Expand Down Expand Up @@ -107,4 +130,6 @@ appropriate address.

### Securing NVS binary image with NVS Encryption

Please check [Flash and NVS encryption guide](flash_nvs_encryption.md)
WARNING: NVS binary image may contain the sensitive information and it must be
secured using NVS encryption. For more details please check
[Flash and NVS encryption guide](flash_nvs_encryption.md)
23 changes: 23 additions & 0 deletions docs/guides/esp32/secure_cert_partition.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Using esp_secure_cert partition

**WARNING:** The following steps outline the development workflow for building a
matter device.

Please take a look at
[security considerations](https://docs.espressif.com/projects/esp-matter/en/latest/esp32/security.html)
and review the security guidelines outlined in
[security workflow](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/security/host-based-security-workflows.html)
for production workflows.

Ensure to select the appropriate SoC from the menu on the left-hand side, as the
provided references are specific to ESP32.

---

## 1.1 ESP Secure Cert Partition

- When a device is pre-provisioned, PKI credentials are generated for the
Expand Down Expand Up @@ -177,6 +191,15 @@ CONFIG_ENABLE_ESP32_DEVICE_INSTANCE_INFO_PROVIDER=y
CONFIG_CHIP_FACTORY_NAMESPACE_PARTITION_LABEL="fctry"
```

By default, the secure cert DAC provider implementation reads the Certification
Declaration (CD) from the 'chip-factory' NVS namespace. Enable
`CONFIG_ENABLE_SET_CERT_DECLARATION_API` option to enable an API which lets you
set the CD from the application and the configured CD will be used for
subsequent CD reads.

[Component config -> CHIP Device Layer -> Commissioning options -> Enable Set CD
API]

In order to use the esp_secure_cert_partition, in addition to enabling the above
config options, you should also have the esp_secure_cert_partition and factory
partition in your app. For reference, refer to partitions.csv file of
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2785,6 +2785,28 @@ cluster BooleanState = 69 {
readonly attribute int16u clusterRevision = 65533;
}

/** This cluster supports remotely monitoring and controling the different typs of
functionality available to a drying device, such as a laundry dryer. */
cluster LaundryDryerControls = 74 {
revision 1; // NOTE: Default/not specifically set

enum DrynessLevelEnum : enum8 {
kLow = 0;
kNormal = 1;
kExtra = 2;
kMax = 3;
}

readonly attribute DrynessLevelEnum supportedDrynessLevels[] = 0;
attribute nullable DrynessLevelEnum selectedDrynessLevel = 1;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}

/** Attributes and commands for selecting a mode from a list of supported options. */
cluster ModeSelect = 80 {
revision 2;
Expand Down Expand Up @@ -7038,6 +7060,17 @@ endpoint 1 {
ram attribute clusterRevision default = 1;
}

server cluster LaundryDryerControls {
callback attribute supportedDrynessLevels;
ram attribute selectedDrynessLevel;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute eventList;
callback attribute attributeList;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 1;
}

server cluster ModeSelect {
ram attribute description default = "Coffee";
ram attribute standardNamespace default = 0;
Expand Down
Loading

0 comments on commit 8b8400f

Please sign in to comment.