设备注册状态事件
设备注册状态事件在设备注册状态发生更改时发布事件通知,例如在 Sidewalk 设备已设置或注册时。这些事件为您提供有关设备从预调配到注册的不同状态的信息。
设备注册状态事件的工作原理
当您使用 Amazon Sidewalk 和 AWS IoT Wireless 登记 Sidewalk 设备时,AWS IoT Wireless 将执行一项 create
操作并将 Sidewalk 设备添加到您的 AWS 账户中。然后,您的设备进入预调配状态,然后 eventType
变成 provisioned
。有关登记您的设备的更多消息,请参阅 开始使用适用于 Amazon Sidewalk 的 AWS IoT Core。
对设备进行 provisioned
后,Amazon Sidewalk 将执行 register
操作,向 AWS IoT Wireless 注册您的 Sidewalk 设备。注册过程开始,使用 AWS IoT 设置加密和会话密钥。注册设备后,eventType
变成 registered
,并且您的设备已能够使用。
对设备进行 registered
后,Sidewalk 可以发送请求以 deregister
您的设备。然后,AWS IoT Wireless 执行请求并将设备状态更改回到 provisioned
。有关设备状态的更多信息,请参阅 Device Tester。
启用设备注册状态事件的通知
在设备注册状态保留主题的订阅方可以接收消息之前,必须从 AWS Management Console 或使用 API 或 CLI 为其启用事件通知。您可以为 AWS 账户 中的所有 Sidewalk 资源或所选资源启用这些事件。有关如何启用这些事件的更多信息,请参阅 启用无线资源的事件。
设备注册状态事件的 MQTT 主题格式
要通知设备注册状态事件,您可以订阅以美元 ($) 符号开头的 MQTT 保留主题。有关更多信息,请参阅《AWS IoT Developer Guide》中的 MMQTT topics。
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} 可以是
provisioned
或registered
。 - {resourceType}
-
{resourceType} 可以是
sidewalk_accounts
或wireless_devices
。 - {resourceID}
-
{resourceID} 对于 {resourceType}
sidewalk_accounts
为amazon_id
,对于 {resourceType}wireless_devices
为wireless_device_id
。
您还可以使用 +
通配符同时订阅多个主题。+
通配符匹配级别中包含字符的任何字符串。例如,如果您希望收到所有可能的事件类型(provisioned
和 registered
)的通知以及注册到特定 Amazon ID 的所有设备通知,可以使用以下主题筛选条件:
$aws/iotwireless/events/device_registration_state/+/sidewalk/sidewalk_accounts/amazon_id/+
注意
您不能使用通配符 #
订阅保留主题。有关主题筛选器的更多信息,请参阅《AWS IoT Developer Guide》中的 MQTT topic filters。
设备注册状态事件的消息负载
启用设备注册状态事件的通知后,事件通知将通过 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
-
发生的事件类型。可以是
provisioned
或registered
。 - wirelessDeviceId
-
无线设备的标识符。
- timestamp
-
事件发生时的 Unix 时间戳。
- 操作
-
触发事件的操作。有效值包括
create
、register
和deregister
。 - sidewalk
-
您要接收其事件通知的 Sidewalk Amazon ID 或
SidewalkManufacturingSn
。