本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理 IoT 设备命令和事件
设备命令提供了远程管理物理设备的功能,除了执行关键的安全、软件和硬件更新外,还可确保对设备的完全控制。对于庞大的设备群,知道设备何时执行命令可以对整个设备实现进行监督。设备命令或自动更新将触发设备状态更改,这反过来又会创建新的设备事件。此设备事件将触发自动发送到客户管理的目的地的通知。
设备命令
命令请求是向设备发送的命令。命令请求包含一个有效负载,用于指定要执行的操作,例如打开灯泡。要发送设备命令,托管集成代表最终用户调用 SendManagedThingCommand
API,然后将命令请求发送到设备。
对 a 的响应SendManagedThingCommand
是 atraceId
,你可以尽可能使用它traceId
来跟踪命令交付和任何相关的命令响应工作流程。
有关 SendManagedThingCommand
API 操作的更多信息,请参阅SendManagedThingCommand。
UpdateState
操作
要更新设备的状态,例如灯光亮起的时间,请在调用 SendManagedThingCommand
API 时使用UpdateState
操作。提供要更新的数据模型属性和新值parameters
。以下示例说明了将灯泡更新OnTime
为 SendManagedThingCommand
API 请求5
。
{ "Endpoints": [ { "endpointId": "1", "capabilities": [ { "id": "matter.OnOff", "name": "On/Off", "version": "1", "actions": [ { "name": "UpdateState", "parameters": { "OnTime": 5 } } ] } ] } ] }
ReadState
操作
要获取设备的最新状态,包括所有数据模型属性的当前值,请在调用 SendManagedThingCommand
API 时使用ReadState
操作。在中propertiesToRead
,您可以使用以下选项:
-
提供特定的数据模型属性以获取最新值,例如
OnOff
确定灯是开还是关。 -
使用通配符运算符 (
*
) 读取某项功能的所有设备状态属性。
以下示例说明了使用ReadState
操作进行 SendManagedThingCommand
API 请求的两种场景:
{ "Endpoints": [ { "endpointId": "1", "capabilities": [ { "id": "aws.OnOff", "name": "On/Off", "version": "1", "actions": [ { "name": "ReadState", "parameters": { "propertiesToRead": [ "OnOff" ] } } ] } ] } ] }
{ "Endpoints": [ { "endpointId": "1", "capabilities": [ { "id": "aws.OnOff", "name": "On/Off", "version": "1", "actions": [ { "name": "ReadState", "parameters": { "propertiesToRead": [ "*" ] } } ] } ] } ]}
设备事件
设备事件包括设备的当前状态。这可能意味着设备已更改状态,或者即使状态未更改,也正在报告其状态。它包括在数据模型中定义的属性报告和事件。事件可能是洗衣机循环已完成,或者恒温器已达到最终用户设定的目标温度。
设备事件通知
最终用户可以订阅他们为更新特定设备事件而创建的特定客户管理的目的地。要创建客户管理的目的地,请调用 CreateDestination
API。当设备向托管集成报告设备事件时,如果存在设备事件,则会通知客户管理的目的地。