Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

ADR Algorithm Improvement

Overview

ADR Algorithm Improvement API provides mechanisms to optimize Adaptive Data Rate (ADR) behavior for LoRaWAN devices within the network.

It allows tuning of network parameters to improve communication efficiency and device performance.


Key Capabilities

  • ADR parameter optimization
  • Network performance tuning
  • Device communication efficiency improvements

Typical Use Cases

  • Optimizing battery usage in devices
  • Improving network reliability
  • Fine-tuning data rate adaptation behavior

How to configure the NbTrans Ranges for separate Data Rates via API

Send the following POST request to /api/networkSettings endpoint:

curl --location 'https://{host}}/api/networkSettings' \
--header 'x-Authorization: Bearer {Token}' \
--header 'Content-Type: application/json' \
--data '{
  "id": {
    "id": "{id}"
  },
  "createdTime": 0,
  "additionalInfo": null,
  "entityId": {
    "entityType": "{entity_type}}",
    "id": "{entity_id}"
  },
  "rxWindow": 0,
  "rxDelay": 0,
  "rx2DataRate": -1,
  "rx2Frequency": 0,
  "rx1DataRateOffset": 0,
  "adrInterval": 1,
  "installationMargin": 0,
  "cfList": [],
  "chMaskCtrlDataList": null,
  "newChIndex": 0,
  "newChFrequency": 0,
  "newChMaxDr": 0,
  "newChMinDr": 0,
  "pingSlotDr": 0,
  "pingSlotFreq": 0,
  "beaconFreq": 0,
  "clearDlQueueUponJoin": false,
  "adrMinDr": null,
  "adrMaxDr": null,
  "adrMinTxPower": null,
  "adrMaxTxPower": null,
  "adrGracePeriod": null,
  "downlinkDwellTime": null,
  "uplinkDwellTime": null,
  "maxEIRP": null,
  "adrNbTransRanges": {
    "0": {
      "minNbTrans": 1,
      "maxNbTrans": 3
    },
    "1": {
      "minNbTrans": 1,
      "maxNbTrans": 3
    }
  },
  "adrConservativeSlope": true,
  "fcntCheck": true
}'
  • {host} = Network Server or OAM host
  • {id} = id
  • {entity_type} = APPLICATION or DEVICE
  • {entity_id} = APPLICATION ID or DEVICE ID
  • {minNbTrans} = Nb Trans value: 1-3 (value couldn’t be higher than Max NbTrans)
  • {maxNbTrans} = Nb Trans value: 1-3 (value couldn’t be lower than Min NbTrans)
  • Data Range allowed: DR0 - DR15
    • Min NbTrans: 1-3 (value couldn’t be higher than Max NbTrans)
    • Max NbTrans: 1-3 (value couldn’t be lower than Min NbTrans)

Changes in ADR section in Network Settings body for POST methods:

  • ADR setting fields to be removed:
"adrMaxNbTrans": 0,
 "adrMinNbTrans": 0,
}
  • ADR setting fields to be added:
"adrConservativeSlope": true,
"adrNbTransRanges": {
"0": {
"maxNbTrans": 0,
"minNbTrans": 0
},
"1": {
"maxNbTrans": 0,
"minNbTrans": 0
},
"2": {
"maxNbTrans": 0,
"minNbTrans": 0
}
...
}
...
}

Other fields in Network Settings body remain unchanged.


How to GET the NbTrans Ranges for separate Data Rate via API

To check the NbTrans Ranges send the following GET request to /api/networkSettings endpoint:

curl --location 'https://{host}}/api/networkSettings/{entity_type}/{entity_id}' \
--header 'x-Authorization: Bearer {Token}}' \
--data ''
  • {host} = Network Server or OAM host
  • {id} = id
  • {entity_type} = APPLICATION or DEVICE