Aggregate latest telemetry values periodically

ThingsBoard PE Feature

Only ThingsBoard Professional Edition supports Analytics Rule Nodes feature.

See ThingsBoard PE Installation Options to install ThingsBoard PE.

This tutorial will show how to calculate average temperature in the warehouse based on readings from multiple temperature sensors inside the warehouse.

Use case

Let’s assume you have a warehouse with multiple temperature sensors. For example, one per each zone. Let’s also assume temperature readings are reported by the sensor only when it detects temperature change. Thus, some sensors may have been inactive for a week although some sensors may report temperature change just recently.

In this tutorial we will configure ThingsBoard Rule Engine to automatically calculate average temperature in the warehouse based on latest readings from multiple temperature sensors every minute. Please note that this is just a simple theoretical use case to demonstrate the capabilities of the platform. You can use this tutorial as a basis for much more complex scenarios.

We will use 1 warehouse, 2 sensors and 1 minute execution period just for demo purposes.


We assume you have completed the following guides and reviewed the articles listed below:

Model definition

We will create one asset that has name “Warehouse A” and type “warehouse”. We will add this asset to an asset group called “Warehouses”.


We will create two devices that has names “Sensor A1” and “Sensor A2” and type “thermometer”. We will add this devices to device group called “Thermometers”.


We must also create relations between the warehouse asset and thermometers. This relation will be used in the rule chain to associate thermometer readings with the warehouse itself. It is also convenient to use relations in the dashboards to provide drill-down capabilities. You may notice two outbound relations from the warehouse asset to the thermometers on the screenshot below:


Note: Please review the following documentation page to learn how to create assets and relations.

Message Flow

In this section, we explain the purpose of each node in this tutorial. There will be two rule chains involved:

  • “Thermometer Emulators” - optional rule chain to simulate data from two temperature sensors;
  • “Warehouse Temperature” - rule chain that actually calculates average temperature in the warehouse;

Thermometer Emulators rule chain


  • Nodes A and B: Generator nodes

    • Two similar nodes that periodically generate a very simple message with random temperature reading.


  • Node C: Rule Chain node

    • Forwards all messages to default rule chain.

Warehouse Temperature rule chain


  • Node D: Aggregate latest. Periodically (period of execution is defined as “Execution period value”) executes the following:

    • Fetches all devices related to the “Warehouse A” asset using “Contains” relation.
    • Fetches latest temperature reading for each of the devices and calculates average temperature reading.
    • Generates “POST_TELEMETRY_REQUEST” message that contains value of the average temperature.



  • Node E: Save telemetry node

    • Simple node that stores incoming message to the database and dispatches updates to the subscribers.

Configuring the Rule Chains

Download and import attached emulators rule chain file as a new “Thermometer Emulators” rule chain and attached warehouse temperature rule chain file as a new “Warehouse Temperature” rule chain. Please note that some nodes have debug enabled. This affects performance. Create Node C as shown on the image above in the thermometer emulators rule chain to forward telemetry to the root rule chain.

Validating the flow

Download and import attached dashboard file as a new “Warehouse Temperature” dashboard.


Note that you can drill down to the chart for particular warehouse by clicking on the corresponding row.


Next steps

  • 入门指南 - 这些指南提供了ThingsBoard主要功能的快速概述。

  • 安装指南 - 了解如何在各种操作系统上安装ThingsBoard。

  • 设备连接 - 了解如何根据您的连接方式或解决方案连接设备。

  • 数据看板 - 这些指南包含有关如何配置复杂的ThingsBoard仪表板的说明。

  • 数据处理 - 了解如何使用ThingsBoard规则引擎。

  • 硬件样品 - 了解如何将各种硬件平台连接到ThingsBoard。

  • 高级功能 - 了解高级ThingsBoard功能。

  • 开发指南 - 了解ThingsBoard中的贡献和开发。