トランザクションの読み取り

読み取りトランザクション

Matter でノードを操作する際の最初のユースケースの 1 つは、別のノードから属性(センサーの温度値など)を読み取ることです。このようなインタラクションでは、最初に実行する必要があるアクションは読み取りリクエスト アクションです。

読み取りトランザクションのオペレーションのシーケンス
図 1: 読み取りトランザクション

読み取りリクエスト アクション

方向: イニシエーター -> ターゲット

このアクションでは、イニシエーターがターゲットにクエリを実行し、以下を提供します。

  • 属性リクエスト: ターゲットの属性のリスト(0 個以上)。このリストは、ターゲットのリクエストされた属性への 0 個以上のパスで構成されます。
  • イベント リクエスト: ターゲットのリクエストされたイベントへの 0 個以上のパスのリスト。

ターゲットが読み取りリクエスト アクションを受信すると、リクエストされた情報を含むレポートデータ アクションを組み立てます。

レポートデータ アクション

方向: ターゲット -> イニシエーター

このアクションでは、ターゲットは次のように応答します。

  • 属性レポート: 読み取りアクション リクエストでリクエストされた、報告された属性の 0 個以上のリスト。
  • イベント レポート: 報告されたイベントのリスト(0 個以上)。
  • Suppress Response: このアクションに対するステータス レスポンスを抑制するかどうかを決定するフラグ。
  • サブスクリプション ID: このレポートがサブスクリプション トランザクションの一部である場合は、サブスクリプション トランザクションの識別に使用される整数を含める必要があります。

ステータス レスポンス アクション

方向: ターゲット -> イニシエーター、またはイニシエーター -> ターゲット

イニシエーターは、リクエストされたデータを受信すると、デフォルトでステータス レスポンス アクションを生成する必要があります。このアクションは、レポートデータの受信を確認するために、イニシエーターから送信されます。ステータス レスポンスの抑制フラグが設定されている場合、イニシエーターはステータス レスポンス アクションを送信してはなりません。

イニシエーターがステータス レスポンス アクションを送信するか、イニシエーターがレスポンス抑制フラグが有効になっているレポートデータ アクションを受信すると、読み取り/レポートクエリは終了します。

ステータス レスポンス アクションには、オペレーションの成功を確認するか、失敗コードを表示する status フィールドが含まれています。

読み取り制限

読み取りリクエスト アクションとレポートデータ アクションは Unicast 専用です。さらに、これらのリクエストのパスは、ノードのグループをターゲットにしていない可能性があります。

ステータス レスポンス アクションは Unicast 専用であり、グループキャストへのレスポンスとして生成することはできません。

定期購入の取引

サブスクリプション トランザクションのオペレーションのシーケンス
図 2: 定期購入の取引

登録リクエストのアクション

方向: イニシエーター -> ターゲット

単一の読み取りリクエスト アクションに加えて、イニシエーターは属性またはイベントの定期的な更新をサブスクライブすることもできます。したがって、サブスクリプション トランザクションに続く定期的なデータ更新の結果として、同じレポートデータ アクションが生成されることがあります。

サブスクリプション インタラクションは、2 つのノード間の関係を作成します。この関係では、ターゲットがイニシエーターに対してレポートデータ アクションを定期的に生成します。イニシエーターはサブスクライバー、ターゲットはパブリッシャーです。

Subscribe Request Action には次のものが含まれます。

  • Min Interval Floor: レポート間の最小間隔。
  • 最大間隔の上限: レポート間の最大間隔。
  • 属性レポート: 読み取りアクション リクエストでリクエストされた、報告された属性の 0 個以上のリスト。
  • イベント レポート: 報告された 0 個以上のイベントのリスト。

Subscribe Request の後、Target は、報告されたデータの最初のバッチ(Primed Published Data)を含む Report Data Action を Initiator に返します。

次に、イニシエーターは、ターゲットに送信されたステータス レスポンス アクションでレポートデータ アクションを確認します。ターゲットは、エラーを報告しないステータス レスポンス アクションを受信すると、サブスクライブ レスポンス アクションを送信します。

その後、ターゲットはネゴシエートされた間隔でレポートデータ アクションを定期的に送信し、イニシエーターはサブスクリプションが失われるかキャンセルされるまで、それらのアクションに応答します。

登録レスポンス アクション

方向: ターゲット -> イニシエーター

これは、定期購入取引の最後のアクションであり、プロセスを完了します。内容は次のとおりです。

  • サブスクリプション ID: サブスクリプションを識別する整数。
  • 最小間隔: レポート間の最終的な最小間隔。
  • 最大間隔: レポート間の最終的な、決定された最大間隔。

登録の制限

  • Subscribe Request Action と Subscribe Response Action は Unicast 専用のアクションです。
  • サブスクリプション インタラクション内のすべてのレポートデータ アクションには、同じサブスクリプション ID が必要です。
  • サブスクライバーが、アクション間でネゴシエートされた最大間隔内にレポートデータ アクションを受信しない場合、サブスクリプションは終了します。
  • 前述のルールの結果として、パブリッシャーは、定期的なレポートデータ アクションの送信を停止するだけで、サブスクリプション インタラクションを終了できます。
  • サブスクライバーは、INACTIVE_SUBSCRIPTION ステータス コードを含む Report Data Action に応答することで、サブスクリプション インタラクションを終了できます。