v3.23.1

Getting Started Devices Gateways Integrations Reference
Get The Things Stack

Integrations

    Overview
  • Adding Applications
  • Adding Integrations
  • Cloud Integrations
  • MQTT Server
  • Pub/Sub
  • LoRa Cloud
  • Node-RED
  • IFTTT
  • Payload Formatters
    • Creating Payload Formatters
    • CayenneLPP
    • Device Repository
    • JavaScript
  • Storage Integration
  • Webhooks

CayenneLPP

The Cayenne Low Power Payload (LPP) provides a convenient and easy way to send data over LPWAN networks such as LoRaWAN. The Cayenne LPP is compliant with the payload size restriction, which can be lowered down to 11 bytes, and allows the end device to send multiple sensor data at one time.

Configure Your Device

In order to use the CayenneLPP Payload Formatter, your device must send Cayenne compatible binary payloads. For Arduino compatible boards, documentation about altering your Arduino Sketch to encode data with CayenneLPP can be found at The Things Network Cayenne Documentation. General information about the CayenneLPP Payload is available in the CayenneLPP Github Repository.

Decoded Payload

Once you have configured your device to send CayenneLPP compatible payloads, enabling the CayenneLPP Payload Formatter will add a decoded_payload object to uplink messages from your device.

For example, the following binary data:

[0x3, 0x67, 0x01, 0x10, 0x05, 0x67, 0x00, 0xFF]

will produce the following uplink_message:

{
  "uplink_message": {
    "f_port": 8,
    "f_cnt": 113,
    "frm_payload": "A2cBEAVnAP8=",
    "decoded_payload": {
      "temperature_3": 27.200000762939453,
      "temperature_5": 25.5
    },
  }
}

Translating Sensor Types to decoded_payload Fields

A description of the Cayenne LPP sensor types is available in the Cayenne documentation here.

The Things Stack uses the sensor names to create the decoded_payload fields, so a Cayenne payload with one LPP_TEMPERATURE and one LPP_BAROMETRIC_PRESSURE sensor reading will produce the following decoded payload:

{
  "uplink_message": {
    "f_port": 8,
    "f_cnt": 113,
    "frm_payload": "AHMnvwBnAN4=",
    "decoded_payload": {
      "barometric_pressure_0": 1017.5,
      "temperature_0": 22.200000762939453
    },
  }
}

The decoded_payload entries are formed from the lowercase sensor constant and channel, i.e. a LPP_TEMPERATURE reading on channel 0 becomes temperature_0.

← Creating Payload Formatters Device Repository →

On this page

  • Configure Your Device
  • Decoded Payload
  • Translating Sensor Types to decoded_payload Fields

The Things Stack

Getting Started

Devices

Gateways

Integrations

Reference

Contributing

GitHub

Forum

About Us

The Things Network

The Things Industries

About this page

Last changed by Ben Olayinka on 18 Feb 2021.
doc: Lint

Edit on Github