LoRaWAN 加入事件
AWS IoT Core for LoRaWAN 可以發佈訊息,通知加入 AWS IoT 的 LoRaWAN 裝置事件。如果收到類型 0 或類型 2 的加入或重新加入請求,並且裝置已使用 AWS IoT Core for LoRaWAN 加入,加入事件會通知您。
加入事件的運作方式
當您使用 AWS IoT Core for LoRaWAN 將您的 LoRaWAN 裝置加入時,AWS IoT Core for LoRaWAN 會對您的裝置以 AWS IoT Core for LoRaWAN 執行加入程序。您的裝置便會啟用以供使用,並且可以傳送一則上行訊息,指示其可供使用。裝置加入後,您的裝置和 AWS IoT Core for LoRaWAN 之間可以交換上行和下行鏈路訊息。如需加入裝置的相關資訊,請參閱 將裝置加入 AWS IoT Core for LoRaWAN。
您可以啟用事件,以在您的裝置加入 AWS IoT Core for LoRaWAN 時通知您。如果加入事件失敗、收到類型 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
。
例如,您可以訂閱以下主題,以便在 AWS IoT Core for LoRaWAN 接受來自您裝置的加入請求時接收事件通知。
$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 開發人員指南》中的 MQTT 主題篩選器。
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
-
由 AWS IoT Core for LoRaWAN (字串) 產生的唯一事件 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
。