Matter 1.4以降では、継続的に到達可能でないデバイスは間欠接続デバイス(ICD)として定義されています。ICDはほとんどの時間をスリープ状態で過ごし、制御された間隔または特定のイベントによってトリガーされた場合にのみ起動します。スリープ中、デバイスはMatterファブリック上で意図的に到達不可能な状態になります。
ICD機能は、Matterにおける消費電力の削減で前述した低消費電力メカニズム(Thread SEDおよびSSEDロール、ポーリング、タイムアウト)を基盤とし、デバイスがいつ利用可能である必要があるか、また短時間でエネルギー効率の高いウィンドウ内でどのように通信するかを定義するMatterレベルのモデルを追加します。
本トピックでは、ICDモデル、そのモード、パラメータ、およびNordicデバイスが効率的なICD構成をどのようにサポートするかについて説明します。
ICDは、アイドルモードとアクティブモードという2つの動作モードを交互に切り替えます。これらのモードは、デバイスがどのくらいの頻度で通信し、どのくらいの時間無線を起動状態に保つかを定義します。
アイドルモードでは、デバイスは省エネルギーを優先します。スロー・ポーリング間隔に従い、メッセージを時折チェックするのみです。デバイスは構成に応じて数分または数時間スリープする場合があります。長いアイドル間隔は無線使用を大幅に削減しますが、デバイスの応答速度が制限されます。
アクティブモードでは、デバイスは一時的に応答可能になります。ファスト・ポーリング間隔を使用し、交換を迅速に処理します。このモードは、デバイスが通信を開始したとき、新しい交換が始まったとき、またはアイドルモードからのタイムアウト遷移後に入ります。
複数のパラメータが遷移を制御します。たとえば、ICDはアイドルモード期間で定義された最大期間のみアイドルモードに留まることができ、その後アクティブモードに入る必要があります。逆に、アクティブモード期間はアクティブモードでの最小時間を強制し、アクティブモード閾値は遅延トラフィックに対応するため、最後の交換後にアクティブモードを延長します。
これらのメカニズムにより、デバイスは応答性とバッテリー寿命のバランスを取ることができます。
ICDの動作は5つの主要なパラメータによって制御されます。予測可能な応答性と最適化されたエネルギー消費を持つデバイスを作成するには、これらを理解することが不可欠です。

Matterは、ショートアイドル時間(SIT)とロングアイドル時間(LIT)という2つのICDプロファイルを定義しています。これらの選択は、デバイスのパフォーマンスとバッテリー寿命に大きく影響します。
SITデバイスのスロー・ポーリング間隔は15秒以下です。この構成は、ドアロックや窓カバーなどのアクチュエータに最適で、ユーザーエクスペリエンスが比較的低いレイテンシを必要とする場合に適しています。
SITデバイスはより頻繁に到達可能な状態を維持するため、より多くのエネルギーを消費しますが、一貫した応答性を提供します。
LITデバイスは15秒を超えるスロー・ポーリング間隔を使用し、多くの場合数分または数時間続きます。この構成は、煙/CO警報器や環境センサーなど、主にデータを報告するデバイスに適しています。
LITデバイスは長時間スリープするため、チェックイン・プロトコル(CIP)やユーザー・アクティブ・トリガー(UAT)などの追加のICD機能に依存して到達可能性を確保します。
LITデバイスは極めて低い消費電力を実現しますが、スケジュールされた通信またはイベント報告のために起動した後にのみクライアントに応答します。
チェックイン・プロトコルはLITデバイスに必須です。チェックインは、ICDが一時的に到達可能であることを示すために送信される短いセッションレスメッセージです。保留中のコマンドを持つクライアントは、このウィンドウ内で動作する必要があります。
CIPは、完全なセキュアセッションを確立することなく、ローテーションキーとメッセージカウンタを使用してセキュリティを提供します。
UATメカニズムにより、ユーザーは物理ボタンを押す(または別のローカルアクションをトリガーする)ことで、ICDを即座にアクティブモードにすることができます。これは、通常ディープスリープしているデバイスとの構成フローやローカルインタラクションに不可欠です。
ICDは、Matterにおける消費電力の削減で紹介されたThreadの低消費電力ロールに依存しています。これらのロールは、デバイスがどのように起動し、ポーリングし、接続を維持するかを定義します。
SEDは定期的に起動して、保留中のメッセージがないか親デバイスをポーリングします。
ICD動作では、ThreadポーリングがICDのスローおよびファスト・ポーリング間隔と整合していることが重要です。
MLE(メッシュリンク確立)子タイムアウトや子監視タイムアウトなどのThreadタイムアウトは、余分な起動を強制しないよう、スロー・ポーリング間隔以上の値に設定する必要があります。
SSEDは、親ルーターと同期した正確な間隔で起動するために、協調サンプルリスニング(CSL)を使用します。これはポーリングよりも効率的ですが、CSLには正確なクロッキングと適切に調整されたタイミング値が必要です。
同期が失われた場合、SSEDはデータリクエストを送信する必要があり、消費電力が増加する可能性があります。
Kconfigオプションを使用してnRF Connect SDKでICD動作を構成する方法を見てみましょう。
これらのオプションは、ICD機能を有効にし、アイドルおよびアクティブモードのコアタイミングパラメータを設定します。
| ICD管理 | CONFIG_CHIP_ICD | Matter ICD管理クラスタを有効にし、デバイスが間欠接続ノードとして動作できるようにします。 |
| スロー・ポーリング間隔 | CONFIG_CHIP_ICD_SLOW_POLL_INTERVAL=<ms> | アイドルモード中にICDがポーリングする頻度を指定します。 |
| ファスト・ポーリング間隔 | CONFIG_CHIP_ICD_FAST_POLL_INTERVAL=<ms> | アクティブモード中にICDがポーリングする頻度を指定します。 |
| アイドルモード期間 | CONFIG_CHIP_ICD_IDLE_MODE_DURATION=<ms> | ICDがアクティブモードに遷移する前にアイドルモードで過ごすことができる最大時間。 |
| アクティブモード期間 | CONFIG_CHIP_ICD_ACTIVE_MODE_DURATION=<ms> | デバイスがアクティブになったときにアクティブモードで必要な最小時間。 |
| アクティブモード閾値 | CONFIG_CHIP_ICD_ACTIVE_MODE_THRESHOLD=<ms> | 遅延トラフィックをサポートするため、最後のメッセージ交換後にアクティブモードを延長します。 |
| チェックイン・プロトコル(CIP) | CONFIG_CHIP_ICD_CIP=y | LITデバイスが定期的にクライアントに可用性を通知するために必須です。 |
| ユーザー・アクティブ・トリガー(UAT) | CONFIG_CHIP_ICD_USER_ACTIVE_TRIGGER=y | ユーザーアクションによってアクティブモードへの遷移を強制できるようにします。 |