Skip to content

Commit 3b04a8e

Browse files
Adding Matter+AWS Documentation
1 parent 790aac0 commit 3b04a8e

8 files changed

+174
-0
lines changed
84.4 KB
Loading
77 KB
Loading
116 KB
Loading
34.2 KB
Loading
15.1 KB
Loading
65.8 KB
Loading
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Build Procedure For Direct Internet Connectivity (DIC)
2+
3+
## Build command with DIC
4+
5+
- To enable DIC functionality use the `enable_matter_aws=true` flag.
6+
7+
````
8+
9+
### Here is an example to build the lighting-app with DIC for the SiWx917 SoC
10+
11+
```shell
12+
./scripts/examples/gn_silabs_example.sh examples/lighting-app/silabs/ out/debug BRD4338A enable_matter_aws=true chip_enable_wifi_ipv4=true
13+
````
14+
15+
## Compile using new/different certificates
16+
17+
- Two devices should not use the same Client ID. Use a different Client ID for
18+
your second connection.
19+
- While using AWS, Change the following:
20+
- Add your AWS certificates in file
21+
`examples/platform/silabs/matter_aws/matter_aws_interface/include/MatterAwsNvmCert.h`
22+
- Provide the AWS Root CA key
23+
(https://www.amazontrust.com/repository/AmazonRootCA3.pem)
24+
- provide device_certificate and device_key with your device cert and
25+
device key. Refer
26+
[Openssl Device Certificate Creation](#matter--aws-device-openssl-keys-generation)
27+
- Add your AWS server and Clinet ID in file
28+
`examples/platform/silabs/matter_aws/matter_aws_interface/include/MatterAwsConfig.h`
29+
- Provide `MATTER_AWS_SERVER_HOST` with your AWS Server name
30+
- provide `MATTER_AWS_CLIENT_ID` with your device/thing ID
31+
- The preferred certificate type to use in the application is ECDSA.
32+
- AWS RootCA used in this PoC is
33+
https://www.amazontrust.com/repository/AmazonRootCA3.pem
34+
35+
## Matter + AWS device openssl keys generation
36+
37+
## Openssl Installation (In ubuntu)
38+
39+
1. To install openssl - `sudo apt install openssl`
40+
41+
## Certificates Creation
42+
43+
The following commands are used to generate certificates:
44+
45+
1. To generate Client key:
46+
- `openssl ecparam -name prime256v1 -genkey -noout -out device.key`
47+
2. To generate Client certificate (ex: `device.crt` and `device.key`) using CA
48+
certficate:
49+
- `openssl req -new -out device.csr -key device.key`
50+
3. While creating AWS thing , use Upload CSR option in configure device
51+
certificate step. once uploaded the CSR generated in step 2. AWS will
52+
generate AWS CA authenticated device.crt.
53+
![AWS CSR Upload ](./images/matter_aws_device_csr_certificate_generation.png)
54+
55+
Repeat step 1 and 2 to create an additional set of certificate to use in MQTT
56+
explorer (ex: `explorer.crt` and `explorer.key`). (Create with different name
57+
for Identification)
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
# Matter Wi-Fi + AWS Component
2+
3+
- Matter+AWS is a silabs only feature to connect matter devices to proprietary
4+
cloud solutions(AWS,GCP,APPLE ...) directly.As such, a Matter Wi-Fi device
5+
must support connecting locally on the Matter Fabric, via IPv6, and
6+
connecting to the Internet via IPv4.
7+
- Matter devices can be controlled by chip-tool or controller and the
8+
respective status of the attribute modified will be published to the cloud.
9+
- Remote user can install the cloud specific application to get the
10+
notification on the attribute status.
11+
12+
## Matter + AWS Feature Diagram
13+
14+
1. Below diagram gives end-to-end flow about Direct Internet Connectivity.
15+
16+
![Silicon Labs - Matter + AWS design](./images/matter_aws_flow.png)
17+
18+
## Prerequisites
19+
20+
### Hardware Requirements
21+
22+
- Hardware required for Matter + AWS feature to run on Silicon Labs Platform,
23+
refer [Hardware Requirements](#hardware-requirements)
24+
25+
### Software Requirements
26+
27+
- MQTT Explorer http://mqtt-explorer.com/
28+
- Software required for Matter + AWS feature, refer
29+
[Software Requirements](#software-requirements)
30+
31+
## End-to-End Set-up bring up
32+
33+
## Message Queuing Telemetry Transport (MQTT)
34+
35+
- MQTT is an OASIS standard messaging protocol for the Internet of Things
36+
(IoT). It is designed as an extremely lightweight publish/subscribe
37+
messaging transport that is ideal for connecting remote devices with a small
38+
code footprint and minimal network bandwidth. Refer https://mqtt.org/ for
39+
more details
40+
41+
### Building Matter Matter + AWS Application
42+
43+
1. To Build Matter + AWS Application, refer
44+
[Building of Matter + AWS](./silabs_matter_aws_build_guide.md)
45+
2. Commission the Matter Device and confirm Matter + AWS connection is done from
46+
Device side logs.
47+
48+
## End-to-End Test of Matter + AWS Application
49+
50+
- **Sharing status of device to cloud**
51+
52+
- Below diagram gives end-to-end flow for sharing status from matter
53+
device to cloud
54+
55+
![Silicon Labs - Matter + AWS design](./images/matter_aws_status_flow.png)
56+
57+
**Note**: For reference, Lighting App commands given in the above image.
58+
Similarly other application commands also can be passed. - End-to-end command to
59+
be executed from chip-tool, refer
60+
[Running the Matter Demo](RUN_DEMO.md#demo-execution---commissioning-a-wi-fi-device-using-chip-tool-for-linux) -
61+
Below is the application specific attribute/s information or state shared to the
62+
cloud through Direct Internet Connectivity Solution - For Lighting App, On/Off
63+
Attributes - For Lock App, lock/unlock Attributes - For On/off Plug App, On/Off
64+
Attributes - For Windows App, lift/tilt Attributes - For Thermostat App,
65+
SystemMode/CurrentTemp/LocalTemperature/OccupiedCoolingSetpoint/OccupiedHeatingSetpoint
66+
Attributes - Application status would be updated on the mqtt_explorer UI, as
67+
shown in below image.
68+
69+
![Silicon Labs - Matter + AWS design](./images/matter_aws_mqtt_explorer.png)
70+
71+
- **Control of the device through cloud interface**
72+
- Below diagram gives end-to-end flow for Control of the matter device
73+
through cloud interface
74+
![Silicon Labs - Matter + AWS design](./images/matter_aws_command_flow.png)
75+
76+
**Note**: For reference, Lighting App commands given in the above image.
77+
Similarly other application commands also can be passed.
78+
79+
- Make sure matter device is up and commissioned successfully, refer
80+
[Running the Matter Demo](RUN_DEMO.md#demo-execution---commissioning-a-wi-fi-device-using-chip-tool-for-linux)
81+
- For Controlling the device, set topic name and the commands to be executed
82+
in the mqtt_explorer for below applications.
83+
- Lighting App
84+
- Topic: command
85+
- Commands:
86+
- toggle
87+
- on
88+
- off
89+
- Onoff-plug App
90+
- Topic: command
91+
- Commands:
92+
- toggle
93+
- on
94+
- off
95+
- Lock App
96+
- Topic: command
97+
- Commands:
98+
- lock
99+
- unlock
100+
- Thermostat App
101+
- Topic: command
102+
- Commands:
103+
- SetMode/value(value need to provide 1,2,3,4 ex:SetMode/1)
104+
- Heating/value(value need to provide 2500,2600
105+
ex:HeatingSetPoint/2500)
106+
- Cooling/value(value need to provide 2500,2600
107+
ex:CoolingSetPoint/2500)
108+
- Window App
109+
- Topic: command
110+
- Commands:
111+
- Lift/value(value need to provide in range 1000 to 10000 ex:
112+
Lift/2500)
113+
- Tilt/value(value need to provide in range 1000 to 10000 ex:
114+
Tilt/2500)
115+
- Then click `publish` button to execute the command.
116+
117+
![Silicon Labs - Matter + AWS design](./images/matter_aws_cloud_control_mqtt_explorer.png)

0 commit comments

Comments
 (0)