Choosing gateways to receive the LoRaWAN downlink data traffic
When you send a downlink message from AWS IoT Core for LoRaWAN to your device, you can choose the gateways you want to use for the downlink data traffic. You can specify an individual gateway or choose from a list of gateways to receive the downlink traffic.
Note
This feature is different from the participating gateways feature that you can use for multicast downlink from AWS IoT Core for LoRaWAN to devices in your multicast group. For more information, see Choose participating gateways to receive multicast downlink messages
How to specify the gateway list
You can specify an individual gateway or the list of gateways to use when sending
a downlink message from AWS IoT Core for LoRaWAN to your device using the SendDataToWirelessDevice
API operation. When you
invoke the API operation, specify the following parameters using the
ParticipatingGateways
object for your gateways.
Note
The list of gateways you want to use isn't available in the AWS IoT console. You
can specify this list of gateways to use only when using the
SendDataToWirelessDevice
API operation or the CLI.
-
DownlinkMode
: Indicates whether to send the downlink message in sequential mode or concurrent mode. For class A devices, specifyUsingUplinkGateway
to use only the chosen gateways from the previous uplink message transmission. -
GatewayList
: The list of gateways that you want to use for sending the downlink data traffic. The downlink payload will be sent to the specified gateways with the specified frequency. This is indicated using a list ofGatewayListItem
objects, that consists ofGatewayId
andDownlinkFrequency
pairs. -
TransmissionInterval
: The duration of time for which AWS IoT Core for LoRaWAN will wait before transmitting the payload to the next gateway.
Note
You can specify this list of gateways to use only when sending the downlink message to a class B or a class C wireless device. If you use a class A device, the gateway that you chose when sending the uplink message will be used when a downlink message is sent to the device.
The following example shows how you specify these parameters for the gateway. The
input.json
file will contain additional details. For more
information about sending a downlink message using the
SendDataToWirelessDevice
API operation, see Perform downlink queue operations
by using the API.
Note
The parameters for specifying the list of participating gateways aren't available when you send a downlink message from AWS IoT Core for LoRaWAN using the AWS IoT console.
aws iotwireless send-data-to-wireless-device \ --id
"11aa5eae-2f56-4b8e-a023-b28d98494e49"
\ --transmit-mode "1" \ --payload-data"SGVsbG8gVG8gRGV2c2lt"
\ --cli-input-jsonfile://input.json
The following shows the contents of the input.json
file.
Contents of input.json
{ "WirelessMetadata": { "LoRaWAN": { "FPort": "
1
", "ParticipatingGateways": { "DownlinkMode": "SEQUENTIAL", "TransmissionInterval":1200
, "GatewayList": [ { "DownlinkFrequency":100000000
, "GatewayID":a01b2c34-d44e-567f-abcd-0123e445663a
}, { "DownlinkFrequency":100000101
, "GatewayID":12345678-a1b2-3c45-67d8-e90fa1b2c34d
} ] } } } }
The output of running this command generates a MessageId
for the
downlink message. In some cases, even if you receive the MessageId
,
packets can get dropped. For more information about how you can resolve the error,
see Troubleshoot downlink
message queue errors.
{ MessageId: "6011dd36-0043d6eb-0072-0008" }
Get information about the list of participating gateways
You can get information about the list of gateways that are participating in
receiving the downlink message by listing messages in the downlink queue. To list
messages, use the ListQueuedMessages
API.
aws iotwireless list-queued-messages \ --wireless-device-type "LoRaWAN"
Running this command returns information about the messages in the queue and their parameters.