LoRa Network Configuration Schema
Complete schema documentation for the loraNetwork resource in the mPower Device API.
Overview
The loraNetwork resource is one of the most complex configurations in the API, supporting multiple operational modes and extensive configuration options for LoRa/LoRaWAN network management.
Top-Level Properties
| Property |
Type |
Description |
db |
string |
Database file path |
backupInterval |
integer |
Database backup interval in seconds |
trimInterval |
integer |
Database trim interval in seconds |
trimRows |
integer |
Number of rows to trim |
Main Configuration Objects
1. lora - LoRa Network Server Configuration
Core LoRa network server settings when operating in Network Server mode.
Basic Settings
| Property |
Type |
Description |
enabled |
boolean |
Enable/disable LoRa network server |
enableAdr |
boolean |
Enable Adaptive Data Rate |
adrNBTrans |
integer |
ADR number of transmissions |
adrPERNBTransEnabled |
boolean |
Enable ADR PER NB Trans |
adrPERNBTransThreshold |
number |
ADR PER NB Trans threshold (0.0-1.0) |
basicStationMode |
boolean |
Enable Basic Station mode |
packetForwarderMode |
boolean |
Enable Packet Forwarder mode |
Frequency Configuration
| Property |
Type |
Description |
frequencyBand |
integer |
Primary frequency band |
frequencyBand2 |
integer |
Secondary frequency band (dual card) |
channelPlan |
string |
Channel plan (e.g., “US915”, “EU868”) |
channelMask |
string |
Channel mask configuration |
frequencySubBand |
integer |
Frequency sub-band (US915/AU915) |
frequencySubBand2 |
integer |
Secondary frequency sub-band |
frequencyEU |
integer |
EU frequency in Hz |
frequencyEU2 |
integer |
Secondary EU frequency |
frequencyAS |
integer |
Asia frequency in Hz |
frequencyAS2 |
integer |
Secondary Asia frequency |
frequencyKR |
integer |
Korea frequency in Hz |
frequencyKR2 |
integer |
Secondary Korea frequency |
frequencyIN |
integer |
India frequency in Hz |
frequencyIN2 |
integer |
Secondary India frequency |
frequencyRU |
integer |
Russia frequency in Hz |
frequencyRU2 |
integer |
Secondary Russia frequency |
frequencyISM2400 |
integer |
ISM 2.4GHz frequency |
frequencyISM2400_2 |
integer |
ISM 2.4GHz frequency (card 2) |
frequencyISM2400_3 |
integer |
ISM 2.4GHz frequency (card 3) |
frequencyISM2400_2_1 |
integer |
ISM 2.4GHz frequency (card 2, channel 1) |
frequencyISM2400_2_2 |
integer |
ISM 2.4GHz frequency (card 2, channel 2) |
frequencyISM2400_2_3 |
integer |
ISM 2.4GHz frequency (card 2, channel 3) |
Radio Configuration
| Property |
Type |
Description |
maxTxPower |
integer |
Maximum transmit power in dBm |
antennaGain |
integer |
Antenna gain in dBi |
rssiOffset |
number |
RSSI offset value |
rx1DatarateOffset |
integer |
RX1 datarate offset |
rx2Datarate |
integer |
RX2 datarate |
rx1Delay |
integer |
RX1 delay in seconds |
minDatarate |
integer |
Minimum datarate |
maxDatarate |
integer |
Maximum datarate |
ADRStep |
integer |
ADR step size |
Packet Forwarder Configuration
| Property |
Type |
Description |
packetForwarderConfig |
string |
Packet forwarder JSON configuration (max 10000 chars) |
packetForwarderConfig2 |
string |
Secondary packet forwarder configuration |
skipPacketForwarderFieldCheck |
boolean |
Skip field validation |
reducedPacketUpdates |
boolean |
Reduce packet update frequency |
Network Settings
| Property |
Type |
Description |
netID |
string |
Network ID |
deviceQueueSize |
integer |
Device queue size |
joinDelay |
integer |
Join delay in seconds |
maxEIRP |
integer |
Maximum EIRP |
dwelltimeUp |
integer |
Uplink dwell time |
dwelltimeDown |
integer |
Downlink dwell time |
enableStrictCounterValidation |
boolean |
Enable strict frame counter validation |
networkLeadTime |
integer |
Network lead time in milliseconds |
maxRx2PacketSize |
integer/null |
Maximum RX2 packet size |
Class B Beacon Configuration
| Property |
Type |
Description |
beaconFrequency |
integer |
Beacon frequency in Hz |
beaconPower |
integer |
Beacon power in dBm |
beaconFreqHop |
boolean |
Enable beacon frequency hopping |
beaconInterval |
integer |
Beacon interval in seconds |
beaconInfoDesc |
integer |
Beacon info descriptor |
beaconLatitude |
number |
Beacon latitude |
beaconLongitude |
number |
Beacon longitude |
pingSlotFrequency |
integer |
Ping slot frequency in Hz |
pingSlotDatarate |
integer |
Ping slot datarate |
pingSlotFreqHop |
boolean |
Enable ping slot frequency hopping |
Listen Before Talk (LBT)
| Property |
Type |
Description |
lbtEnabled |
boolean |
Enable LBT |
lbtRssiOffset |
integer |
LBT RSSI offset |
lbtRssiTarget |
integer |
LBT RSSI target |
Hardware-Specific Settings
| Property |
Type |
Description |
calAD9361 |
integer |
AD9361 calibration value |
calTempRoom |
integer |
Room temperature calibration |
diversity |
boolean |
Enable antenna diversity |
dspStatInterval |
integer |
DSP statistics interval |
fskSYNC |
string |
FSK sync word |
gpsReceiver |
boolean |
Enable GPS receiver |
nbDSP |
integer |
Number of DSP cores |
spi_device |
string |
SPI device path |
spi_device1261 |
string |
SPI device path for SX1261 |
fineTimestampEnable |
boolean |
Enable fine timestamp |
fineTimestampMode |
string |
Fine timestamp mode |
Duty Cycle
| Property |
Type |
Description |
country |
string |
Country code for duty cycle |
dutyCycleEnabled |
boolean |
Enable duty cycle |
dutyCyclePeriod |
integer |
Duty cycle period (1-86400 seconds) |
dutyCycleRatio |
number |
Duty cycle ratio (0.0-1.0) |
Advanced Settings
| Property |
Type |
Description |
locked |
boolean |
Configuration locked status |
locking |
boolean |
Configuration locking in progress |
classCAckTimeout |
integer |
Class C ACK timeout |
aesKey |
string |
AES encryption key |
ftsMatchCRCError |
boolean |
Fine timestamp match on CRC error |
ftsVersion |
integer |
Fine timestamp version |
2. packetForwarder - Packet Forwarder Mode Configuration
Configuration when operating in Packet Forwarder mode (forwarding to external network server).
| Property |
Type |
Description |
antennaGain |
integer |
Antenna gain in dBi |
channelPlan |
string |
Channel plan |
downstreamPort |
integer |
Downstream UDP port |
downstreamPort2 |
integer |
Secondary downstream port |
upstreamPort |
integer |
Upstream UDP port |
upstreamPort2 |
integer |
Secondary upstream port |
serverAddress |
string |
Network server address (IP or domain) |
serverAddress2 |
string |
Secondary server address |
gwID |
string |
Gateway ID (16-char hex) |
gwID2 |
string |
Secondary gateway ID |
gwSource |
integer |
Gateway ID source |
public |
boolean |
Public network |
manualMode |
boolean |
Manual configuration mode |
path |
string |
Configuration file path |
pathGeo |
string |
Geolocation file path |
keepAliveInterval |
integer |
Keep-alive interval in seconds |
pushTimeout |
integer |
Push timeout in seconds |
statInterval |
integer |
Statistics interval in seconds |
autoquitThreshold |
integer |
Auto-quit threshold |
rssiOffset |
number |
RSSI offset |
maxTxPower |
integer/null |
Maximum TX power |
Frequency Settings (Packet Forwarder)
Same frequency properties as lora object above.
Beacon Settings (Packet Forwarder)
Same beacon properties as lora object above.
LBT Settings (Packet Forwarder)
| Property |
Type |
Description |
lbtEnabled |
boolean |
Enable LBT |
lbtDefaultChannels |
boolean |
Use default LBT channels |
lbtFrequency0 through lbtFrequency7 |
integer |
LBT channel frequencies |
lbtRssiOffset |
integer |
LBT RSSI offset |
lbtRssiTarget |
integer |
LBT RSSI target |
lbtScanTime |
integer |
LBT scan time in microseconds |
CRC Forwarding
| Property |
Type |
Description |
fwdCrcValid |
boolean |
Forward packets with valid CRC |
fwdCrcError |
boolean |
Forward packets with CRC errors |
fwdCrcDisabled |
boolean |
Forward packets with CRC disabled |
Spreading Factor
| Property |
Type |
Description |
spreadingFactorEnable |
array |
Enabled spreading factors (card 1) |
spreadingFactorEnable2 |
array |
Enabled spreading factors (card 2) |
Hardware-Specific (Packet Forwarder)
Same hardware properties as lora object above, plus:
| Property |
Type |
Description |
locked |
boolean |
Configuration locked |
locking |
boolean |
Configuration locking in progress |
frequencyDR6 |
integer |
DR6 frequency |
frequencyDR7 |
integer |
DR7 frequency |
lowerDefaultFrequency |
boolean |
Use lower default frequency |
3. basicStation - Basic Station Mode Configuration
Configuration for Semtech Basic Station protocol.
| Property |
Type |
Description |
credentials |
string |
LNS credentials (token or certificate) |
persistance |
boolean |
Enable persistence |
uri |
string |
LNS URI (e.g., “wss://lns.example.com:443”) |
conf |
string |
Station configuration JSON |
trust |
string |
Trusted CA certificate |
cert |
string |
Client certificate |
key |
string |
Client private key |
sign |
string |
Signature |
Dual Card Support
| Property |
Type |
Description |
credentials2 |
string |
Secondary LNS credentials |
uri2 |
string |
Secondary LNS URI |
conf2 |
string |
Secondary station configuration |
trust2 |
string |
Secondary trusted CA certificate |
cert2 |
string |
Secondary client certificate |
key2 |
string |
Secondary client private key |
sign2 |
string |
Secondary signature |
4. chirpstack - ChirpStack Configuration
Configuration for ChirpStack network server integration.
| Property |
Type |
Description |
enabled |
boolean |
Enable ChirpStack mode |
mode |
integer |
ChirpStack mode |
configs |
array |
Array of ChirpStack configurations |
ChirpStack Config Object
Each config in the configs array contains:
General Settings:
general:
logLevel: integer (0-5)
logToSyslog: boolean
Backend Settings:
backend:
type: string ("basic_station" or "semtech_udp")
basicStation:
bind: string (e.g., ":3001")
region: string (e.g., "US915")
frequencyMin: integer
frequencyMax: integer
frequencySubBand: integer
frequencyEU: integer
frequencyAS: integer
frequencyKR: integer
frequencyIN: integer
frequencyRU: integer
pingInterval: string (e.g., "1m")
readTimeout: string (e.g., "2m")
writeTimeout: string (e.g., "2m")
statInterval: string (e.g., "30s")
timesyncInternal: string (e.g., "1h")
caCert: string
tlsCert: string
tlsKey: string
concentrators:
multi_sf:
frequencies: array of integers
lora_std:
frequency: integer
bandwidth: integer
spreading_factor: integer
fsk:
frequency: integer
semtechUdp:
udpBind: string (e.g., "0.0.0.0:1700")
fakeRxTime: boolean
skipCrcCheck: boolean
Integration Settings:
integration:
marshaler: string ("json" or "protobuf")
mqtt:
auth:
type: string ("generic" or "azure_iot_hub")
generic:
servers: array of strings (MQTT broker URLs)
username: string
password: string
qos: integer (0-2)
cleanSession: boolean
clientId: string
caCert: string
tlsCert: string
tlsKey: string
azureIotHub:
deviceConnectionString: string
deviceId: string
hostname: string
sasTokenExpiration: string
tlsCert: string
tlsKey: string
eventTopicTemplate: string
commandTopicTemplate: string
stateTopicTemplate: string
stateRetained: boolean
keepAlive: string (e.g., "30s")
maxReconnectInterval: string (e.g., "1m")
terminateOnConnectError: boolean
Filters:
filters:
netIds: array of strings
joinEuis: array of strings
5. defaultApp - Default Application Configuration
Configuration for the built-in default application (HTTP/MQTT forwarding).
| Property |
Type |
Description |
enabled |
boolean |
Enable default app |
apiVersion |
string |
API version |
eui |
string |
Application EUI |
url |
string |
Destination URL |
module |
string |
Module name |
encodeHex |
boolean |
Encode payload as hex |
Backhaul Detection
backhaulDetect:
enabled: boolean
port: integer
payload: string
timeout: integer
Logging
log:
destination: string ("file" or "syslog")
level: integer (0-5)
path: string
Options
options:
apikey: string
username: string
password: string
server_cert: string
client_cert: string
clean_session: boolean
check_hostname: boolean
overrideTopicsForAllApps: boolean
uplinkTopic: string
downlinkTopic: string
cloudService: string
Request Options
requestOptions:
api: boolean
lora: boolean
log: boolean
6. network - Network Server Settings
Local join server and network configuration.
| Property |
Type |
Description |
localJoinServerEnabled |
boolean |
Enable local join server |
public |
integer |
Public network flag |
leasetime |
integer |
Address lease time |
passphrase |
string |
Network passphrase |
name |
string |
Network name |
eui |
string |
Network EUI |
key |
string |
Network key |
baseKey |
string |
Base key for key derivation |
salt |
string |
Salt for key derivation |
joinServer |
string |
External join server URL |
joinServerCheck |
boolean |
Verify join server certificate |
joinServerCert |
string |
Join server CA certificate |
joinServerCertFile |
string |
Join server cert file path |
joinServerCertUseFile |
boolean |
Use cert file instead of inline |
joinServerClientCert |
string |
Client certificate for join server |
joinServerClientKey |
string |
Client key for join server |
joinServerAppEUI |
string |
Application EUI for join server |
defaultProfile |
string |
Default device profile |
defaultDeviceProfile |
string |
Default device profile ID |
gatewayTimeoutThreshold |
integer |
Gateway timeout threshold |
LENS Integration
| Property |
Type |
Description |
lensEnabled |
boolean |
Enable LENS integration |
lensCheckinInterval |
integer |
Check-in interval |
lensServer |
string |
LENS server URL |
lensNetworkStats |
boolean |
Send network statistics |
lensGatewayStats |
boolean |
Send gateway statistics |
lensPacketPayloadData |
boolean |
Send packet payload data |
lensPacketMetadata |
boolean |
Send packet metadata |
lensLocalJoinMetadata |
boolean |
Send local join metadata |
lensDeviceHQ |
boolean |
Enable DeviceHQ integration |
7. whitelist - Device Whitelist
Local device credentials for OTAA joins.
| Property |
Type |
Description |
enabled |
boolean |
Enable whitelist |
devices |
array |
Array of device credentials |
Device Object
devices:
- name: string
deveui: string (16-char hex)
appeui: string (16-char hex)
appkey: string (32-char hex)
genappkey: string (32-char hex, optional)
class: string ("A", "B", or "C")
device_profile_id: string (optional)
network_profile_id: string (optional)
8. addressRange - Device Address Range
ABP device address range allocation.
| Property |
Type |
Description |
start |
string |
Start address (8-char hex) |
end |
string |
End address (8-char hex) |
9. udp - UDP Configuration
UDP port configuration for packet forwarder protocol.
| Property |
Type |
Description |
allowPublic |
boolean |
Allow public network access |
upstreamPort |
integer |
Upstream port (default: 1700) |
downstreamPort |
integer |
Downstream port (default: 1700) |
appPortUp |
integer |
Application upstream port |
appPortDown |
integer |
Application downstream port |
10. mqtt - MQTT Broker Configuration
Local MQTT broker settings.
| Property |
Type |
Description |
enabled |
boolean |
Enable MQTT broker |
host |
string |
Broker host (IP address) |
port |
integer |
Broker port (default: 1883) |
username |
string |
MQTT username |
password |
string |
MQTT password |
trimEui |
boolean |
Trim leading zeros from EUIs |
11. trafficManager - Traffic Manager
Filter traffic by EUI.
| Property |
Type |
Description |
enabled |
boolean |
Enable traffic manager |
join_eui_filters |
array |
Array of Join EUI filters |
dev_eui_filters |
array |
Array of Device EUI filters |
12. radiobridgeConsole - RadioBridge Console
RadioBridge cloud console integration.
| Property |
Type |
Description |
enabled |
boolean |
Enable RadioBridge console |
name |
string |
Gateway name |
region |
string |
Region |
token |
string |
Authentication token (max 500 chars) |
validated |
boolean |
Token validation status |
13. redundancy - Gateway Redundancy
High-availability configuration for dual gateway setup.
| Property |
Type |
Description |
enabled |
boolean |
Enable redundancy |
role |
string |
Gateway role (“primary” or “secondary”) |
primaryAddress |
string |
Primary gateway IP |
secondaryAddress |
string |
Secondary gateway IP |
defaultInterval |
integer |
Default sync interval |
failoverInterval |
integer |
Failover check interval |
14. log - Logging Configuration
LoRa network server logging settings.
| Property |
Type |
Description |
console |
boolean |
Log to console |
syslog |
boolean |
Log to syslog |
level |
integer |
Log level (0-5) |
path |
string |
Log file path |
15. spectralScan - Spectral Scan
RF spectral scanning configuration.
| Property |
Type |
Description |
enabled |
boolean |
Enable spectral scan |
bandwidth |
integer |
Scan bandwidth |
duration |
integer |
Scan duration |
floor |
integer |
Noise floor |
imme |
boolean |
Immediate scan |
interval |
integer |
Scan interval |
limit |
integer |
Result limit |
offset |
integer |
Frequency offset |
samples |
integer |
Number of samples |
startAt |
string |
Start time |
step |
integer |
Frequency step |
stopCriteria |
integer |
Stop criteria |
ranges |
array |
Frequency ranges to scan |
Range Object
ranges:
- start: integer (frequency in Hz)
stop: integer (frequency in Hz)
16. test - Test Mode Settings
Test and debug settings.
| Property |
Type |
Description |
disableRxJoin1 |
boolean |
Disable RX1 for join |
disableRxJoin2 |
boolean |
Disable RX2 for join |
disableRxWindow1 |
boolean |
Disable RX1 window |
disableRxWindow2 |
boolean |
Disable RX2 window |
disableDutyCycle |
boolean |
Disable duty cycle |
disableGPS |
boolean |
Disable GPS |
Example Configurations
Example 1: Network Server Mode (US915)
{
"lora": {
"enabled": true,
"enableAdr": true,
"packetForwarderMode": false,
"basicStationMode": false,
"channelPlan": "US915",
"frequencySubBand": 2,
"maxTxPower": 27,
"antennaGain": 3,
"netID": "000013"
},
"network": {
"localJoinServerEnabled": true,
"public": 1,
"name": "My LoRaWAN Network",
"eui": "0011223344556677",
"key": "00112233445566778899AABBCCDDEEFF"
},
"whitelist": {
"enabled": true,
"devices": [
{
"name": "Sensor 1",
"deveui": "0011223344556677",
"appeui": "7766554433221100",
"appkey": "00112233445566778899AABBCCDDEEFF00",
"class": "A"
}
]
}
}
Example 2: Packet Forwarder Mode
{
"lora": {
"enabled": false,
"packetForwarderMode": true
},
"packetForwarder": {
"channelPlan": "EU868",
"serverAddress": "lns.example.com",
"upstreamPort": 1700,
"downstreamPort": 1700,
"gwID": "AA555A0000000101",
"public": true,
"keepAliveInterval": 10,
"statInterval": 30
}
}
Example 3: Basic Station Mode
{
"lora": {
"enabled": false,
"basicStationMode": true
},
"basicStation": {
"persistance": true,
"uri": "wss://lns.example.com:443",
"credentials": "token:ABCD1234...",
"trust": "-----BEGIN CERTIFICATE-----\n...",
"conf": "{\"radio_conf\": {...}}"
}
}
Example 4: ChirpStack Integration
{
"chirpstack": {
"enabled": true,
"mode": 0,
"configs": [
{
"general": {
"logLevel": 4,
"logToSyslog": false
},
"backend": {
"type": "semtech_udp",
"semtechUdp": {
"udpBind": "0.0.0.0:1700",
"fakeRxTime": false,
"skipCrcCheck": false
}
},
"integration": {
"marshaler": "json",
"mqtt": {
"auth": {
"type": "generic",
"generic": {
"servers": ["tcp://localhost:1883"],
"username": "chirpstack",
"password": "chirpstack",
"qos": 0,
"cleanSession": true,
"clientId": "chirpstack-gateway"
}
},
"eventTopicTemplate": "gateway//event/",
"commandTopicTemplate": "gateway//command/#"
}
}
}
]
}
}
API Operations
Get LoRa Network Configuration
GET /api?fields=loraNetwork
Update LoRa Network Configuration
PUT /api/loraNetwork
Content-Type: application/json
{
"lora": {
"enabled": true,
"channelPlan": "US915",
"frequencySubBand": 2
}
}
Update Whitelist Devices
# Add device
POST /api/loraNetwork/whitelist/devices
{
"name": "New Sensor",
"deveui": "0011223344556677",
"appeui": "7766554433221100",
"appkey": "00112233445566778899AABBCCDDEEFF00",
"class": "A"
}
# Update device
PUT /api/loraNetwork/whitelist/devices/0
{
"name": "Updated Sensor Name"
}
# Delete device
DELETE /api/loraNetwork/whitelist/devices/0
Notes
- Mode Selection: Only one mode can be active at a time:
- Network Server mode:
lora.enabled = true
- Packet Forwarder mode:
lora.packetForwarderMode = true
- Basic Station mode:
lora.basicStationMode = true
- ChirpStack mode:
chirpstack.enabled = true
-
Dual Card Support: Many properties have a 2 suffix for dual LoRa card configurations (e.g., frequencyBand and frequencyBand2).
-
Channel Plans: Supported channel plans include US915, EU868, AU915, AS923, KR920, IN865, RU864, and custom plans.
-
Hex Format: EUI and key fields accept hex strings with or without delimiters (:, -, .).
-
Save Required: After updating loraNetwork, call POST /api/command/save to persist changes.
- Service Restart: Some changes may require restarting the LoRa service: