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

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

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

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

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

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

このアクションでは、イニシエータがターゲットをクエリし、次の情報を提供します。

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

ターゲットは読み取りリクエスト アクションを受け取った後、リクエストされた情報を含むレポートデータ アクションを作成します。

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

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

このアクションでは、ターゲットが次のレスポンスを返します。

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

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

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

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

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

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

読み取り制限

読み取りリクエスト アクションとレポートデータ アクションは Unicast のみです。また、これらのリクエストのパスは、ノードのグループをターゲットにできない場合があります。

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

定期購入の取引

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

購読リクエスト アクション

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

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

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

購読リクエスト アクションには以下の要素が含まれます。

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

サブスクライブ リクエストの後、ターゲットはイニシエータに応答し、レポートされたデータの最初のバッチ(プライム化された公開データ)を含むレポートデータ アクションを返します。

イニシエータは、ターゲットに送信されたステータス レスポンス アクションでレポートデータ アクションを確認します。ターゲットは、エラーをレポートしないステータス レスポンス アクションを受信したら、購読レスポンス アクションを送信します。

その後、ターゲットは、交渉した間隔でレポートデータ アクションを定期的に送信し、イニシエータはサブスクリプションが消失または解約されるまで、それらのアクションに応答します。

購読レスポンス アクション

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

これが定期購入トランザクションの最後のアクションで、プロセスが終了します。以下が含まれています。

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

定期購入の制限

  • 購読リクエスト アクションと購読レスポンス アクションは、Unicast のみのアクションです。
  • サブスクリプションのインタラクション内のすべてのレポートデータ アクションは、同じサブスクリプション ID を持つ必要があります。
  • サブスクライバーが、アクション間の最大交渉間隔内にレポートデータ アクションを受信しなかった場合、サブスクリプションは終了します。
  • 以前のルールにより、ニュース メディアは定期的なレポートデータ アクションの送信を停止するだけで、定期購読のやり取りを終了できます。
  • 定期購入者は、レポートデータ アクションに INACTIVE_SUBSCRIPTION ステータス コードで応答することで、定期購入のインタラクションを終了できます。