Downlink
payload
might be an empty string and port
null if the downlink is for mac command and/or confirming the previous uplink.
That example has mac commands for ADR and Status request, and it's also confirming previous uplink.
{
"timestamp": 1680197610131,
"type": "downlink",
"meta": {
"application": "61cc747fdbb07352dbd89e74",
"gateway": "fedcba9876543210",
"device": "0123456789abcdef",
"packet_id": "1301732101",
"application_name": "FH",
"organization_name": "Volvo",
"device_name": "Demo device",
"device_tags": ["tag-abc", "tag-xyz"],
"gateway_tags": ["tag-abc", "tag-xyz"],
"time": 1680197610.131
},
"params": {
"payload": "",
"counter_down": 3,
"port": null,
"radio": {
"freq": 926.3,
"datarate": 5,
"hardware": {
"power": 27,
"snr": 9.3,
"rssi": -39,
"channel": 5
},
"modulation": {
"bandwidth": 500,
"spreading": 7,
"coderate": "CR_4_5",
"inverted": true
},
"datr": "SF7BW500"
},
"lora": {
"header": {
"confirmed": false,
"adr": true,
"ack": true,
"class_b": false,
"pending": false
},
"mac_commands": [
{
"cid": "LinkADRReq",
"payload": {
"data_rate": 5,
"tx_power": 8,
"ch_mask": [
true,
true,
true,
true,
true,
true,
true,
true,
false,
false,
false,
false,
false,
false,
false,
false
],
"redundancy": {
"ch_mask_cntl": 0,
"nb_rep": 1
}
}
},
{
"cid": "DevStatusReq",
"payload": null
}
]
}
}
}