设备注册状态事件 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

设备注册状态事件

设备注册状态事件在设备注册状态发生更改时发布事件通知,例如在 Sidewalk 设备已设置或注册时。这些事件为您提供有关设备从预调配到注册的不同状态的信息。

设备注册状态事件的工作原理

当您使用 Amazon Sidewalk 和 Amazon IoT Wireless 引导 Sidewalk 设备时,Amazon IoT Wireless 将执行一项 create 操作并将 Sidewalk 设备添加到 Amazon Web Services 账户 中。然后,您的设备进入预调配状态,然后 eventType变成 provisioned。有关搭载您的设备的更多消息,请参阅 适用于 Amazon Sidewalk 的 Amazon IoT Core 入门

对设备进行 provisioned 后,Amazon Sidewalk 将执行 register 操作,向 Amazon IoT Wireless 注册您的 Sidewalk 设备。注册过程开始,使用 Amazon IoT 设置加密和会话密钥。注册设备后,eventType 变成 registered,并且您的设备已能够使用。

对设备进行 registered 后,Sidewalk 可以发送请求以 deregister 您的设备。然后,Amazon IoT Wireless 执行请求并将设备状态更改回到 provisioned。有关设备状态的更多信息,请参阅DeviceState

启用设备注册状态事件的通知

在设备注册状态保留主题的订阅方可以接收消息之前,必须从 Amazon Web Services Management Console 或使用 API 或 CLI 为其启用事件通知。您可以为 Amazon Web Services 账户 中的所有 Sidewalk 资源或所选资源启用这些事件。有关如何启用这些事件的更多信息,请参阅 启用无线资源的事件

设备注册状态事件的 MQTT 主题格式

要通知设备注册状态事件,您可以订阅以美元 ($) 符号开头的 MQTT 保留主题。有关更多信息,请参阅MQTT 主题

Sidewalk 设备注册状态事件的保留 MQTT 主题使用以下格式:

  • 对于资源级主题:

    $aws/iotwireless/events/{eventName}/{eventType}/sidewalk/wireless_devices

  • 对于标识符主题:

    $aws/iotwireless/events/{eventName}/{eventType}/sidewalk/{resourceType}/{resourceID}/{id}

其中:

{eventName}

{eventName} 必须是 device_registation_state

{eventType}

{eventType} 可以是 provisionedregistered

{resourceType}

{resourceType} 可以是 sidewalk_accountswireless_devices

{resourceID}

{resourceID} 对于 {resourceType} sidewalk_accountsamazon_id,对于 {resourceType} wireless_deviceswireless_device_id

您还可以使用 + 通配符同时订阅多个主题。+ 通配符匹配级别中包含字符的任何字符串。例如,如果您希望收到所有可能的事件类型(provisionedregistered)的通知以及注册到特定 Amazon ID 的所有设备通知,可以使用以下主题筛选条件:

$aws/iotwireless/events/device_registration_state/+/sidewalk/sidewalk_accounts/amazon_id/+

注意

您不能使用通配符 # 订阅保留主题。有关主题筛选条件的更多信息,请参阅 主题筛选条件

设备注册状态事件的消息负载

启用设备注册状态事件的通知后,事件通知将通过 MQTT 随 JSON 负载一起发布。事件包含以下负载示例:

{ "eventId": "string", "eventType": "provisioned|registered", "WirelessDeviceId": "string", "timestamp": "timestamp", // Event-specific fields "operation": "create|deregister|register", "Sidewalk": { "AmazonId": "string", "SidewalkManufacturingSn": "string" } }

负载包含以下属性:

eventId

唯一事件 ID (字符串)。

eventType

发生的事件类型。可以是 provisionedregistered

wirelessDeviceId

无线设备的标识符。

timestamp

事件发生时的 Unix 时间戳。

操作

触发事件的操作。有效值包括 createregisterderegister

sidewalk

您要接收其事件通知的 Sidewalk Amazon ID 或 SidewalkManufacturingSn