ChirpStack Sensor Connection (beta)
Send temperature readings from LoRaWAN devices on a ChirpStack (v4) network server to OpenBoxes Lift with ChirpStack's HTTP integration. Lift then shows each device's readings beside its OpenBoxes location and checks them against your alert rule.
Lift shows a copy of your logger's record. Use your logger's own record for decisions about your vaccines and medicines, and for inspections. Lift is not a validated system.
Sensor connections are in beta on every plan, at no extra charge during the beta. If your readings do not appear, contact support from the portal. See Temperature Loggers for how readings, alert rules and alerts work.
Before you start#
Your device profile in ChirpStack needs a codec that decodes each uplink, so each uplink event carries an object with the temperature as a number. The part of the uplink event Lift reads looks like this:
{
"time": "2026-10-08T12:00:00.000+00:00",
"deviceInfo": { "devEui": "0101010101010a01" },
"object": { "temperature": 4.5 }
}
Lift never decodes the raw data itself. Each uplink gives one reading, and its time is the time of the uplink event. Lift reads uplink events only: join, status and the other events are ignored.
1. Add the connection in Lift#
- In the customer portal, open Devices & sensors > Sensors > Connections. Only the account owner or an Admin can add a connection.
- Choose Add a connection, pick ChirpStack and give it a name.
- In Temperature field, enter the name your codec gives the temperature in its decoded object, for example
temperature. For a nested field use dots, for examplesensors.temp. - In Unit of that field, choose Celsius (°C) or Fahrenheit (°F).
- Lift shows the connection's web address, the header name and its secret. Copy the secret now: Lift shows it only once.
Lift stores no readings from the connection until the temperature field is set. You can change the field and unit later.
2. Add the HTTP integration in ChirpStack#
In ChirpStack, open Applications, choose your application, open its Integrations tab and add the HTTP integration (labels may differ slightly between ChirpStack versions):
- Payload encoding: JSON. Protobuf is not supported: Lift refuses a Protobuf message.
- Event endpoint URL(s): the web address Lift showed you, exactly as shown. ChirpStack adds the kind of event to the address by itself (for example
?event=up), so do not add anything to it. - Headers: add one header with the name
X-Lift-Sensor-Tokenand the secret as its value.
3. Accept each device#
Lift does not store readings from a device until it is accepted. Once a device has sent an uplink that Lift can read (one whose decoded object holds the temperature field you entered), open the connection's Devices in the portal: it waits there under its DevEUI, in capital letters. If it does not appear, check the field name first (see step 4). Choose Accept readings, and give the logger a name if you like. Readings sent before you accept it are not added. Then place the logger at its OpenBoxes location on Locations and give it an alert rule.
4. Check the first reading#
After you accept a device, wait for its next uplink and open Loggers: the new reading should be there. If nothing arrives, or a device never appears under Devices:
- Check that the device's uplinks show a decoded object in ChirpStack, and that the field name in Lift matches the codec's exactly (names are case-sensitive).
- Check the unit: a reading in the wrong unit is either stored with the wrong temperature or, if the result is impossible, not stored at all.
- Check that the header name is exactly
X-Lift-Sensor-Tokenand that its value is the whole secret Lift showed you.
Good to know#
- Readings more than 35 days old are not stored.
- ChirpStack's HTTP integration is not documented to send a message again after Lift could not take it, so a reading sent while Lift is unreachable may be lost; the device's next uplink is stored normally. If the same message does arrive twice, Lift stores it once.
- An account can have up to 10 connections, each with up to 200 accepted devices.
- Make a new secret keeps the old secret working for 24 hours while you update the header in ChirpStack. If a secret may have leaked, use Turn off instead: it stops the connection at once. Then add a new one. A connection can't be deleted: once turned off, it stays in the list, below the active ones.
- Temperature alerts are a second channel, not a replacement for your devices' own alarms.
Related#
- Cold chain overview: the beta on one page, with every way to bring readings in and how temperature alerts work.
- Temperature Loggers: uploads, alert rules, excursions and temperature alerts.