Skip to main content

Configuration

Module Settings

Navigate to Connections > LoRaWAN > Settings to configure the network server.

SettingTypeDefaultDescription
RegionDropdownEU868Regional frequency plan (EU868, US915, AU915, AS923)
UDP PortInteger1700Semtech Packet Forwarder listening port
Bind AddressString0.0.0.0Network interface to bind to
Gateway TimeoutInteger120Seconds before marking gateway disconnected
Region Selection

Choose the region that matches your LoRaWAN devices and local regulations. This affects RX2 window parameters and frequency plans.


Gateway Management

Navigate to Connections > LoRaWAN > Gateways to manage gateways.

Registering a Gateway

  1. Click Add Gateway
  2. Enter the Gateway EUI (16-character hex, e.g., A840411234567890)
  3. Optionally provide a Name, Description, and Location
  4. Click Save

Gateway Properties

PropertyDescription
NameFriendly name for the gateway
EUIUnique 64-bit identifier (from gateway configuration)
DescriptionOptional description
LocationOptional location information

Runtime Status

The gateway list shows real-time status:

ColumnDescription
StatusConnected (green) or Disconnected (red)
AddressGateway IP address and port
Last SeenTimestamp of last communication
Uplink CountTotal uplinks received
Downlink CountTotal downlinks sent

Device Management

Navigate to Connections > LoRaWAN > Devices to manage devices.

Device Registration Wizard

The wizard guides you through 4 steps:

Step 1: Activation Mode

ModeDescription
OTAAOver-the-Air Activation - Device joins dynamically using AppKey
ABPActivation By Personalization - Pre-provisioned session keys
Recommended

OTAA is recommended for most deployments as it provides better security through dynamic session keys.

Step 2: Device Class

ClassDescription
Class ABattery-optimized; receives only after transmitting (RX1/RX2 windows)
Class CAlways listening; receives downlinks immediately

Step 3: Device Details

For OTAA devices:

FieldFormatDescription
Device EUI16 hex charsUnique device identifier
Application Key32 hex charsRoot key for join and session derivation
NameTextFriendly name

For ABP devices:

FieldFormatDescription
Device EUI16 hex charsUnique device identifier
Device Address8 hex charsPre-assigned network address
Network Session Key32 hex charsKey for network layer encryption
App Session Key32 hex charsKey for application layer encryption
NameTextFriendly name

Step 4: Payload Decoder (Optional)

Select a JavaScript decoder to parse uplink payloads into structured tags.


Payload Decoders

Payload decoders transform raw LoRaWAN payloads into meaningful Ignition tags.

Creating a Decoder

  1. Go to Connections > LoRaWAN > Devices
  2. Click the Decoders tab
  3. Click Add Decoder
  4. Enter a Name and JavaScript code

Decoder Script Format

function decodeUplink(input) {
// input.bytes: array of payload bytes
// input.fPort: LoRaWAN port number

var temperature = (input.bytes[0] << 8 | input.bytes[1]) / 100;
var humidity = input.bytes[2];

return {
data: {
temperature: temperature,
humidity: humidity
}
};
}

Input Object

PropertyTypeDescription
bytesnumber[]Raw payload as byte array
fPortnumberLoRaWAN port (1-223)

Return Object

{
data: {
fieldName: value, // Creates tag: Devices/{Name}/fieldName
// ...
}
}

Type Mapping

JavaScript TypeIgnition Tag Type
number (integer)Int4 or Int8
number (float)Float8
booleanBoolean
stringString

Example Decoders

Temperature/Humidity Sensor:

function decodeUplink(input) {
return {
data: {
temperature: ((input.bytes[0] << 8) | input.bytes[1]) / 10 - 40,
humidity: input.bytes[2],
battery: input.bytes[3] / 255 * 100
}
};
}

GPS Tracker:

function decodeUplink(input) {
var lat = (input.bytes[0] << 16 | input.bytes[1] << 8 | input.bytes[2]) / 10000 - 90;
var lon = (input.bytes[3] << 16 | input.bytes[4] << 8 | input.bytes[5]) / 10000 - 180;
return {
data: {
latitude: lat,
longitude: lon
}
};
}
Decoder Sandboxing

Decoders run in a sandboxed JavaScript environment with no file, network, or system access. Execution is limited to 500ms.


Device Extended Configuration

Each device has additional settings accessible via the edit dialog:

SettingDescription
NameFriendly name (can be changed anytime)
DecoderAssigned payload decoder
Device ClassA or C (ABP only - OTAA devices cannot change class)

Per-Device Tags

When a device is registered, tags are created automatically:

[LoRaWAN]/Devices/{DeviceName}/
├── Name Device name
├── DevEUI Device EUI
├── DevAddr Network address (after join)
├── DeviceClass "A" or "C"
├── Decoder Assigned decoder name
├── {DecodedField} Dynamic tags from decoder
├── Radio/
│ ├── RSSI Signal strength (dBm)
│ ├── SNR Signal-to-noise ratio (dB)
│ ├── Frequency Uplink frequency (MHz)
│ ├── DataRate e.g., "SF7BW125"
│ └── GatewayEUI Last receiving gateway
├── Frame/
│ ├── Counter Uplink frame counter
│ ├── Port LoRaWAN port
│ ├── PayloadHex Raw payload hex
│ ├── PayloadLength Bytes
│ ├── DecoderError Error message if decode failed
│ └── LastDecode Timestamp
└── Status/
├── Connection "Online"/"Offline"/"Pending"
├── LastSeen Last uplink timestamp
├── Battery 0-255 (from DevStatusAns)
├── BatteryLevel "XX%", "External", "Unknown"
├── Margin SNR margin (-32 to +31)
├── LastStatusUpdate When status received
└── Request Write true to request status