Skip to content
Stand with Ukraine flag

Hourly Temperature KPIs (Min, Max, Average)

  • Calculated Field
  • 65 installs
  • v1.0.0
  • Jun 15, 2026
  • MIT license
  • v4.3+

Compute hourly min, max, and average for one telemetry stream in a single CF — for temperature, pressure, vibration, humidity, and other process variables.

Type
  • Entity Aggregation
Category
  • Aggregation
  • Statistical
  • Environmental

Who it’s for

Process and facility operators asking “what was the hourly low?”, “did we hit a peak this hour?”, “what’s our running average over the day?” — when the dashboard shows hourly minimum, average, and maximum bars side by side, or the daily report needs three numbers per hour from a single stream.

What it does

Reads the temperature telemetry and computes three statistics — hourlyMinTemp, hourlyAvgTemp, and hourlyMaxTemp — from the same one-hour sample set in a single pass.

Hourly window diagram

How to customize

  • To aggregate a different telemetry key — change the Time series key on the source argument (e.g. temperatureco2Level, pressure, humidity).
  • To rename the outputs for a different domain — change each Metric name (e.g. hourlyAvgTemphourlyAvgCo2, hourlyMaxTemphourlyMaxCo2, hourlyMinTemphourlyMinCo2) so downstream dashboards and alarms bind to meaningful keys.
  • To add or remove statistics — click Add metric to add a new one (SUM, COUNT, …), or delete a function you don’t need. Each metric defines one output key and its function.
  • To change the aggregation window — change Aggregate interval type from Hour to Day, Week (Mon - Sun), Month, or Custom. Align Time zone with the operator’s local time so window boundaries land where they expect.
  • To shift the interval start by a fixed amount — enable Apply offset to aggregation interval and set Offset value in minutes. For example, an offset of 10 makes hourly windows fire at HH:10 instead of HH:00.
  • To recalculate intervals when telemetry arrives late — enable Apply await timeout for delayed telemetry and set the Duration. When a reading arrives after the interval ends, the aggregate for that interval is recomputed. Useful for LoRaWAN, NB-IoT, or batched uploads where data can lag minutes to hours behind the wall clock.
  • To turn off in-progress “current interval so far” updates — disable Produce intermediate result. The CF then emits only one value per interval, at the boundary.
  • To turn off the database write, WebSocket push, or downstream CF re-evaluation — under Process right away, toggle Save to time series, Save to latest values, Send to WebSockets, or Send to Calculated fields.
  • To filter, transform, or forward the result to external systems — switch Strategy to Process via Rule Chains. Rule nodes then receive the output and can drop it, change it, save it conditionally, push it to an external system, or anything else the chain defines.

Share Your Calculated Field with the Community

Built a useful data transformation? Export it as a JSON from ThingsBoard and publish it to the IoT Hub. Share it with thousands of ThingsBoard developers worldwide.