LoRaWAN 加入事件 - AWS IoT Wireless

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_euiwireless_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 参数 JoinEuiAppEui

  • rejoin_req_0_received

  • rejoin_req_2_received

  • join_accepted:此字段将显示 NetIdDevAddr

wirelessDeviceId

LoRaWAN 设备的 ID。

timestamp

事件发生时的 Unix 时间戳。

DevEui

在设备标注或设备文档中找到的设备的唯一标识符。

DevAddr 和 EUI(可选)

这些字段是可选的设备地址和 EUI 参数 JoinEUIAppEUI