Confirmed downlink message acknowledgment always false

Hi Orne,

I have a problem sending downlink confirmed messages to any node, since every time I receive an ACK on the MQTT queue ending by /ack the “acknowledged” field is always set to “false” although the message is actually received by the node and the server receives a positive ack from it, since in the device log I see “ack: true” in the ACK message.

The node are in class C OTAA and the server a 2.x version.

Here’s a few messages read from the MQTT queues:

{“applicationID”:“1”,“applicationName”:“Urbana-retrofitter”,“deviceName”:“S1804600004”,“devEUI”:“70b3d58ff0035f0d”,“acknowledged”:false,“fCnt”:786}
{“applicationID”:“1”,“applicationName”:“Urbana-retrofitter”,“deviceName”:“S1804600004”,“devEUI”:“70b3d58ff0035f0d”,“rxInfo”:[{“gatewayID”:“aa555a0000000107”,“name”:“Gewiss-pilot”,“rssi”:-103,“loRaSNR”:6.8,“location”:{“latitude”:0,“longitude”:0,“altitude”:0}}],“txInfo”:{“frequency”:868100000,“dr”:5},“adr”:true,“fCnt”:3539,“fPort”:2,“data”:null}

And here’s the log of the Lora-App-Server:

[
{
“uplinkMetaData”: {
“rxInfo”: [
{
“gatewayId”: “aa555a0000000107”,
“time”: null,
“timeSinceGpsEpoch”: null,
“timestamp”: 174724099,
“rssi”: -106,
“loraSnr”: 6,
“channel”: 1,
“rfChain”: 1,
“board”: 0,
“antenna”: 0,
“location”: null
}
],
“txInfo”: {
“frequency”: 868300000,
“modulation”: “LORA”,
“loRaModulationInfo”: {
“bandwidth”: 125,
“spreadingFactor”: 7,
“codeRate”: “4/5”,
“polarizationInversion”: false
}
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “UnconfirmedDataUp”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07bf76f8”,
“fCtrl”: {
“adr”: true,
“adrAckReq”: false,
“ack”: false,
“fPending”: false,
“classB”: false
},
“fCnt”: 3540,
“fOpts”: null
},
“fPort”: 2,
“frmPayload”: [
{
“bytes”: “Q3jVV0jDWoOfCfUJ9CtZchA8Etv5yhGafemb2+yDm+zAYA==”
}
]
},
“mic”: “76f6b814”
}
},
{
“uplinkMetaData”: {
“rxInfo”: [
{
“gatewayId”: “aa555a0000000107”,
“time”: null,
“timeSinceGpsEpoch”: null,
“timestamp”: 165484939,
“rssi”: -106,
“loraSnr”: 7.8,
“channel”: 0,
“rfChain”: 1,
“board”: 0,
“antenna”: 0,
“location”: null
}
],
“txInfo”: {
“frequency”: 868100000,
“modulation”: “LORA”,
“loRaModulationInfo”: {
“bandwidth”: 125,
“spreadingFactor”: 7,
“codeRate”: “4/5”,
“polarizationInversion”: false
}
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “UnconfirmedDataUp”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07bf76f8”,
“fCtrl”: {
“adr”: true,
“adrAckReq”: false,
“ack”: false,
“fPending”: false,
“classB”: false
},
“fCnt”: 3540,
“fOpts”: null
},
“fPort”: 2,
“frmPayload”: [
{
“bytes”: “Q3jVV0jDWoOfCfUJ9CtZchA8Etv5yhGafemb2+yDm+zAYA==”
}
]
},
“mic”: “76f6b814”
}
},
{
“uplinkMetaData”: {
“rxInfo”: [
{
“gatewayId”: “aa555a0000000107”,
“time”: null,
“timeSinceGpsEpoch”: null,
“timestamp”: 156246083,
“rssi”: -105,
“loraSnr”: 6.2,
“channel”: 0,
“rfChain”: 1,
“board”: 0,
“antenna”: 0,
“location”: null
}
],
“txInfo”: {
“frequency”: 868100000,
“modulation”: “LORA”,
“loRaModulationInfo”: {
“bandwidth”: 125,
“spreadingFactor”: 7,
“codeRate”: “4/5”,
“polarizationInversion”: false
}
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “UnconfirmedDataUp”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07bf76f8”,
“fCtrl”: {
“adr”: true,
“adrAckReq”: false,
“ack”: false,
“fPending”: false,
“classB”: false
},
“fCnt”: 3540,
“fOpts”: null
},
“fPort”: 2,
“frmPayload”: [
{
“bytes”: “Q3jVV0jDWoOfCfUJ9CtZchA8Etv5yhGafemb2+yDm+zAYA==”
}
]
},
“mic”: “76f6b814”
}
},
{
“uplinkMetaData”: {
“rxInfo”: [
{
“gatewayId”: “aa555a0000000107”,
“time”: null,
“timeSinceGpsEpoch”: null,
“timestamp”: 150360523,
“rssi”: -103,
“loraSnr”: 4.5,
“channel”: 2,
“rfChain”: 1,
“board”: 0,
“antenna”: 0,
“location”: null
}
],
“txInfo”: {
“frequency”: 868500000,
“modulation”: “LORA”,
“loRaModulationInfo”: {
“bandwidth”: 125,
“spreadingFactor”: 7,
“codeRate”: “4/5”,
“polarizationInversion”: false
}
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “UnconfirmedDataUp”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07bf76f8”,
“fCtrl”: {
“adr”: true,
“adrAckReq”: false,
“ack”: true,
“fPending”: false,
“classB”: false
},
“fCnt”: 3539,
“fOpts”: null
},
“fPort”: 2,
“frmPayload”: null
},
“mic”: “f0fbe278”
}
},
{
“uplinkMetaData”: {
“rxInfo”: [
{
“gatewayId”: “aa555a0000000107”,
“time”: null,
“timeSinceGpsEpoch”: null,
“timestamp”: 145729931,
“rssi”: -103,
“loraSnr”: 6.8,
“channel”: 0,
“rfChain”: 1,
“board”: 0,
“antenna”: 0,
“location”: null
}
],
“txInfo”: {
“frequency”: 868100000,
“modulation”: “LORA”,
“loRaModulationInfo”: {
“bandwidth”: 125,
“spreadingFactor”: 7,
“codeRate”: “4/5”,
“polarizationInversion”: false
}
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “UnconfirmedDataUp”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07bf76f8”,
“fCtrl”: {
“adr”: true,
“adrAckReq”: false,
“ack”: true,
“fPending”: false,
“classB”: false
},
“fCnt”: 3539,
“fOpts”: null
},
“fPort”: 2,
“frmPayload”: null
},
“mic”: “f0fbe278”
}
},
{
“uplinkMetaData”: {
“rxInfo”: [
{
“gatewayId”: “aa555a0000000107”,
“time”: null,
“timeSinceGpsEpoch”: null,
“timestamp”: 141382883,
“rssi”: -105,
“loraSnr”: 6.2,
“channel”: 1,
“rfChain”: 1,
“board”: 0,
“antenna”: 0,
“location”: null
}
],
“txInfo”: {
“frequency”: 868300000,
“modulation”: “LORA”,
“loRaModulationInfo”: {
“bandwidth”: 125,
“spreadingFactor”: 7,
“codeRate”: “4/5”,
“polarizationInversion”: false
}
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “UnconfirmedDataUp”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07bf76f8”,
“fCtrl”: {
“adr”: true,
“adrAckReq”: false,
“ack”: true,
“fPending”: false,
“classB”: false
},
“fCnt”: 3539,
“fOpts”: null
},
“fPort”: null,
“frmPayload”: null
},
“mic”: “51191d6b”
}
},
{
“downlinkMetaData”: {
“txInfo”: {
“gatewayId”: “aa555a0000000107”,
“immediately”: true,
“timeSinceGpsEpoch”: null,
“timestamp”: 0,
“frequency”: 869525000,
“power”: 14,
“modulation”: “LORA”,
“loraModulationInfo”: {
“bandwidth”: 125,
“spreadingFactor”: 12,
“codeRate”: “4/5”,
“polarizationInversion”: true
},
“board”: 0,
“antenna”: 0
}
},
“phyPayload”: {
“mhdr”: {
“mType”: “ConfirmedDataDown”,
“major”: “LoRaWANR1”
},
“macPayload”: {
“fhdr”: {
“devAddr”: “07bf76f8”,
“fCtrl”: {
“adr”: true,
“adrAckReq”: false,
“ack”: false,
“fPending”: false,
“classB”: false
},
“fCnt”: 786,
“fOpts”: null
},
“fPort”: 2,
“frmPayload”: [
{
“bytes”: “b4uiZkYTkHuQ9QM=”
}
]
},
“mic”: “99387bae”
}
}
]

I hope you can clarify this issue, since I need to retrieve the actual acknowledgement status asap.

Thanks.

1 Like

Hii @FabioD

if you are using Class C device then increase Class-C confirmed downlink timeout in the device-profile tab from the application-server web-interface.