12. Remote Configuration API (Downlink)
This guide documents the structure and mapping of configuration commands that can be sent remotely to the ISURLOG device via Downlink messages (e.g., through LoRaWAN downlinks or specific NB-IoT commands). The commands utilize a binary structure, processed by the accompanying Python library, IsurlogLPP.py.
Note
This is the full list of parameters the firmware supports over downlink — it doesn't necessarily match 8. Reference Configuration Parameters. Page 8 documents only what IsurDASH currently lets you configure through its UI; the ISURLOG firmware can support more parameters than IsurDASH currently exposes. Where the IsurDASH Configurable column says Yes, it links to the corresponding section of page 8.
Configuration Parameter Reference (config_types)
This comprehensive table defines all available remote configuration functions, their unique type code, data size, and scaling factors for encoding values.
| Function Name | Type (Hex) | Size (Bytes) | Multiplier | Range (Min/Max) | IsurDASH Configurable | Description / Equivalent Parameter |
|---|---|---|---|---|---|---|
| Global Parameters | ||||||
setLatencyTime |
A0 |
1 | 1 | 1-255 | Yes | Sets the time (minutes) between reading cycles. |
setRtcSync |
A1 |
1 | 1 | 0-1 | Yes | Sets whether readings occur at fixed clock-synchronized intervals (1, e.g. 14:00, 14:05, 14:10 for a 5-min latency) or at intervals relative to power-on time instead (0). |
setRegisterMode |
A2 |
1 | 1 | 0-1 | Yes | Sets Logging Mode (0=Fixed, 1=Conditional). |
setRegisterAccumulator |
A3 |
1 | 1 | 0-255 | Yes | Sets the number of records to accumulate before sending. |
setMagnetWakeup |
A4 |
1 | 1 | 0-1 | No | Enables/Disables the magnetic switch wake-up feature. |
setDebugLED |
A5 |
1 | 1 | 0-1 | No | Enables/Disables the STATUS LED on the PCB. |
setMaxPayloadSize |
8E |
1 | 1 | 0-255 | Yes | Sets the payload size. |
setBatteryInputSoC |
8F |
1 | 1 | 0-1 | No | Enables/Disables logging of battery State of Charge. |
setBatteryInputCRate |
90 |
1 | 1 | 0-1 | Yes | Enables/Disables logging of the battery's charge/discharge rate. |
setVDCVoltage |
91 |
1 | 1 | 0-24 | Yes | Sets the sensor supply voltage. |
setContinuousMode |
83 |
1 | 1 | 0-1 | No | Enables/Disables Continuous Mode. When enabled, the ISURLOG keeps reading sensors without sleeping between readings — filling as many reading cycles as fit in the time available until the next transmission — instead of the fixed number of cycles set by Loop Cycles. Overrides setLoopCycles. |
setLoopCycles |
84 |
1 | 1 | 0-255 | No | Sets the number of readings taken per record, averaged together (used for analog-type inputs — Analog, Modbus, PT100). Ignored when Continuous Mode is enabled. |
| Wireless Communications (BLE-only) | ||||||
setLoRaWANDevEUI |
A6 |
8 | 1 | N/A | Yes | Sets the LoRaWAN Device EUI. |
setLoRaWANAppEUI |
A7 |
8 | 1 | N/A | Yes | Sets the LoRaWAN Application EUI. |
setLoRaWANAppKey |
A8 |
16 | 1 | N/A | Yes | Sets the LoRaWAN Application Key. |
setAPN |
93 |
Variable | 1 | N/A | Yes | Sets the NB-IoT/LTE-M APN. |
setExternalSIM |
94 |
1 | 1 | 0-1 | Yes | Toggles between the integrated eSIM and an external Nano-SIM. |
setConPreference |
95 |
1 | 1 | 0-2 | Yes | Sets the NB-IoT/LTE-M connection preference: 0 = Automatic (not fully supported by the firmware yet — currently falls back to NB-IoT), 1 = LTE-M, 2 = NB-IoT. |
setMaxRetryCon |
A9 |
1 | 1 | 1-10 | No | Sets the maximum number of connection retry attempts. |
setWiFiSSID |
96 |
Variable | 1 | N/A | Yes | Sets the Wi-Fi network SSID. |
setWiFiPsswd |
97 |
Variable | 1 | N/A | Yes | Sets the Wi-Fi network password. |
setLoRaWANClass |
98 |
1 | 1 | 0-2 | Yes | Sets the LoRaWAN device class (A/B/C). |
setMQTTIP |
99 |
Variable | 1 | N/A | Yes | Sets the MQTT broker IP/hostname. |
setMQTTPort |
9A |
Variable | 1 | N/A | Yes | Sets the MQTT broker port. |
setMQTTUser |
9B |
Variable | 1 | N/A | Yes | Sets the MQTT username. |
setMQTTPasswd |
9C |
Variable | 1 | N/A | Yes | Sets the MQTT password. |
setMQTTBaseTopic |
9D |
Variable | 1 | N/A | Yes | Sets the MQTT base topic. |
setSignalData |
9E |
1 | 1 | 0-1 | Yes | Enables/Disables logging NB-IoT signal quality (RSRQ/RSRP). |
Important
In IsurDASH, the parameters in the Wireless Communications (BLE-only) section above can only be changed locally over Bluetooth (see 8.2 Wireless Communications Parameters) — this protects against a bad remote configuration leaving the ISURLOG unreachable. However, the firmware itself does not reject these same type codes if they arrive over a WiFi, LoRaWAN, or NB-IoT downlink — IsurDASH simply never sends them that way. If you are integrating downlink configuration into a third-party SCADA or backend, keep this in mind: nothing in the firmware stops you from sending these over the air, only IsurDASH's own UI restricts it.
| Function Name | Type (Hex) | Size (Bytes) | Multiplier | Range (Min/Max) | IsurDASH Configurable | Description / Equivalent Parameter |
|---|---|---|---|---|---|---|
| Analog Input Configuration | ||||||
setAnalogPreAcquisition |
AA |
2 | 1 | 0-65535 | Yes | Sets pre-acquisition time (ms) for analog inputs. |
setAnalogInputEnable |
AB |
1 | 1 | 0-1 | Yes | Enables/Disables the Analog Input. |
setAnalogInputZero |
AC |
2 | 100 | -327.68 to 327.67 | Yes | Sets the 4mA engineering value (scaled by 100). |
setAnalogInputFullScale |
AD |
2 | 100 | -327.68 to 327.67 | Yes | Sets the 20mA engineering value (scaled by 100). |
setAnalogInputLow |
AE |
2 | 100 | -327.68 to 327.67 | Yes | Sets the Low Alarm threshold (scaled by 100). |
setAnalogInputHigh |
AF |
2 | 100 | -327.68 to 327.67 | Yes | Sets the High Alarm threshold (scaled by 100). |
setAnalogInputLowCond |
B0 |
1 | 1 | 0-1 | Yes | Enables/Disables Low Alarm conditional transmission. |
setAnalogInputHighCond |
B1 |
1 | 1 | 0-1 | Yes | Enables/Disables High Alarm conditional transmission. |
| Digital Input Configuration | ||||||
setDigitalEnable |
B2 |
1 | 1 | 0-1 | Yes | Enables/Disables the Digital Input. |
setDigitalCounter |
B3 |
1 | 1 | 0-1 | Yes | Enables/Disables Digital Input Counter Mode. |
setDigitalPulseWeight |
B4 |
1 | 1 | 0-255 | Yes | Sets the Pulse Value/Weight (e.g., 10 liters/pulse). |
setDigitalWake |
B5 |
1 | 1 | 0-255 | Yes | Sets the number of pulses required to wake the device. |
setDigitalLow |
B6 |
1 | 1 | 0-255 | Yes | Sets the Low Alarm threshold. |
setDigitalHigh |
B7 |
1 | 1 | 0-255 | Yes | Sets the High Alarm threshold. |
setDigitalLowCond |
B8 |
1 | 1 | 0-1 | Yes | Enables/Disables Low Alarm conditional transmission. |
setDigitalHighCond |
B9 |
1 | 1 | 0-1 | Yes | Enables/Disables High Alarm conditional transmission. |
| Modbus Configuration (Base) | ||||||
setModbusPreAcquisition |
BA |
2 | 1 | 0-65535 | Yes | Sets pre-acquisition time (ms) for Modbus inputs. |
setModbusInputEnable |
BB |
1 | 1 | 0-1 | Yes | Enables/Disables the Modbus Input. |
setModbusInputSlaveAddress |
BC |
1 | 1 | 0-255 | Yes | Sets the Modbus Slave Address. |
setModbusInputRegisterAddress |
BD |
2 | 1 | 0-65535 | Yes | Sets the Register Address to read. |
setModbusInputFc |
BE |
1 | 1 | 0-255 | Yes | Sets the Modbus Function Code (FC). |
setModbusInputNumberOfDecimals |
BF |
1 | 1 | 0-255 | Yes | Sets the number of decimal places for scaling. |
setModbusInputIsFP |
C0 |
1 | 1 | 0-1 | Yes | Enables/Disables Floating Point (IEEE754) decoding. |
setModbusInputInvert |
C1 |
1 | 1 | 0-1 | Yes | Enables/Disables Inverse Offset Mode. |
setModbusInputOffset |
C2 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the Modbus reading Offset (scaled by 100). |
setModbusInputLow |
C3 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the Low Alarm threshold (scaled by 100). |
setModbusInputHigh |
C4 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the High Alarm threshold (scaled by 100). |
setModbusInputLowCond |
C5 |
1 | 1 | 0-1 | Yes | Enables/Disables Low Alarm conditional transmission. |
setModbusInputHighCond |
C6 |
1 | 1 | 0-1 | Yes | Enables/Disables High Alarm conditional transmission. |
| Modbus Configuration (Advanced) | ||||||
setModbusInputBaudrate |
FF |
1 | 1 | 0-255 | Yes | Sets the Modbus Baudrate. |
setModbusInputDataBits |
80 |
1 | 1 | 0-255 | Yes | Sets the Modbus Data Bits. |
setModbusInputStopBits |
81 |
1 | 1 | 0-255 | Yes | Sets the Modbus Stop Bits. |
setModbusInputParity |
82 |
1 | 1 | 0-255 | Yes | Sets the Modbus Parity. |
| PT100 Configuration | ||||||
setPT100Enable |
C7 |
1 | 1 | 0-1 | Yes | Enables/Disables the PT100 Input. |
setPT100Wires |
C8 |
1 | 1 | 2-4 | Yes | Sets the number of wires (2, 3, or 4). |
setPT100Low |
C9 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the Low Alarm threshold (scaled by 100). |
setPT100High |
CA |
2 | 100 | -327.68 to 327.67 | Yes | Sets the High Alarm threshold (scaled by 100). |
setPT100LowCond |
CB |
1 | 1 | 0-1 | Yes | Enables/Disables Low Alarm conditional transmission. |
setPT100HighCond |
CC |
1 | 1 | 0-1 | Yes | Enables/Disables High Alarm conditional transmission. |
| Internal T/H Sensors (BME680/SHT30) | ||||||
setINTTHEnable |
CD |
1 | 1 | 0-1 | Yes | Enables/Disables the internal temperature and humidity sensor. |
setINTTHTemperatureLow |
CE |
2 | 100 | -327.68 to 327.67 | Yes | Sets the Low Temp Alarm threshold (scaled by 100). |
setINTTHTemperatureHigh |
CF |
2 | 100 | -327.68 to 327.67 | Yes | Sets the High Temp Alarm threshold (scaled by 100). |
setINTTHTemperatureLowCond |
D0 |
1 | 1 | 0-1 | Yes | Enables/Disables Low Temp Alarm conditional transmission. |
setINTTHTemperatureHighCond |
D1 |
1 | 1 | 0-1 | Yes | Enables/Disables High Temp Alarm conditional transmission. |
setINTTHHumidityLow |
D2 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the Low Humidity Alarm threshold (scaled by 100). |
setINTTHHumidityHigh |
D3 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the High Humidity Alarm threshold (scaled by 100). |
setINTTHHumidityLowCond |
D4 |
1 | 1 | 0-1 | Yes | Enables/Disables Low Humidity Alarm conditional transmission. |
setINTTHHumidityHighCond |
D5 |
1 | 1 | 0-1 | Yes | Enables/Disables High Humidity Alarm conditional transmission. |
| External T/H Sensors (BME280/680) | ||||||
setEXTTHEnable |
85 |
1 | 1 | 0-1 | Yes | Enables/Disables the External T/H Sensor. |
setEXTTHTemperatureLow |
86 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the Low Temp Alarm threshold (scaled by 100). |
setEXTTHTemperatureHigh |
87 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the High Temp Alarm threshold (scaled by 100). |
setEXTTHTemperatureLowCond |
88 |
1 | 1 | 0-1 | Yes | Enables/Disables Low Temp Alarm conditional transmission. |
setEXTTHTemperatureHighCond |
89 |
1 | 1 | 0-1 | Yes | Enables/Disables High Temp Alarm conditional transmission. |
setEXTTHHumidityLow |
8A |
2 | 100 | -327.68 to 327.67 | Yes | Sets the Low Humidity Alarm threshold (scaled by 100). |
setEXTTHHumidityHigh |
8B |
2 | 100 | -327.68 to 327.67 | Yes | Sets the High Humidity Alarm threshold (scaled by 100). |
setEXTTHHumidityLowCond |
8C |
1 | 1 | 0-1 | Yes | Enables/Disables Low Humidity Alarm conditional transmission. |
setEXTTHHumidityHighCond |
8D |
1 | 1 | 0-1 | Yes | Enables/Disables High Humidity Alarm conditional transmission. |
| Internal Accelerometer (LIS2DH12) | ||||||
setAccelEnable |
00 |
1 | 1 | 0-1 | Yes | Enables/Disables the internal accelerometer. |
setAccellowCond |
01 |
1 | 1 | 0-1 | No (coming soon) | Enables/Disables Low Alarm conditional transmission (per axis, via channel). |
setAccelhighCond |
02 |
1 | 1 | 0-1 | No (coming soon) | Enables/Disables High Alarm conditional transmission (per axis, via channel). |
setAccelLow |
03 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the Low Alarm threshold, in g (per axis, via channel). |
setAccelHigh |
04 |
2 | 100 | -327.68 to 327.67 | Yes | Sets the High Alarm threshold, in g (per axis, via channel). |