

# LoRaWAN 加入事件
<a name="iot-lorawan-join-events"></a>

AWS IoT Core for LoRaWAN 可以發佈訊息，通知加入 AWS IoT 的 LoRaWAN 裝置事件。如果收到類型 0 或類型 2 的加入或重新加入請求，並且裝置已使用 AWS IoT Core for LoRaWAN 加入，加入事件會通知您。

## 加入事件的運作方式
<a name="iot-lorawan-join-events-work"></a>

當您使用 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](lorawan-onboard-end-devices.md)。

您可以啟用事件，以在您的裝置加入 AWS IoT Core for LoRaWAN 時通知您。如果加入事件失敗、收到類型 0 或類型 2 的重新加入請求以及接受加入時，您也會收到通知。

## 啟用 LoRaWAN 加入事件
<a name="iot-lorawan-join-events-enable"></a>

在 LoRaWAN 加入預留主題的訂閱者可以接收訊息之前，您必須先從 AWS 管理主控台 或透過使用 API 或 CLI 啟用事件通知。您可以為 AWS 帳戶 中的所有 LoRaWAN 資源或選定資源啟用這些事件。如需如何啟用這些事件的詳細資訊，請參閱 [為無線資源啟用事件](iot-wireless-control-events.md)。

## LoRaWAN 事件的 MQTT 主題格式
<a name="iot-lorawan-join-message-format"></a>

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 主題篩選器](https://docs.aws.amazon.com/iot/latest/developerguide/topicfilters.html)。

## LoRaWAN 加入事件的訊息承載
<a name="lorawan-join-payload"></a>

以下說明 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`。