Generic payload description
Are you looking for a generic payload description?
1. Version history
| Version | Date | Revision |
|---|---|---|
| 1.0.0 | 06.01.2023 | Created |
| 1.0.1 | 13.04.2026 |
Structure standardized Content updated |
2. What is a payload description?
A payload description in LoRaWAN is a documented specification that describes how the payload of a LoRaWAN device is structured. It specifies what information is contained in the data packets, how it is encoded, and how it can be decoded.
2.1 Contents of a payload description
Field structure:
The payload description specifies how the data fields are organized within the payload.
Each field represents a specific piece of information, such as temperature, humidity, GPS coordinates, or battery level.
Example:
Byte 0-1: Temperature (in 1/100 °C, big-endian)
Byte 2: Humidity (in %, integer)
Byte 3: Battery level (in 0.1 V)
Data encoding:
Information is often stored in binary or hexadecimal format to save space.
It is specified whether the data is big-endian or little-endian (byte order).
The units of the values are specified (e.g., °C, %, volts).
Data format:
Specifies whether the data is encoded as an integer, float, string, or another type.
Some devices use scaled values that must be adjusted by multiplication or division (e.g., battery level in 0.1 V instead of directly in volts).
Optional fields:
Some payloads contain optional fields that are only sent under certain conditions. The description specifies when and how these fields appear.
Sample data:
A payload description often includes examples of an encoded data packet as well as the corresponding decoded values.
Example of a binary payload:
Hexadecimal: 0x07D0123A
- Bytes 0–1 (0x07D0): Temperature = 2000 / 100 = 20.00 °C
- Byte 2 (0x12): Humidity = 18%
- Byte 3 (0x3A): Battery level = 58 / 10 = 5.8 V
2.2 Why is a payload description important?
Decoder creation: Developers use the description to write payload decoders that automatically interpret the raw data.
Interoperability: When multiple systems or platforms communicate with the same device, the payload description helps ensure that the data is interpreted correctly.
Troubleshooting: The description is essential for diagnosing problems when the data does not look as expected.
2.3 Typical documentation
The payload description is usually provided by the manufacturer of the LoRaWAN device. It may be included in a user manual, a technical specification, or as a separate document.
An example of documentation:
Device: LoRa Sensor XY123
Payload Structure:
Byte 0-1: Temperature (°C * 100)
Byte 2: Humidity (%)
Byte 3: Battery level (V * 10)
3. Payload description Sentinum
This chapter describes the structure of the telemetry data. The number of bytes in the payload depends on the sensor configuration. The data structure depends on which sensors are present in your product.
In principle, every version has a header. This header contains information about the version and status of the sensor and also includes a master reading. This reading can simply be assumed to be the current reading.
The header is followed by an additional payload section that contains further information, such as specific parameters for the measurement principle or settings for position and opening detection. Not every sensor has an additional payload section.
3.1 Payload example
The following payload example is provided for the Helios pressure sensor:
11 11 FE 1A D5 95 06 03 00 23 BE
| Bytes | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| HEX | 11 | 11 | FE | 1A | D5 | 95 | 06 | 03 | 00 | 23 | BE |
| Description | Module key | Module key | Uplink Counter | Battery Voltage | Battery Voltage | Temperature | Alarm Flag | Alarm Flag | Measurement Status | Pressure mbar | Pressure mbar |
The module key is required for the downlink.
| Terms | Description |
|---|---|
| Byte No. | Byte number starting at 1 |
| Alias | Descriptive name of the variable |
| Description | Description of the variable |
| Label | Designation in the data converter |
3.2 Structure of the module key
| Byte 1 | Byte 2 | ||
|---|---|---|---|
| Bits 7–4 | Bits 3–0 | Bits 7–4 | Bits 3–0 |
| Module Base ID, e.g., Sentiface, Senticom, Sentivisor | Major Version (SW/HW Version) | Minor Version (SW/HW Version) | Product Version (Sensors) (Sensors, e.g., TH, THL, ACC, …) |
The module key of the SENTIFACE module can be extracted from the first 2 bytes of each uplink.
3.3 Uplink example
4. Ports
| Ports | Channel | Description |
|---|---|---|
| 0 | Uplink | Join |
| 1 | Uplink | Telemetry Uplink |
| 2 | Uplink | Information Uplink |
| 3 | Uplink | Response to a downlink |
| 4 | Downlink | Port for downlinks to configure settings |
| 5 | Downlink | All commands marked with "EXEC", e.g., all commands in the Supervisor module, Reboot, Reset, Start Scan, etc. |
| 6 | Downlink | Downlink command for reading configurations |
| 192 | Uplink | GNSS scan data |
| 197 | Uplink | Wi‑Fi SSID scan data |
5. What is a payload decoder
A LoRaWAN payload decoder is a piece of software or code used to decode and interpret the raw data transmitted by a LoRaWAN device into a comprehensible and useful format.
Background:
LoRaWAN devices typically transmit data in compressed and binary form to save bandwidth and energy.
The transmitted payloads often contain raw data that must be decoded to extract measured values (e.g., temperature, humidity, GPS coordinates).
How a payload decoder works:
Input data: A gateway receives the LoRaWAN data packets and forwards them to a network server (e.g., TTN).
Decoder logic: The decoder interprets the bytes according to the payload description (unpacking, scaling, unit conversion, etc.).
Output data: The decoder returns readable structured data, often as JSON.
Example (decoded JSON):
{
"temperature": 22.5,
"humidity": 60,
"battery": 3.7
}
Example of a payload decoder (JavaScript):
function decodeUplink(input) {
const bytes = input.bytes;
return {
data: {
temperature: ((bytes[0] << 8) | bytes[1]) / 100,
humidity: bytes[2],
battery: bytes[3] / 10
}
};
}
6. Which payload decoders does Sentinum provide?
Sentinum provides payload decoders for LoRaWAN in .js for TTN and for ChirpStack.
© Sentinum GmbH – All rights reserved.
All contents of this document, including text, tables, and images, are protected by copyright and are the property of Sentinum GmbH.
All images are subject to the copyright of Sentinum GmbH unless otherwise stated.
Reproduction, distribution, or use — even in excerpts — is not permitted without explicit written permission.
Specifications are subject to change without notice. All information is provided without warranty.