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,XorU: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,XorU:AwM-Bus Type ABwM-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
}
}
Reception Statistics
Topic: [topic prefix]/[DevEUI]/up/receives
The device publishes statistics about reception of telegrams after a collection phase. This is a diagnostic message and is not necessary for normal operation.
The message contains the number of telegrams received in each mode and type. This includes all telegrams discarded by filters and duplicate telegrams (telegrams of the same kind by the same device). It also lists the number of telegrams per mode and type, that have been discarded due to errors during reception (checksum errors).
The reception statistic is published:
- After completing upload of telegrams during the Install Phase.
- After completion of every collection of telegrams, if the device is configured to use the verbose mode.
Payload example
{
"i": "70b3d5e050020901",
"n": 13,
"q": "receives",
"d": {
"u": 0,
"x": 0,
"c/a": 92,
"c/b": 30,
"f/a": 0,
"f/b": 0,
"s/a": 0,
"t/a": 606,
"sum": 728,
"u,error": 0,
"x,error": 0,
"c/a,error": 3,
"c/b,error": 0,
"f/a,error": 0,
"f/b,error": 0,
"s/a,error": 0,
"t/a,error": 0,
"sum,error": 3
}
}