智能家居资料中的Report Data,既可能回应一次读取,也可能出现在持续订阅之中。Google的Matter入门文档Read Transactions把两条过程分别展开。[1] 只看到“收到数据报告”,还不能知道这项交互是否已经结束,或后面仍有同一订阅的报告。

一次读取从Read Request开始。发起方Initiator向目标Target说明所请求的属性或事件路径,目标再组装Report Data返回相应信息。原文将请求列表、返回报告与状态响应分别介绍,使“想读取哪些内容”和“实际报告了哪些内容”在流程中有不同位置。这是协议说明,不是本文对任何设备发起过请求。

默认情况下,发起方收到请求的数据后,要给出Status Response确认已收到报告。文档同时保留抑制状态响应的例外:相应标志启用时不发送这项响应。无论是状态响应已经发出,还是收到要求抑制响应的报告,页面都将这条读取、报告查询写为结束。结束条件因而需要连同该例外理解,不能要求每个示意过程都必定再出现一条状态消息。

订阅的开头与此不同。Subscribe Request之后,目标先返回含首批数据的Report Data,文档称为Primed Published Data。发起方再发送状态响应;目标收到没有错误的状态后,才发出Subscribe Response。因此,“已有第一批数据”与“订阅建立过程已经走到最后一步”,在原文中并非完全相同的时点。

Subscribe Response包含识别订阅的Subscription ID,以及最终确定的报告间隔信息。此后,目标以Publisher身份周期生成Report Data,发起方则是Subscriber。页面说,这种联系持续到订阅丢失或取消。它将建立过程的最后一步,与关系建立后的持续交互分开描述,并不是说发出Subscribe Response之后就再也不会出现数据。

同一订阅交互中的全部Report Data必须带有相同Subscription ID。这项联系让连续报告属于同一订阅,而不是每来一条数据就自然形成一个新订阅。文档还保留终止条件:超过协商的最大间隔仍未收到报告,订阅会终止。这里只解释条件,没有设置时间值,也没有保证真实设备始终按时到达。

对智能家居技术简介,先辨认报告属于一次读取还是订阅,再看其前后消息,能够保留实际生命周期。本文采用标注2022年7月13日更新的文字,没有查看流程图或实施订阅、取消和设备控制;首次发布日期未确认。这组机制说明数据如何被请求和持续报告,不是兼容性、实时性或安全测试的结果。

信息来源

本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。