Skip to content

Commit ca8dc0b

Browse files
committed
Add matter over Thread
add ci build test
1 parent df70c62 commit ca8dc0b

File tree

7 files changed

+481
-1
lines changed

7 files changed

+481
-1
lines changed

.github/workflows/build.yml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches:
6+
- "main"
7+
- "feature/*"
8+
9+
workflow_dispatch:
10+
11+
jobs:
12+
build-docker-image:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Login to GitHub Container Registry
16+
uses: docker/login-action@v3
17+
with:
18+
registry: ghcr.io
19+
username: ${{ secrets.GITHUB_USERNAME }}
20+
password: ${{ secrets.GITHUB_TOKEN }}

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,8 @@ Follow these steps to set up your Smart IoT Sensor:
322322
2. **Configure the Project**
323323

324324
```bash
325-
docker run --rm -it -v $PWD:/opt/esp/project \
325+
docker run --rm -it \
326+
-v $PWD:/opt/esp/project \
326327
-w /opt/esp/project \
327328
esp_idf_xiao_esp32c6_sensor:latest idf.py menuconfig
328329
```

ci/docker/Dockerfile

+2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ RUN set -x \
4040
RUN set -x \
4141
&& git config --global --add safe.directory /opt/esp/project \
4242
&& git config --global --add safe.directory /opt/esp/idf/components/openthread/openthread \
43+
&& mkdir -p /.cache/Espressif/ComponentManager \
44+
&& chmod -R 755 /.cache/Espressif/ComponentManager \
4345
&& : # last line
4446

4547
COPY entrypoint.sh /opt/esp/entrypoint.sh

main/sensor_matter.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
* All rights reserved.
1111
*/
1212

13+
#ifdef CONFIG_SENSOR_CONNECTION_MATTER_OVER_THREAD
14+
1315
#include "sensor_matter.h"
1416
#include "esp_matter.h"
1517
#include "esp_matter_ota.h"
@@ -217,3 +219,5 @@ esp_err_t init_matter(void) {
217219

218220
return ESP_OK;
219221
}
222+
223+
#endif

sdkconfig.ci.matter

+151
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
CONFIG_IDF_TARGET="esp32c6"
2+
CONFIG_SENSOR_CONNECTION_MATTER_OVER_THREAD=y
3+
CONFIG_SENSOR_BME280=y
4+
CONFIG_ENABLE_BATTERY_CHECK=y
5+
6+
#
7+
# Partition Table
8+
#
9+
CONFIG_PARTITION_TABLE_CUSTOM=y
10+
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
11+
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
12+
CONFIG_PARTITION_TABLE_OFFSET=0x8000
13+
CONFIG_PARTITION_TABLE_MD5=y
14+
# end of Partition Table
15+
16+
#
17+
# Compiler options
18+
#
19+
# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set
20+
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
21+
# end of Compiler options
22+
23+
#
24+
# mbedTLS
25+
#
26+
CONFIG_MBEDTLS_HARDWARE_AES=n
27+
CONFIG_MBEDTLS_HARDWARE_MPI=n
28+
CONFIG_MBEDTLS_HARDWARE_SHA=n
29+
CONFIG_MBEDTLS_CMAC_C=y
30+
CONFIG_MBEDTLS_SSL_PROTO_DTLS=y
31+
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
32+
# end of TLS Key Exchange Methods
33+
34+
CONFIG_MBEDTLS_ECJPAKE_C=y
35+
# end of mbedTLS
36+
37+
#
38+
# Zboss
39+
#
40+
CONFIG_ZB_ENABLED=y
41+
CONFIG_ZB_ZED=y
42+
# end of Zboss
43+
# end of Component config
44+
45+
#
46+
# Log output
47+
#
48+
CONFIG_LOG_DEFAULT_LEVEL_NONE=y
49+
# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set
50+
# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set
51+
# CONFIG_LOG_DEFAULT_LEVEL_INFO is not set
52+
# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set
53+
# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set
54+
CONFIG_LOG_DEFAULT_LEVEL=0
55+
CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y
56+
# CONFIG_LOG_MAXIMUM_LEVEL_ERROR is not set
57+
# CONFIG_LOG_MAXIMUM_LEVEL_WARN is not set
58+
# CONFIG_LOG_MAXIMUM_LEVEL_INFO is not set
59+
# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set
60+
# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set
61+
CONFIG_LOG_MAXIMUM_LEVEL=0
62+
# CONFIG_LOG_MASTER_LEVEL is not set
63+
CONFIG_LOG_COLORS=y
64+
CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y
65+
# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set
66+
# end of Log output
67+
68+
# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set
69+
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set
70+
# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set
71+
72+
#
73+
# Compiler options
74+
#
75+
# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set
76+
CONFIG_COMPILER_OPTIMIZATION_PERF=y
77+
78+
#
79+
# PHY
80+
#
81+
CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION=y
82+
83+
#
84+
# Serial flasher config
85+
#
86+
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
87+
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
88+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
89+
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
90+
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
91+
# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
92+
# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
93+
# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
94+
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
95+
96+
#
97+
# OpenThread
98+
#
99+
CONFIG_OPENTHREAD_ENABLED=y
100+
CONFIG_OPENTHREAD_BORDER_ROUTER=n
101+
CONFIG_OPENTHREAD_DNS64_CLIENT=y
102+
# CONFIG_OPENTHREAD_CLI is not set
103+
# end of OpenThread
104+
105+
#
106+
# lwIP
107+
#
108+
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=4096
109+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
110+
CONFIG_LWIP_IPV4=y
111+
CONFIG_LWIP_ND6=y
112+
# end of lwIP
113+
114+
#
115+
# IEEE 802.15.4
116+
#
117+
CONFIG_IEEE802154_ENABLED=y
118+
# end of IEEE 802.15.4
119+
120+
#enable BT
121+
CONFIG_BT_ENABLED=y
122+
CONFIG_BT_NIMBLE_ENABLED=y
123+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=y
124+
125+
#disable BT connection reattempt
126+
CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n
127+
128+
#enable lwip ipv6 autoconfig
129+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
130+
131+
#enable lwIP route hooks
132+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
133+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
134+
135+
# disable softap by default
136+
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n
137+
138+
CONFIG_ENABLE_WIFI_AP=n
139+
140+
# Enable HKDF in mbedtls
141+
CONFIG_MBEDTLS_HKDF_C=y
142+
143+
# Increase LwIP IPv6 address number to 6 (MAX_FABRIC + 1)
144+
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
145+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=6
146+
147+
# Enable OTA Requestor
148+
CONFIG_ENABLE_OTA_REQUESTOR=y
149+
150+
CONFIG_THREAD_NETWORK_ENDPOINT_ID=0
151+
CONFIG_WIFI_NETWORK_ENDPOINT_ID=2

sdkconfig.ci.wifi

+151
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
CONFIG_IDF_TARGET="esp32c6"
2+
CONFIG_SENSOR_CONNECTION_WIFI_MQTT=y
3+
CONFIG_SENSOR_BME280=y
4+
CONFIG_ENABLE_BATTERY_CHECK=y
5+
6+
#
7+
# Partition Table
8+
#
9+
CONFIG_PARTITION_TABLE_CUSTOM=y
10+
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
11+
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
12+
CONFIG_PARTITION_TABLE_OFFSET=0x8000
13+
CONFIG_PARTITION_TABLE_MD5=y
14+
# end of Partition Table
15+
16+
#
17+
# Compiler options
18+
#
19+
# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set
20+
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
21+
# end of Compiler options
22+
23+
#
24+
# mbedTLS
25+
#
26+
CONFIG_MBEDTLS_HARDWARE_AES=n
27+
CONFIG_MBEDTLS_HARDWARE_MPI=n
28+
CONFIG_MBEDTLS_HARDWARE_SHA=n
29+
CONFIG_MBEDTLS_CMAC_C=y
30+
CONFIG_MBEDTLS_SSL_PROTO_DTLS=y
31+
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
32+
# end of TLS Key Exchange Methods
33+
34+
CONFIG_MBEDTLS_ECJPAKE_C=y
35+
# end of mbedTLS
36+
37+
#
38+
# Zboss
39+
#
40+
CONFIG_ZB_ENABLED=y
41+
CONFIG_ZB_ZED=y
42+
# end of Zboss
43+
# end of Component config
44+
45+
#
46+
# Log output
47+
#
48+
CONFIG_LOG_DEFAULT_LEVEL_NONE=y
49+
# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set
50+
# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set
51+
# CONFIG_LOG_DEFAULT_LEVEL_INFO is not set
52+
# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set
53+
# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set
54+
CONFIG_LOG_DEFAULT_LEVEL=0
55+
CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y
56+
# CONFIG_LOG_MAXIMUM_LEVEL_ERROR is not set
57+
# CONFIG_LOG_MAXIMUM_LEVEL_WARN is not set
58+
# CONFIG_LOG_MAXIMUM_LEVEL_INFO is not set
59+
# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set
60+
# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set
61+
CONFIG_LOG_MAXIMUM_LEVEL=0
62+
# CONFIG_LOG_MASTER_LEVEL is not set
63+
CONFIG_LOG_COLORS=y
64+
CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y
65+
# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set
66+
# end of Log output
67+
68+
# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set
69+
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set
70+
# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set
71+
72+
#
73+
# Compiler options
74+
#
75+
# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set
76+
CONFIG_COMPILER_OPTIMIZATION_PERF=y
77+
78+
#
79+
# PHY
80+
#
81+
CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION=y
82+
83+
#
84+
# Serial flasher config
85+
#
86+
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
87+
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
88+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
89+
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
90+
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
91+
# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
92+
# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
93+
# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
94+
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
95+
96+
#
97+
# OpenThread
98+
#
99+
CONFIG_OPENTHREAD_ENABLED=y
100+
CONFIG_OPENTHREAD_BORDER_ROUTER=n
101+
CONFIG_OPENTHREAD_DNS64_CLIENT=y
102+
# CONFIG_OPENTHREAD_CLI is not set
103+
# end of OpenThread
104+
105+
#
106+
# lwIP
107+
#
108+
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=4096
109+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
110+
CONFIG_LWIP_IPV4=y
111+
CONFIG_LWIP_ND6=y
112+
# end of lwIP
113+
114+
#
115+
# IEEE 802.15.4
116+
#
117+
CONFIG_IEEE802154_ENABLED=y
118+
# end of IEEE 802.15.4
119+
120+
#enable BT
121+
CONFIG_BT_ENABLED=y
122+
CONFIG_BT_NIMBLE_ENABLED=y
123+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=y
124+
125+
#disable BT connection reattempt
126+
CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n
127+
128+
#enable lwip ipv6 autoconfig
129+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
130+
131+
#enable lwIP route hooks
132+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
133+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
134+
135+
# disable softap by default
136+
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n
137+
138+
CONFIG_ENABLE_WIFI_AP=n
139+
140+
# Enable HKDF in mbedtls
141+
CONFIG_MBEDTLS_HKDF_C=y
142+
143+
# Increase LwIP IPv6 address number to 6 (MAX_FABRIC + 1)
144+
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
145+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=6
146+
147+
# Enable OTA Requestor
148+
CONFIG_ENABLE_OTA_REQUESTOR=y
149+
150+
CONFIG_THREAD_NETWORK_ENDPOINT_ID=0
151+
CONFIG_WIFI_NETWORK_ENDPOINT_ID=2

0 commit comments

Comments
 (0)