Uplinks
This page documents the uplink payloads published by the gateway to the MQTT broker.
The default topic prefix is LOB
, and can be changed via the Host parameter.
Uplinks to the [topic prefix]/[DevEUI]/up/+
topics never expect a response.
They can be processed in a queue with a delay.
Each uplink payload has the following structure:
i
(string): The DevEUI.n
(uint64): The uplink frame counter.q
(string): The query type, as written in the topic. Example:data
.d
: The uplink data, structure depends on the query type.
Current Configuration
Topic: [topic prefix]/[DevEUI]/up/config
After reset, the device publishes its current configuration to this topic.
Message data contents: See Configuration.
Payload example
{
"i": "70b3d5e050020901",
"n": 2,
"q": "config",
"d": {
"WAN": "lte",
"Host": "json+mqtts://70b3d5e050020901:xORkCfWk138zp9xX@ffd68a8b64014832900ef20913429521.s1.eu.hivemq.cloud?cert=0",
"Operator": "",
"Band": "",
"APN": "*",
"PIN": "",
"DNS": "1.1.1.1,9.9.9.9",
"UdpHost": "",
"UdpPort": 0,
"UseNbiot": true,
"UseLtem": true,
"OTAA": true,
"JoinEUI": "qKpIT07Kyds=",
"AppKey": "BmmSyFnMyU6itxrDok0KNA==",
"NwkKey": "AAAAAAAAAAAAAAAAAAAAAA==",
"TimeSync": 3,
"RndDelay": 10,
"LostReboot": 3,
"PayloadFormat": 0,
"cmodeDurSec": 300,
"smodeDurSec": 0,
"xmodeDurSec": 0,
"umodeDurSec": 0,
"mFilter": "",
"typFilter": "",
"devFilter": "",
"ciFilter": "",
"maxTelegrams": 0,
"listenCron": "H H 10 * * *",
"liveMode": "",
"verbose": false,
"measLTEAccumulate": 60,
"measLoRaAccumulate": 60,
"DS18x20Enable": false,
"DS18x20Accumulate": 1
}
}
Metering Data
Topic: [topic prefix]/[DevEUI]/up/data
The device publishes collected metering data in batches to this topic.
Metering data is published:
- During wM-Bus Installation Mode.
- On wM-Bus Reading Cron execution.
Message data contents:
batch
(array): Array of collected wM-Bus telegrams.batch.*.timestamp
(uint): Unix timestamp when the telegram was received.batch.*.mode
(string):C
,T
,S
,X
orU
:C
: wM-Bus C1 ModeT
: wM-Bus T1 ModeS
: wM-Bus S1 ModeX
: Sensus RF ModeU
: Müller RF Mode
batch.*.type
(string):A
,B
,X
orU
:A
wM-Bus Type AB
wM-Bus Type BX
: Sensus RF ModeU
: Müller RF Mode
batch.*.rssi
: (int): The Radio Signal Strength Indicator.batch.*.telegram
: (string): The wM-Bus telegram, encoded as Base64.
Payload example
{
"i": "70b3d5e050020901",
"n": 6,
"q": "data",
"d": {
"batch": [
{
"timestamp": 1750691682,
"mode": "C",
"type": "A",
"rssi": -30,
"telegram": "SUSTRIMFAYg0CHgN/181AILoADXIJHBfnebuDGsE7HqXn3REAp0JKcUsXptCsFKjDX75ZR3t3bwt+G9K6XoypRU4jooEbSUQNzY="
},
{
"timestamp": 1750691683,
"mode": "T",
"type": "A",
"rssi": -34,
"telegram": "HkSlEUcDkGR7B3recxAFtndFYO37OS2uq1FAGw9ShA=="
},
{
"timestamp": 1750691684,
"mode": "T",
"type": "A",
"rssi": -40,
"telegram": "GUQwTFfYxAAAAKJhCwMTJ42sJ8/Rkb+SBT0="
}
]
}
}
Device Status After Reset
Topic: [topic prefix]/[DevEUI]/up/device
After reset, the device publishes its current state to this topic.
Payload example
{
"i": "70b3d5e050020901",
"n": 1,
"q": "device",
"d": {
"imei": "356289870025052",
"imsi": "901405102769334",
"iccid": "89882280666027693344",
"model": "nRF9161-LACA",
"modem": "mfw_nrf91x1_2.0.2",
"hwversion": "nRF9161 LACA A0A",
"eui": "70B3D5E050020901",
"mcu": "app-nrf91-mcuboot+0.2.1 TZ3 (Jan 10 2025 14:06:18)",
"boot": "app-nrf91-secure+0.2.1 TZ3 (Feb 5 2025 10:28:10)",
"app": "app-nrf91-origin+0.6.0-12-g1c01be2+hw4 TZ3 (Jun 5 2025 11:41:28)",
"board": "nrf91-sx-gw4",
"reboot_code": 1,
"reboot_reason": "nRESET pin pulled low",
"assert": "",
"final_words": "",
"trace1": "",
"trace2": "",
"trace3": "",
"trace4Num": 0,
"trace5Num": 3,
"ESM_r": 0,
"EMM_r": 0
}
}
Installation Mode Status
Topic: [topic prefix]/[DevEUI]/up/install
When in wM-Bus Installation Mode, before each Metering Data publish, the device publishes the current state of the installation mode to this topic.
Payload example
{
"i": "70b3d5e050020901",
"n": 5,
"q": "install",
"d": {
"monitor": "reg:5, tac:11FB, ci:019C1300, psm:00000010, tau:00111010, RSRP:59(2/4), RSRQ:21(3/4), SNR:35(3/4)",
"net": "LTE-M",
"conTimeNow": 0,
"conFails": 0,
"apn": "iot.1nce.net",
"tac": "11FB",
"ci": "019C1300",
"operator": "26201",
"band": 3,
"rsrp": 59,
"rsrq": 21,
"snr": 35,
"T3324_psm": 4,
"T3412_tau": 93600,
"ESM": 0,
"EMM": 0,
"ceInfo": " DL-R:8x,UL-R:1x,rsrp:-82 dBm, cinr:12 dB",
"extPower": false,
"vbat": 3450,
"temperature": 280,
"host": "json+mqtts://70b3d5e050020901:xORkCfWk138zp9xX@ffd68a8b64014832900ef20913429521.s1.eu.hivemq.cloud?cert=0",
"telegrams": 35,
"uploading": 35,
"time": 1750691775,
"uploadOutcome": "success"
}
}
Device Status
Topic: [topic prefix]/[DevEUI]/up/status
The device publishes its current status to this topic.
The device status is published:
- After reset.
- On wM-Bus Reading Cron execution.
- During Daily Status.
Payload example
{
"i": "70b3d5e050020901",
"n": 3,
"q": "status",
"d": {
"monitor": "reg:5, tac:11FB, ci:019C130E, psm:00000010, tau:00111010, RSRP:59(2/4), RSRQ:20(2/4), SNR:30(2/4)",
"net": "LTE-M",
"conTimeNow": 14,
"conFails": 0,
"apn": "iot.1nce.net",
"tac": "11FB",
"ci": "019C130E",
"operator": "26201",
"band": 3,
"rsrp": 59,
"rsrq": 20,
"snr": 30,
"T3324_psm": 4,
"T3412_tau": 93600,
"ESM": 0,
"EMM": 0,
"ceInfo": " DL-R:8x,UL-R:1x,rsrp:-83 dBm, cinr:5 dB",
"extPower": false,
"vbat": 3441,
"temperature": 290,
"host": "json+mqtts://70b3d5e050020901:xORkCfWk138zp9xX@ffd68a8b64014832900ef20913429521.s1.eu.hivemq.cloud?cert=0",
"collected": false,
"telegrams": 0,
"uploading": 0,
"time": 1750691671,
"syncTicks": 30825,
"syncFrom": 946684831,
"syncTo": 1750691668,
"uploadFailures": 0,
"uploadOutcome": "success",
"activation": 1,
"bootCycles": 10,
"txCount": 0,
"txBytes": 0,
"txRsrp": 0,
"txRsrq": 0,
"rxCount": 0,
"rxBytes": 0,
"conTries": 10,
"listenTime": 0,
"awakeTime": 831,
"sleepTime": 0,
"conTime": 145,
"hAlloc": 168,
"hFree": 84
}
}