LoRaWAN join events - Amazon IoT Core
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

LoRaWAN join events

Amazon IoT Core for LoRaWAN can publish messages to notify you of join events for LoRaWAN devices that you onboard to Amazon IoT. Join events notify you when a join or rejoin request of type 0 or type 2 is received, and the device has joined with Amazon IoT Core for LoRaWAN.

How join events work

When you onboard your LoRaWAN devices with Amazon IoT Core for LoRaWAN, Amazon IoT Core for LoRaWAN performs a join procedure for your device with Amazon IoT Core for LoRaWAN. Your device then becomes activated for use and can send an uplink message to indicate that it's available. After the device has joined, uplink and downlink messages can be exchanged between your device and Amazon IoT Core for LoRaWAN. For more information about onboarding your device, see Onboard your devices to Amazon IoT Core for LoRaWAN.

You can enable events to notify you when your device has joined with Amazon IoT Core for LoRaWAN. You'll also be notified if the join event fails and when a rejoin request of type 0 or type 2 is received, and when it's accepted.

Enable LoRaWAN join events

Before subscribers to the LoRaWAN join reserved topics can receive messages, you must enable event notifications for them from the Amazon Web Services Management Console, or by using the API or CLI. You can enable these events for all LoRaWAN resources in your Amazon Web Services account or for select resources. For information about how to enable these events, see Enable events for wireless resources.

Format of MQTT topics for LoRaWAN events

Reserved MQTT topics for LoRaWAN devices use the following format. If you've subscribed to these topics, then all LoRaWAN devices that are registered to your Amazon Web Services account can receive the notification:

  • Resource-level topics

    $aws/iotwireless/events/{eventName}/{eventType}/lorawan/wireless_devices

  • Identifier topics

    $aws/iotwireless/events/{eventName}/{eventType}/lorawan/wireless_devices/{resourceID}/{id}

Where:

{eventName}

{eventName} must be join.

{eventType}

{eventType} can be:

  • join_req_received

  • rejoin_req_0_received

  • rejoin_req_2_received

  • join_accepted

{resourceID}

{resourceID} can be dev_eui or wireless_device_id.

For example, you can subscribe to the following topics to receive an event notification when Amazon IoT Core for LoRaWAN has accepted a join request from your devices.

$aws/iotwireless/events/join/join_accepted/lorawan/wireless_devices/wireless_device_id/{id}

You can also use the + wildcard character to subscribe to multiple topics at the same time. The + wildcard character matches any string in the level that contains the character, such as the following topic:

$aws/iotwireless/events/join/join_req_received/lorawan/wireless_devices/wireless_device_id/+

Note

You can't use the wildcard character # to subscribe to the reserved topics. For more information about topic filters, see Topic filters.

For more information about using the + wildcard when subscribing to topics, see Topic filters.

Message payload for LoRaWAN join event

The following shows the message payload for the LoRaWAN join event.

{ // 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", } }

The payload contains the following attributes:

eventId

A unique event ID that's generated by Amazon IoT Core for LoRaWAN (string).

eventType

The type of event that occurred. Can be one of the following values:

  • join_req_received: This field will show the EUI parameters JoinEui or AppEui

  • rejoin_req_0_received

  • rejoin_req_2_received

  • join_accepted: This field will show the NetId and DevAddr.

wirelessDeviceId

The ID of the LoRaWAN device.

timestamp

The Unix timestamp of when the event occurred.

DevEui

The unique identifier of the device found on the device label or device documentation.

DevAddr and EUIs (optional)

These fields are the optional device address and the EUI parameters JoinEUI or AppEUI.