Downlink Message
Original message
The following Downlink message must be used by all connections from IoT cloud platforms to ThingPark X IoT Flow, regardless of their types.
{
"DevEUI_downlink": {
"Time": "2029-07-10T15:38:46.882+02:00",
"DevEUI": "0018B20000000B20",
"FPort": 1,
"payload_hex": "9e1c4852512000220020e3831071"
}
}
The following Downlink message also includes optional fields.
{
"DevEUI_downlink": {
"Time": "2029-07-10T15:38:46.882+02:00",
"DevEUI": "0018B20000000B20",
"FPort": 1,
"payload": {
"downMessageType": "SET_PARAM",
"ackToken": 10,
"setParameters": {
"collectionBleFilterType": "EDDYSTONE_UID",
"collectionBleFilterMain1": 51966,
"collectionBleFilterMain2": 57005,
"collectionBleFilterSecValue": 47834,
"collectionBleFilterSecMask": 47806
}
},
"Confirmed": "1",
"ValidityTime": "2029-07-10T16:38:46.882+02:00",
"FlushDownlinkQueue": "1",
"CorrelationID": "4434704901C7450B",
"DriverCfg": {
"app": {
"pId": "abeeway",
"mId": "asset-tracker",
"ver": "2"
}
}
}
}
Important note
There must be the payload field or the payload_hex field, but not both in the same message.
| Field | Description |
|---|---|
Time | ISO 8601 time of the request. Time is mandatory when the Application server authentication has been activated in the AS Profile. In this case the LRC will verify the time deviation between the generation and the reception of the request. The deviation must be lower than Max Time Deviation defined in the AS Profile. Syntax: STRING (ISO date/time). |
DevEUI | Target device IEEE EUI64 in hexadecimal format (representing 8 octets). Syntax: STRING (Hexadecimal representation). |
FPort | Target port (in decimal format). Syntax: NUMBER (Unsigned integer: 1..224). |
payload_hex | The hexadecimal payload.
Syntax: STRING (Hexadecimal representation). IMPORTANT This field must not appear if there is already the payload field. |
payload | The payload is the decoded payload_hex. Syntax: STRING. IMPORTANT This field must not appear if there is already the payload_hex field. |
FCntDn | The LoRaWAN® Downlink Counter value is used to encrypt the payload. This query parameter is needed only if the Application server (not the LRC) encrypts the payload. If present, FCntDn will be copied in the LoRaWAN® header field FCnt, and the encrypted payload will be copied as-is to the LoRaWAN® downlink frame by the LRC. Only applicable to LoRaWAN® 1.0. Syntax: NUMBER (32 bits unsigned integer). |
AFCntDn | The LoRaWAN® Applicative Downlink Counter value is used to encrypt the payload. This query parameter is needed only if the Application server (not the LRC) encrypts the payload. If present, AFCntDn will be copied in the LoRaWAN® header field FCnt, and the encrypted payload will be copied as-is to the LoRaWAN® downlink frame by the LRC. Only applicable to LoRaWAN® 1.1. Syntax: NUMBER (32 bits unsigned integer). |
Confirmed | A value of Confirmed=0 requests transmission of an UNCONFIRMED downlink frame. A value of Confirmed=1 requests transmission of a CONFIRMED downlink frame. Default value is Confirmed=0 (UNCONFIRMED). Support of Confirmed frame transmission is subject to Connectivity plan feature flag ackedDownlinkFrame. If the Confirmed flag is set on the HTTP POST and the device is associated with a Connectivity plan where the ackedDownlinkFrame feature flag is set, the downlink packet is processed. Otherwise the processing is aborted, and a specific error code is returned to the AS in the HTTP response. When targeting a multicast device, only unconfirmed frame is supported. Syntax: NUMBER (Unsigned integer: 0..1). |
FlushDownlinkQueue | Empties the device AS downlink queue of the device (Boolean). When this parameter is set to FlushDownlinkQueue=1, the AS requests the LRC to purge the AS downlink queue of the device prior to add the downlink payload transported by this HTTP POST. Syntax: NUMBER (Unsigned integer: 0..1). |
ValidityTime | Associates the AS downlink payload with an expiration date (ISO 8601 timestamp or Duration in seconds) in the device AS downlink queue. If the AS downlink payload has not yet been sent to the device, the AS downlink payload will be discarded by the LRC when the expiration date is reached. Syntax: STRING (ISO date/time) or NUMBER (Unsigned integer). |
AS_ID | Application Server ID, as provisioned in the AS Profile. AS_ID is mandatory if the Application server authentication has been activated in the AS Profile. In this case, the LRC will check that the Application Server is authorized to send downlink command to the device. Syntax: STRING. |
AS_KEY | Application Server Key. Syntax: STRING. |
Token | Security token to sign the downlink frame. Token is mandatory when the Application server authentication has been activated in the AS Profile. Syntax: STRING (256 bits hexadecimal). |
CorrelationID | 64 bits ID used to correlate the downlink frame with the associated downlink frame sent report or multicast summary reports. When this parameter is provided, it is sent back in the associated downlink frame sent report for unicast downlink frame or in the associated multicast summary reports for multicast downlink frame. Syntax: STRING (64 bits hexadecimal). |
RetryIneligibleGateways | When set to 1 or not provided, non eligible gateways (GPS out of sync for Class B, gateway down for Class B/C…) are retried during each retransmission attempt. When set to 0, non eligible gateways are excluded at the beginning of the multicast campaign and not retried during each retransmission attempt. This parameter is only applicable to multicast downlink transmission. Syntax: NUMBER (Unsigned integer: 0..1). |
Repeated | Indicates that the muslitcast downlink is a repetition. If the payload is encrypted: The FCntDn or AFCntDn value must be the same as the one used for the previous multicast downlink. If the Payload is not encrypted: The LRC will re-use the previous downlink counter. This parameter is only applicable to multicast downlink transmission. Syntax: NUMBER (32 bits integer: default 0). |