讀取交易
與 Matter 中的節點互動的第一個用途之一,就是讀取其他節點的屬性,例如來自感應器的溫度值。在這類互動中,必須執行的第一個動作為「讀取要求動作」。
讀取要求動作
方向:發起者 -> 目標
在此動作中,啟動者查詢的目標如下:
- 屬性要求:零或多個目標屬性的清單。此清單包含目標要求屬性的 0 個或多個路徑。
- 事件要求:目標要求事件的零或多個路徑清單。
目標接收到「讀取要求動作」後,系統會組合一份包含必要資訊的報表資料動作。
報表資料動作
方向:目標 -> 發起者
在這個動作中,目標會回應:
- 屬性報表:列出「讀取動作」要求中要求的報告屬性 (0 或多個)。
- 事件報表:列出零或多個回報的事件。
- Suppress Response:這個標記可決定系統是否應抑制這項動作的狀態回應。
- 訂閱 ID:如果這份報表屬於訂閱交易的一部分,則必須包含用來識別訂閱交易的整數。
狀態回應動作
方向:指定目標 -> 發起人或發起人 -> 目標
啟動器收到要求的資料後,根據預設必須產生「狀態回應動作」。這個動作從發起人傳送,已確認已收到回報的資料。如果設定了旗標「抑制狀態回應」功能,發起人不得傳送狀態回應動作。
一旦啟動者傳送狀態回應動作,或啟動者在啟用略過回應標記的情況下收到報表資料動作,就表示讀取/報表查詢已完成。
「狀態回應動作」只包含一個 status 欄位,指出作業成功或顯示失敗代碼。
讀取限制
「讀取要求動作」和「報表資料動作」僅為 Unicast。此外,這些要求的路徑可能無法指定節點群組。
「狀態回應動作」僅限 Unicast,無法產生為群組側錄的回應。
訂閱交易
訂閱要求動作
方向:發起者 -> 目標
除了單一的讀取要求動作之外,發起者也可以訂閱屬性或事件的定期更新。因此,系統可透過訂閱交易定期更新資料的結果,產生相同的「報表資料動作」。
訂閱互動會在兩個節點之間建立關係,而目標會定期向啟動器產生報表資料動作。發起者為「訂閱者」,目標為「發布商」。
「訂閱要求動作」包含以下內容:
- 最短間隔:報表的間隔下限。
- 最大間隔:報表的間隔時間上限。
- 屬性報表:列出「讀取動作」要求中要求的報告屬性 (0 或多個)。
- 事件報表:會列出 0 或多個回報的事件。
訂閱要求後,目標會透過回報資料動作回應啟動者,其中包含第一批回報的資料:修剪版資料。
接著,啟動器會使用傳送至目標的狀態回應動作來確認報表資料動作。目標收到狀態回應動作回報沒有任何錯誤後,就會傳送「訂閱回應動作」。
「目標」隨後會按照協商的時間間隔定期傳送「報告資料動作」,而啟用者會回應這些動作,直到訂閱項目遺失或取消。
訂閱回應動作
方向:目標 -> 發起者
這是訂閱交易的最後一項動作,整個流程到此結束。本指南涵蓋的內容:
- 訂閱項目 ID:用來識別訂閱項目的整數。
- 最短間隔:最終最終,決定的報告間的最小間隔時間。
- 最大間隔:最終,決定的 報告的間隔時間上限。
訂閱限制
- 「訂閱要求動作」和「訂閱回應動作」只能執行 Unicast 動作。
- 訂閱互動中的所有報表資料動作都必須具有相同的訂閱 ID。
- 如果訂閱者未在動作之間的約定間隔時間內收到報表資料動作,系統就會終止訂閱。
- 根據上述規則,發布商只要停止定期傳送報表資料動作,即可終止訂閱互動。
- 「訂閱者」可以使用
INACTIVE_SUBSCRIPTION
狀態碼回應「報告資料動作」,藉此終止訂閱互動。