LoRaWAN 加入事件
适用于 LoRaWAN 的 AWS IoT Core 可以发布消息,向您通知登记到 AWS IoT 的 LoRaWAN 设备的加入事件。当收到类型为 0 或 2 的加入或重新加入请求并且设备已加入 适用于 LoRaWAN 的 AWS IoT Core 时,加入事件会通知您。
加入事件的工作原理
当您将 LoRaWAN 设备登记到 适用于 LoRaWAN 的 AWS IoT Core 时,适用于 LoRaWAN 的 AWS IoT Core 会执行将您的设备加入 到 适用于 LoRaWAN 的 AWS IoT Core 的过程。然后,您的设备将被激活以供使用,并可以发送上行消息以指示其可用。设备加入后,可以在设备与 适用于 LoRaWAN 的 AWS IoT Core 之间交换上行链路和下行链路消息。有关登记您的设备的更多消息,请参阅 将您的设备登记到 适用于 LoRaWAN 的 AWS IoT Core。
您可以启用事件以在设备加入 适用于 LoRaWAN 的 AWS IoT Core 时通知您。如果加入事件失败,收到类型为 0 或 2 的重新加入请求以及加入事件被接受时,您也会收到通知。
启用 LoRaWAN 加入事件
在 LoRaWAN 加入保留主题的订阅方可以接收消息之前,必须从 AWS Management Console 或使用 API 或 CLI 为订阅方启用事件通知。您可以为 AWS 账户 中的所有 LoRaWAN 资源或所选资源启用这些事件。有关如何启用这些事件的更多信息,请参阅 启用无线资源的事件。
LoRaWAN 事件的 MQTT 主题的格式
LoRaWAN 设备的保留 MQTT 主题使用以下格式。如果您已订阅了这些主题,那么注册到您的 AWS 账户 的所有 LoRaWAN 设备都可以接收通知:
-
资源级主题
$aws/iotwireless/events/{eventName}/{eventType}/lorawan/wireless_devices
-
标识符主题
$aws/iotwireless/events/{eventName}/{eventType}/lorawan/wireless_devices/{resourceID}/{id}
其中:
- {eventName}
-
{eventName} 必须是
join
。 - {eventType}
-
{eventType} 可以是:
-
join_req_received
-
rejoin_req_0_received
-
rejoin_req_2_received
-
join_accepted
-
- {resourceID}
-
{resourceID} 可以是
dev_eui
或wireless_device_id
。
例如,您可以订阅以下主题,以便在 适用于 LoRaWAN 的 AWS IoT Core 已接受来自设备的加入请求时接收事件通知。
$aws/iotwireless/events/join/join_accepted/lorawan/wireless_devices/wireless_device_id/{id}
您还可以使用 +
通配符同时订阅多个主题。+
通配符匹配级别中包含字符的任何字符串,例如以下主题:
$aws/iotwireless/events/join/join_req_received/lorawan/wireless_devices/wireless_device_id/+
注意
您不能使用通配符 #
订阅保留主题。
有关订阅主题时使用 +
通配符的更多信息,请参阅《AWS IoT Developer Guide》中的 MQTT topic filters。
LoRaWAN 加入事件的消息有效负载
下面显示了 LoRaWAN 加入事件的消息有效负载。
{ // General fields "eventId": "string", "eventType": "join_req_received|rejoin_req_0_received|rejoin_req_2_received|join_accepted", "WirelessDeviceId": "string", "timestamp": "timestamp", // Event-specific fields "LoRaWAN": { "DevEui": "string", // The fields below are optional indicating that it can be a null value. "DevAddr": "string", "JoinEui": "string", "AppEui": "string", } }
负载包含以下属性:
- eventId
-
适用于 LoRaWAN 的 AWS IoT Core 生成的唯一事件 ID(字符串)。
- eventType
-
发生的事件类型。可以是以下任一值:
-
join_req_received
:此字段将显示 EUI 参数JoinEui
或AppEui
-
rejoin_req_0_received
-
rejoin_req_2_received
-
join_accepted
:此字段将显示NetId
和DevAddr
。
-
- wirelessDeviceId
-
LoRaWAN 设备的 ID。
- timestamp
-
事件发生时的 Unix 时间戳。
- DevEui
-
在设备标注或设备文档中找到的设备的唯一标识符。
- DevAddr 和 EUI(可选)
-
这些字段是可选的设备地址和 EUI 参数
JoinEUI
或AppEUI
。