Skip to main content

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
Topic: LOB/70b3d5e050020901/up/config
{
"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:

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 or U:
    • C: wM-Bus C1 Mode
    • T: wM-Bus T1 Mode
    • S: wM-Bus S1 Mode
    • X: Sensus RF Mode
    • U: Müller RF Mode
  • batch.*.type (string): A, B, X or U:
    • A wM-Bus Type A
    • B wM-Bus Type B
    • X: Sensus RF Mode
    • U: Müller RF Mode
  • batch.*.rssi: (int): The Radio Signal Strength Indicator.
  • batch.*.telegram: (string): The wM-Bus telegram, encoded as Base64.
Payload example
Topic: LOB/70b3d5e050020901/up/data
{
"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
Topic: LOB/70b3d5e050020901/up/device
{
"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
Topic: LOB/70b3d5e050020901/up/install
{
"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:

Payload example
Topic: LOB/70b3d5e050020901/up/status
{
"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
}
}