You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/silabs/general/MATTER_ICD.md
+151-47
Original file line number
Diff line number
Diff line change
@@ -4,54 +4,35 @@ Matter introduces the concept of Intermittently Connected Devices (ICD) in the S
4
4
An Intermittently Connected Device is the Matter representation of a device that is not always reachable.
5
5
This covers battery-powered devices that disable their underlying hardware when in a low-power mode or devices that can be disconnected from the network, like a phone app.
6
6
7
-
This page focuses on features designed to improve the performance and reliability of battery-powered devices. By default Matter ICD functionality is enabled.
7
+
This page focuses on features designed to improve the performance and reliability of battery-powered devices and their different configuration options.
8
8
9
-
## ICD Device Types
10
-
11
-
Matter introduces two types of ICDs.
12
-
13
-
- Short Idle Time ICDs
14
-
- Long Idle Time ICDs
15
-
16
-
### Short Idle Time ICDs
17
-
18
-
Short Idle Time ICDs are battery powered devices that can always be reached by clients.
19
-
This means that their polling intervals are small enough to guarantee that a message sent from a client will be able to reach the ICD without any synchronization.
20
-
A door lock, for example, is typicaly a short idle time ICD because it needs to be able to receive commands from clients at any given time.
21
-
These devices are usually not the initiators in the communication flow.
22
-
23
-
### Long Idle ICDs
24
-
25
-
Long Idle Time ICDs are battery powered devices that require synchronization between the client and the ICD for communication to succeed.
26
-
A sensor device is an example of a device that are typicaly long idle time ICDs.
27
-
28
-
Long Idle Time ICDs are provisional with the Matter 1.3 alpha release.
9
+
## ICD Configurations
29
10
11
+
The ICD feature-set offers two types of configurations : cluster configurations and subscription configurations.
12
+
The cluster configurations are exposed through the ICD Manager Cluster interface.
13
+
The subscription configurations are exposed through build arguments and public APIs of the Matter SDK.
30
14
31
-
## ICD Management Cluster
15
+
###ICD Management Cluster
32
16
33
17
The ICD Management Cluster enables configuration of the ICD’s behavior.
34
-
It is required for an ICD to have this cluster enabled on endpoint 0.
18
+
It is required for an ICD to have this cluster enabled on endpoint 0 to be certifiable.
35
19
36
-
The ICDM Cluster exposes three configuration attributes that enable to configure an ICD.
20
+
#### Configuration Attributes
21
+
22
+
The ICD Management Cluster exposes three configuration attributes.
23
+
These configurations are independent from the underlying transport configurations.
37
24
38
25
| Attribute | Type | Constraints | Description |
39
26
|-|-|-|-|
40
-
| IdleModeInterval | uint32 | 1 to 64800 | Maximum interval in seconds or milliseconds the server can stay in idle mode |
41
-
| ActiveModeInterval | uint32 |min 300| minimum interval in milliseconds the server will stay in active mode |
42
-
| ActiveModeThreshold |uint32|min 300| minimum amount of time in milliseconds the server typically will stay active after network activity when in active mode |
27
+
| IdleModeInterval | uint32 | 1 to 64800 | Maximum interval in seconds or milliseconds the server can stay in idle mode |
28
+
| ActiveModeInterval | uint32 |all | minimum interval in milliseconds the server will stay in active mode |
29
+
| ActiveModeThreshold |uint16|desc | minimum amount of time in milliseconds the server typically will stay active after network activity when in active mode |
43
30
44
-
These configurations can be change two different ways.
31
+
These configurations can be changed two different ways.
45
32
46
-
They can be changed by using the following build configuration.
These options can also be change by setting them to a default value in the projects openthread.gni file. See examples/lock-app/silabs/openthread.gni for an example on how they can be configured.
Using the build arguments either in the build command or in the openthread.gni file is the preferred method.
68
+
Using the build arguments either in the build command or in the .gni file is the preferred method.
69
+
70
+
#### ICD Check-In Protocol Use-Case
71
+
72
+
The ICD Check-In Protocol use case is used by ICDs to maintain a known relationship in case subscriptions with clients are lost.
73
+
This includes how a client shares a Check-In token (symmetric key) with the ICD, when Check-In messages are sent and how the Check-In Protocol requirements are respected.
74
+
75
+
The Check-In Protocol is a fail-safe mechanism which allows an ICD to notify a registered client that it is available for communication when all subscriptions between the client and ICD are lost.
76
+
A subscription can be lost for several reasons, such as:
77
+
78
+
* The ICD might not have full RAM retention when it is in an idle state.
79
+
* When the ICD is powered off to change the battery.
80
+
* Power or network outage causing the connection between the client and the ICD to be interrupted.
81
+
* The client is unavailable for any reason (e.g. during a software update or hosted on a mobile device that is sometimes out-of-home).
82
+
83
+
The Check-In message is sessionless and relies on a shared secret that has been given to the ICD during the registration of the client using the ICD Management cluster.
84
+
For more information on the ICD Check-In Protocol use-case, see the associated specification section.
85
+
86
+
#### User Active Mode Trigger
89
87
88
+
Since ICDs are not immediately responsive, they require a means to render them available for communication within user initiated use cases.
89
+
Some of the user initiated use cases are:
90
90
91
-
## Subscription Maximum Interval
91
+
* Opening a new commissioning window to add another administrator.
92
+
* Reconfiguration of an existing fabric (e.g. IPKs, NOC rotation, ACL changes).
To enable these user initiated use cases, ICDs need to provide a way for a user to put them in active mode and render them responsive.
98
+
The User Active Mode Trigger feature in the ICD Management cluster indicates whether a particular device implements an active mode trigger.
99
+
100
+
### Subscription Configurations
101
+
102
+
#### Subscription Maximum Interval Negotiation
92
103
93
104
The subscription mechanism is used by ecosystems and controllers to receive attribute change updates and liveness checks.
94
105
The maximum interval of a subscription request is what defines the frequency at which a device will send a liveness check if there are no attribute changes.
@@ -105,8 +116,6 @@ The following table shows the subscribe response fields.
105
116
| SubscriptionId | uint32 | identifies the subscription |
106
117
| MaxInterval | uint16 | the final maximum interval for the subscription in seconds |
107
118
108
-
### Maximum Interval Negotiation
109
-
110
119
The Matter SDK provides a default implementation that allows an ICD to negotiate its MaxInterval.
111
120
The goal of the algorithm is to set the MaxInterval to the IdleModeInterval.
112
121
@@ -163,7 +172,7 @@ The goal of the algorithm is to set the MaxInterval to the IdleModeInterval.
163
172
#endif// CHIP_CONFIG_ENABLE_ICD_SERVER
164
173
```
165
174
166
-
If the default implementation does fit within the use-case,
175
+
If the default implementation does not fit within the use-case,
167
176
an implementation can override the default implementation.
168
177
The first step is to implement the `ApplicationCallback` class from the `ReadHandler.h` header.
169
178
@@ -217,7 +226,7 @@ The second step is registering the callback object to the Interaction Model Engi
Persistent subscriptions were added to Matter as a means to ensure that an ICD can re-establish its subscription and by extension its secure session to a subscriber in the event of a power cycle.
223
232
When a device accepts a subscription request, it will persist the subscription.
@@ -227,17 +236,112 @@ the subscription will be deleted.
227
236
228
237
Persistent subscriptions are enabled by default on all Silicon Labs sample applications.
229
238
230
-
### Subscription Timeout Resumption
239
+
####Subscription Timeout Resumption
231
240
232
241
Matter also provides a retry mechanism for devices to try to re-establish a lost subscription with a client. This feature should not be used on an ICD since it can significantly reduce battery life. This functionality can be disabled by adding
233
242
234
243
`chip_subscription_timeout_resumption = false`
235
244
236
-
## Subscription Synchronization
245
+
####Subscription Synchronization
237
246
238
247
To avoid forcing an ICD to become active multiple times, the Matter SDK allows an ICD to synchronize its subscription reporting and send all the reports at the same time. The mecansim syncrhonizes the maximum interval of the all subscription to only require the ICD to become active one. This functionality can be enabled by adding
239
248
240
249
`sl_use_subscription_synching = true`
241
250
242
251
For further details on Matter ICD's operating on OpenThread, visit [Matter Intermittently Connected Devices over OpenThread](../thread/OT_SLEEPY_END_DEVICE.md).
243
252
And for Matter ICD's operating via WiFi, visit [Matter Intermittently Connected Devices over WiFi](../wifi/WIFI_SLEEPY_END_DEVICE.md).
253
+
254
+
255
+
## ICD Device Types
256
+
257
+
Matter introduces two types of ICDs.
258
+
259
+
- Short Idle Time ICDs
260
+
- Long Idle Time ICDs
261
+
262
+
### Short Idle Time ICDs
263
+
264
+
Short Idle Time ICDs are battery powered devices that can always be reached by clients.
265
+
This means that their polling intervals are small enough to guarantee that a message sent from a client will be able to reach the ICD without any synchronization.
266
+
A door lock, for example, is typicaly a short idle time ICD because it needs to be able to receive commands from clients at any given time.
267
+
These devices are usually not the initiators in the communication flow.
268
+
269
+
#### Requirements
270
+
271
+
This section lists the requirements that Short Idle Time ICDs must respect to be certifiable.
272
+
273
+
1. The ICD Management Cluster must be present on the Root Endpoint (0) with mandatory attributes.
274
+
2. The transport slow poll configuration must be smaller or equal to 15s.
275
+
This requirement is not enforced in Matter 1.3 since LIT ICD are not certifiable.
276
+
Once LIT ICD officially launch, this will be a mandatory requirement.
277
+
278
+
Support of the ICD Check-In Protocol use-case and the user active mode trigger is optional for SIT ICDs.
279
+
280
+
#### Configurations
281
+
282
+
These are recommended configurations based on the state of the current implementation of SIT ICDs.
283
+
The recommended configurations are likely to change with the Matter 1.4 release.
sl_active_mode_duration_ms = 10000// 10s Active Mode Duration
294
+
sl_active_mode_threshold_ms = 1000// 1s Active Mode Threshold
295
+
296
+
// Openthread Configuration flags
297
+
sl_ot_idle_interval_ms = 5000// 5s Idle Intervals
298
+
sl_ot_active_interval_ms = 500// 500ms Active Intervals
299
+
```
300
+
> **Note**: Wi-Fi polling configuration are dictated by the Access Point and cannot be changed at the Matter level.
301
+
302
+
### Long Idle ICDs
303
+
304
+
Long Idle Time ICDs are battery powered devices that require synchronization between the client and the ICD for communication to succeed.
305
+
A sensor device is an example of a device that are typically a long idle time ICD.
306
+
307
+
Long Idle Time ICDs are ready for integration in the Matter 1.3 release. The core feature-set for ICDs has been implemented through the `ICDManager`.
308
+
LIT ICDs should be certifiable with the Matter 1.4 release.
309
+
Splitting the two milestones in different releases is to allow more in depth interoperability testing to validate the proposed feature-set achieves it's power consumption and usability goals.
310
+
311
+
#### Requirements
312
+
313
+
This section lists the requirements that Long Idle Time ICDs must respect to be certifiable.
314
+
315
+
1. The ICD Management Cluster must be present on the Root Endpoint (0) with mandatory attributes.
316
+
2. The `LITS` (Long Idle Time Support) feature map must be set to 1.
317
+
All required features, attributes and commands required by this feature map must also be present.
318
+
2. The `CIP` (Check-In Protocol support) feature map must be set to 1.
319
+
All required attributes and commands required by this feature map must also be present.
320
+
3. The `UAT` (User Active Mode Trigger support) feature map must be set to 1.
321
+
All required attributes and commands required by this feature map must also be present.
322
+
4. The `ActiveModeThreshold` cannot be lower than 5 seconds.
323
+
324
+
325
+
#### Configurations
326
+
327
+
These are recommended configurations based on the state of the current implementation of LIT ICDs.
328
+
The recommended configurations are likely to change with the Matter 1.4 release.
0 commit comments