本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设备注册状态事件
当设备注册状态发生变化时,设备注册状态事件会发布事件通知。发布通知,例如在配置或注册了 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
操作。然后,它会将你的 Sidewalk 设备注册为 Amazon IoT 无线。注册过程开始,在此处设置加密和会话密钥 Amazon IoT。注册设备后,eventType
变成 registered
,并且您的设备已能够使用。
设备启动后registered
,Sidewalk 可以向deregister
您的设备发送请求。 Amazon IoT 然后,Wireless 会满足请求并将设备状态更改回。provisioned
有关设备状态的更多信息,请参阅DeviceState。
启用设备注册状态事件的通知
在设备注册状态保留主题的订阅方可以接收消息之前,必须从 Amazon Web Services Management Console 或使用 API 或 CLI 为其启用事件通知。您可以为自己的所有 Sidewalk 资源 Amazon Web Services 账户 或特定资源启用这些事件。有关如何启用这些事件的更多信息,请参阅 启用无线资源的事件。
设备注册状态事件的 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_registration_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/+
注意
您不能使用通配符 #
订阅保留主题。有关主题筛选条件的更多信息,请参阅 主题筛选条件。
设备注册状态事件的消息负载
启用设备注册状态事件的通知后,事件通知将通过 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
。