Skip to content

Cookie preferences

We use cookies for our own analytics, to see how our campaigns perform and, if you allow it, to load content from other services such as the Google site search. We never sell your data. Necessary cookies keep the site working and cannot be switched off. See our Cookie Policy for details and our Privacy Policy for how we handle personal data.

Security, load balancing and remembering your cookie choice.

Show us which pages people read and how they find the site, so we can improve it (Google Analytics).

Show us which of our ad campaigns bring visitors to the site and remember the campaign or partner link you arrived from (Google Ads, partner program). We do not use these cookies to build advertising profiles.

Load the site search from Google when you use it. Google sets its own cookies and shows ads in the search results.

© 2026 The ThingsBoard Authors
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Cold Chain Excursion Cards

  • Widget
  • 13 installs
  • v1.0.0
  • Sep 30, 2026
  • MIT license
  • v4.2+

Tracks a monitored value against a compliance range and reports cumulative time out of range and excursion count, for cold-chain and similar limits.

Widget Type
  • Timeseries
Category
  • Cards & Info
  • Gauges & Indicators
Use Cases
  • Cold Chain
  • Health Care

Who it’s for

An operator responsible for a cold chain — vaccines, food, or another temperature-limited shipment — who needs to answer “did this stay in range, and for how long did it not” without scrolling back through a raw telemetry chart. It reads whatever bounded value a monitored asset reports, so it fits a reefer, a cold room, or any other device with a compliance range, not only temperature.

What it does

An entity holding 5.2°C inside a 2-8°C range shows a green “OK” badge and a green value. An entity that spent 40 minutes above 8°C in the selected time window shows a red “EXCURSION” badge, the value in red, and “Out of range: 40m” with “Excursions: 1” underneath.

  • Reads the whole series in the dashboard’s selected time window, not just the latest reading, so the excursion time and count are computed fresh every time — nothing is remembered between reloads, and nothing resets when the dashboard reopens
  • Colors the current reading green or red against a minimum and maximum, so an out-of-range entity is visible at a glance
  • Reports cumulative time out of range and the number of separate excursions within the current time window, with a minimum-duration filter so a brief blip — a door opening, a sensor hiccup — does not count as a real excursion
  • Shows one card per bound entity, each labeled with its entity name once more than one is bound
  • Takes the acceptable range from one of two sources, chosen with Range source: the same fixed minimum and maximum for every entity in the card, or a pair of keys each entity supplies for itself — useful when one card covers shipments with different compliance limits
  • Shows a distinct message, per entity, when the expected key is not bound yet or the device has not reported
  • Does not send commands, does not store or persist excursion history itself, and does not decide compliance on your behalf — the excursion time and count are only as complete as the time window you have selected, and a per-entity limit read from a key is its latest value, not a limit that can change partway through the window

How to set up

Data keys

Bind one entity per card. On each entity, bind a timeseries key named to match Value key name. Which other keys, if any, that entity needs depends on Range source:

Range sourceKeys needed on each entity
Fixed valuesOnly the value key — the range comes from Minimum/Maximum acceptable value
From data keys (per entity)The value key, plus a key named to match Minimum value key name and one named to match Maximum value key name
KeyRoleTypeWhere to bind itDescription
Value keyThe monitored readingTimeseriesThe regular data key list on the Data tabRead across the whole selected time window, not just the latest point. This key’s own Units and Decimals fields (Data tab, per key) control what the card prints
Minimum value keyThis entity’s own lower limitAttribute / TimeseriesThe Latest data keys field on the Data tabOnly used in “From data keys” mode. Only its latest value is used
Maximum value keyThis entity’s own upper limitAttribute / TimeseriesThe Latest data keys field on the Data tabOnly used in “From data keys” mode. Only its latest value is used

Thresholds are usually static — a device profile default or a value set once per asset — so Minimum and Maximum value key bind as attributes through the separate Latest data keys field, not the main data key list. That field also accepts timeseries keys; either way only the latest value is read.

Data

SettingDefaultEffect
Value key nametemperatureThe data key name read as the monitored value for each entity

Range

SettingDefaultEffect
Range sourceFixed valuesSwitches every entity in the card between a shared fixed range and a range each entity supplies through its own keys
Minimum acceptable value2The lower bound of the compliant range, in Fixed values mode
Maximum acceptable value8The upper bound of the compliant range, in Fixed values mode
Minimum value key nameminLimitThe key name read as an entity’s lower limit, in From data keys mode
Maximum value key namemaxLimitThe key name read as an entity’s upper limit, in From data keys mode
Ignore excursions shorter than (minutes)5Excursions shorter than this are not counted, to filter out brief blips

Set the widget’s time window (the standard control above the card, same as any timeseries widget) to the compliance period you want to review — for example the last 24 hours or the last 7 days. The excursion time and count always describe that window, not an all-time total.

How to customize

  • To change the color of an in-range entity — edit In-range color
  • To change the color of an entity in excursion — edit Excursion color
  • To change the unit printed after the value — set Units on the Value key itself, on the Data tab
  • To show more or fewer decimal places — set Decimals on the Value key itself, on the Data tab
  • To change the size or font of the value — edit Value font

Tips

  • A door opening usually looks like a short excursion. Raise Ignore excursions shorter than past your normal door-open time so routine access does not inflate the excursion count.
  • Mixing shipments with different limits in one card. Switch Range source to “From data keys” and bind each entity’s own minimum and maximum as attributes — a device profile default, or a value set once per asset, both work.

Share Your Widget with the Community

Built a custom widget? Export it as a JSON from ThingsBoard and publish it to the IoT Hub through a simple 4-step wizard (Upload, Listing, Readme, Review & Submit). Share it with thousands of ThingsBoard developers worldwide and get featured in the catalog.