Getting Started Concepts The Things Stack Cloud The Things Stack Enterprise Integrations API Hardware
Get The Things Stack

Integrations

    Overview
  • Adding Applications
  • Data Formats
  • Payload Formatters
    • Creating Payload Formatters
    • CayenneLPP
    • Device Repository
    • JavaScript
  • Webhooks
  • Storage Integration
  • Integrate with popular IoT platforms
  • Other integrations
  • Application Packages
  • Examples

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

Sections

Getting Started

Concepts

The Things Stack Cloud

The Things Stack Enterprise

Integrations

API

Hardware

Sitemap

View our Sitemap

Contributing

GitHub

About Us

The Things Industries