取引の読み取り
Matter でノードを操作する最初のユースケースの 1 つは、センサーの温度値など、別のノードから属性を読み取ることです。このようなインタラクションでは、最初に実行するアクションはリクエストの読み取りアクションです。
![読み取りトランザクションのオペレーションの順序](https://developers.home.google.com/static/matter/primer/images/primer-im-reading.png?authuser=0000&hl=ja)
読み取りリクエストの操作
方向: イニシエータ -> ターゲット
このアクションでは、開始元がターゲットにクエリを実行し、次の情報を提供します。
- 属性リクエスト: ターゲットの属性のリスト(0 個以上)。このリストは、ターゲットのリクエストされた属性へのパスで構成されます。
- イベント リクエスト: ターゲットのリクエストされたイベントへの 0 個以上のパスのリスト。
ターゲットが読み取りリクエスト アクションを受信すると、リクエストされた情報を使用してレポートデータ アクションが組み立てられます。
レポートデータ アクション
方向: ターゲット -> 開始元
このアクションでは、ターゲットは次のように応答します。
- 属性レポート: 読み取りアクション リクエストでリクエストされた、報告された属性のリスト。0 個以上の属性を含めることができます。
- イベント レポート: 報告されたイベントのリスト(0 個以上)。
- Suppress Response: このアクションに対するステータス レスポンスを抑制するかどうかを決定するフラグ。
- サブスクリプション ID: このレポートが定期購入トランザクションの一部である場合は、定期購入トランザクションの識別に使用される整数を含める必要があります。
ステータス レスポンス アクション
方向: ターゲット -> イニシエーターまたはイニシエーター -> ターゲット
リクエストされたデータを開始元が受け取ると、デフォルトではステータス レスポンス アクションを生成する必要があります。このアクションは、報告されたデータの受信を承認するために開始元から送信されます。フラグ Suppress Status Response が設定されている場合、開始側は Status Response Action を送信できません。
開始元によってステータス レスポンス アクションが送信されたか、レスポンスの抑制フラグが有効になっているレポート データ アクションが開始元によって受信されると、読み取り/レポート クエリは終了します。
Status Response Action には、オペレーションの成功を承認するか、失敗コードを示す status フィールドのみが含まれます。
読み取り制限
リクエストの読み取りアクションとレポート データ アクションは Unicast のみです。また、これらのリクエストのパスでは、ノードグループをターゲットに設定できない場合があります。
ステータス レスポンス アクションは Unicast のみで、グループキャストへのレスポンスとして生成することはできません。
定期購入の取引
![サブスクリプション トランザクションのオペレーションの順序](https://developers.home.google.com/static/matter/primer/images/primer-im-subscribing.png?authuser=0000&hl=ja)
登録リクエスト アクション
方向: イニシエータ -> ターゲット
イニシエーターは、単一の読み取りリクエスト アクションに加えて、属性またはイベントの定期的な更新をサブスクライブすることもできます。したがって、定期購入トランザクションに続く定期的なデータ更新の結果として、同じレポートデータ アクションが生成される可能性があります。
サブスクリプション インタラクションは、2 つのノードの間に関係を作成します。この関係では、ターゲットがイニシエータに対してレポートデータ アクションを定期的に生成します。開始者はチャンネル登録者で、ターゲットはニュース メディアです。
登録リクエスト アクションには次が含まれます。
- Min Interval Floor: レポート間の最小間隔。
- Max Interval Ceiling: レポート間の最大間隔。
- 属性レポート: 読み取りアクション リクエストでリクエストされた報告された属性のリスト(0 個以上)。
- イベント レポート: 報告されたイベントのリスト(0 件以上)。
サブスクライブ リクエストの後、ターゲットは、報告されたデータの最初のバッチ(プライミングされた公開データ)を含むレポートデータ アクションでイニシエータに応答します。
イニシエーターは、ターゲットに送信されたステータス レスポンス アクションで、レポートデータ アクションを承認します。ターゲットがエラーなしを報告するステータス レスポンス アクションを受信すると、Subscribe レスポンス アクションを送信します。
その後、ターゲットはネゴシエートされた間隔で定期的にレポートデータ アクションを送信し、開始側はサブスクリプションが失われたかキャンセルされるまで、これらのアクションに応答します。
登録の応答アクション
方向: ターゲット -> 開始元
これはサブスクリプション トランザクションの最後のアクションであり、プロセスは終了します。次の内容が含まれます。
- サブスクリプション ID: サブスクリプションを識別する整数。
- 最小間隔: レポート間の最終的な決定済みの最小間隔。
- 最大間隔: レポート間の最終的な最大間隔。決定済み
チャンネル登録の制限
- サブスクリプション リクエスト アクションとサブスクリプション レスポンス アクションは Unicast 専用のアクションです。
- サブスクリプション インタラクション内のすべてのレポートデータ アクションに同じサブスクリプション ID を指定する必要があります。
- サブスクライバーが、アクション間のネゴシエートされた最大間隔内にレポートデータ アクションを受信しなかった場合、サブスクリプションは終了します。
- 以前のルールの結果として、パブリッシャーは定期的なレポートデータ アクションの送信を停止するだけで、定期購入インタラクションを終了できるようになりました。
- サブスクライバーは、レポートデータ アクションに
INACTIVE_SUBSCRIPTION
ステータス コードで応答することで、サブスクリプション インタラクションを終了できます。