Article

Vaccine fridge temperatures from LoRaWAN sensors in OpenBoxes Lift

If your vaccine fridges have LoRaWAN temperature sensors whose readings arrive at The Things Stack or a ChirpStack network server, this article explains how to send those readings on to OpenBoxes Lift, so each fridge shows beside the OpenBoxes location it is in, and what Lift does with the readings once they arrive. The full reference is in Temperature Loggers.

Sensor connections are in beta, on every plan (Shared, Dedicated and Enterprise), and included at no extra charge during the beta.

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.

What Lift does with the readings#

Once a sensor's readings reach Lift, you see them in the portal under Devices & sensors, on the Sensors tab: a chart of each sensor's readings, its Excursions (too warm, too cold, out of range, or no readings, each with its start, end, peak and duration), and a Monthly summary that includes the WHO functional status for sensors on the WHO refrigerator rule. Readings and monthly summaries download as CSV files.

Lift stores temperatures only (no humidity), and it does not put stock on hold after an excursion. It can apply the WHO PQS rules to your readings, but Lift itself is not a WHO-prequalified product.

Which LoRaWAN setups work#

Two of the four connection kinds are for LoRaWAN devices:

  • The Things Stack, through a custom webhook from your application.
  • ChirpStack (v4), through its HTTP integration, with JSON as the payload encoding (Protobuf is not supported). It is in beta.

No other LoRaWAN network server is supported today. Lift does not list particular sensor models: what matters is that your decoder writes the temperature (Step 1). Monnit sensors have their own connection, and if your readings come from somewhere else, the Lift JSON connection takes signed readings from your own script or system.

Step 1: make sure your decoder writes a temperature#

On these two connections Lift never decodes the raw LoRaWAN payload itself. It reads the temperature from the decoded message:

  • On The Things Stack, your application needs a payload formatter that writes the temperature as a number in the decoded payload.
  • On ChirpStack, your device profile needs a codec that writes the temperature as a number in the decoded object.

Note the field's name (for example temperature, or sensors.temp when nested) and its unit, °C or °F. Each device is known by its DevEUI.

Step 2: add the connection in Lift#

The account owner or an Admin opens Devices & sensors > Sensors > Connections, chooses Add a connection and picks The Things Stack or ChirpStack. Enter the temperature field's name and its unit. For The Things Stack, under How the platform signs in, choose A secret token in a header. Lift then shows the connection's web address, a header name and a secret.

Copy the secret straight away: Lift shows it only once. Later, Make a new secret keeps the old one working for 24 hours while you update the network server, and Turn off stops the connection at once if a secret may have leaked.

Step 3: point your network server at Lift#

  • The Things Stack: add a custom webhook in JSON format, with the web address Lift showed you as the base URL, the header X-Lift-Sensor-Token set to the secret, and Uplink message as the only enabled event type. Turn on retries. Simulated uplinks sent from the Console are ignored, so test with a real device.
  • ChirpStack: add the HTTP integration to your application, with JSON encoding, the web address exactly as Lift showed it, and the same header. Lift reads uplink events only, and a reading sent while Lift is unreachable may be lost, because ChirpStack's HTTP integration is not documented to send it again.

The setup guides go field by field: The Things Stack and ChirpStack.

Step 4: accept each device, place it, choose a rule#

Lift does not store readings from a device until someone accepts it. After a device sends an uplink that Lift can read, it waits under the connection's Devices. Choose Accept readings and give it a name if you like. Readings sent before you accept it are not added. If a device never appears, check that the field name matches your decoder's exactly, including capital letters.

Then, on Locations, place the sensor at the OpenBoxes location its fridge is in. If it moves, record the move and Lift keeps its history at each location.

Last, the owner or an Admin chooses an alert rule in Settings, for the whole account or for one sensor: the WHO PQS refrigerator, freezer or mobile rule, any reading out of range (the CDC style), or a custom rule with your own limits. Without a rule, Lift does not check the temperatures and every page says so, although a sensor that stops sending still raises an alert.

Temperature alerts (beta)#

Alerts are switched on in the portal under Integrations, in the Temperature alerts section of the stock alert destinations panel: turn them on for each Slack, Microsoft Teams or PagerDuty destination, and tick the people who get emails. Nothing is sent until someone chooses there.

  • Excursions: readings from a connection are checked as they arrive, and Lift alerts once the rule you chose is met. For the WHO refrigerator rule, that means 10 hours at or above +8 °C.
  • A sensor that goes quiet: if a sensor sends nothing for an hour, or for three of its usual intervals if that is longer, Lift alerts the Slack, Teams or PagerDuty destinations switched on (not by email), with or without an alert rule, and tells them when readings resume. Lift holds this alert back while Lift itself had trouble receiving readings.
  • A gateway that was offline: late readings raise an alert only if the newest one is under an hour old. An excursion that started and ended inside late readings shows in Lift without an alert.

Alerts are a second channel, not a replacement for your device's own alarm. Keep relying on your sensor's alarm.

Limits worth knowing#

  • Up to 10 connections per account, each with up to 200 accepted devices.
  • Readings more than 35 days old are not taken.
  • Temperature data lives in Lift's platform database, not in your instance's backups. Readings are kept for three years and deleted when the account is closed.

Every other way to bring readings in, including uploading logger files, is on the cold chain overview.

Summary#

  • The Things Stack (webhook) and ChirpStack v4 (HTTP integration, JSON) can send LoRaWAN temperature readings to Lift, in beta, on every plan at no extra charge during the beta.
  • Your decoder must write the temperature as a number; you tell Lift the field name and unit.
  • Accept each device (Lift stores nothing from it until you do), place it at its OpenBoxes location, and choose an alert rule: without one its temperatures are not checked.
  • Alerts are a second channel. Your logger's own record and alarm stay your record and your alarm.

Keep reading