产品定价 立即试用
云平台
欧洲地区
遥测增量计算
入门 文档 指南 API 常见问题
目录

遥测增量计算

本指南介绍如何在ThingsBoard中计算遥测值之间的差值(delta),并将该计算结果用于自动触发和清除告警。

本指南为入门级,重点演示平台核心能力,而非从零构建配置。
因此,在设置过程中将提供并导入预设的calculated fields和alarm rules配置。

将上述配置导入ThingsBoard实例后,可查看其结构、逻辑和行为,并据此适配自己的使用场景。


使用场景

假设设备配备温度传感器,定期向ThingsBoard发送遥测数据。

需要:

  • 在固定时间窗口(例如15分钟)内监控温度变化。
  • 当温度变化超过设定阈值(5°C)时触发告警。
  • 当值恢复正常时自动清除告警。

该流程代表常见的实时监控与异常检测场景,并可扩展以支持更高级用例。


前置条件

在继续前,建议先阅读以下ThingsBoard文档:

  • Calculated fields:了解如何基于传入的数据计算新的遥测值。
  • 告警规则:了解如何定义告警触发条件,以快速响应异常状态。

以上概念对理解下述配置至关重要。


步骤1. 添加演示设备

先添加一台上报温度遥测的演示设备。

该设备作为calculated field和alarm rules使用的遥测数据来源。

操作

  1. 进入 Entities Devices
  2. 点击右上角 「+ Add device」 按钮,选择 「Add new device」 并创建:
     • Device name: Thermometer
     • Device profile: thermostat

设备将在ThingsBoard中注册,并可以上报遥测数据。


步骤2. 导入用于遥测delta的calculated field

所提供的配置在最近15分钟内计算温度delta,并将结果存储为新的遥测键:deltaTemperature

操作

  1. 下载calculated field配置文件:
    telemetry_delta_calculation_cf.json
  2. 进入 Calculated fields 页面。
  3. 点击右上角 「+ Add calculated field」 按钮,选择 「Import calculated field」
  4. 上传 calculated field 配置文件
  5. 选择 thermostat device profile 作为目标实体,以便calculated field自动应用到所有相关设备。
  6. 点击 Add 完成导入。

计算逻辑

Calculated field脚本:

  • 收集最近5分钟内的温度值
  • 使用时间窗口内的首个和末个值
  • 计算两者差值
  • 将绝对值存储为遥测

本示例使用的脚本

function calculate(ctx, altitude, temperature) {

1
2
3
4
5
6
7
8
9
var delta = 0;

if (temperature.values.size() >= 2) {
  delta = temperature.last - temperature.first;
}

return {
  "deltaTemperature": Math.abs(toInt(delta))
}

}

要点

  • 若可用值少于两个,delta设为 0
  • 脚本可应对稀疏遥测
  • 结果作为 time series telemetry 存储并自动更新

步骤3. 配置基于遥测delta的告警规则

配置对 deltaTemperature 键值变化做出响应的 alarm rule

告警逻辑
 • 当 deltaTemperature ≥ 5 时触发告警
 • 当 deltaTemperature < 5 时清除告警

操作

  1. 下载alarm rule配置文件:
    temperature_deviation_alarm_rule.json
  2. 进入 Alarms Alarm rules
  3. 上传 alarm rule 配置文件
  4. thermostat device profile 配置alarm rule,以确保其一致应用于使用该profile的所有设备。
  5. 点击 Add

导入后,告警生命周期由ThingsBoard自动管理。


步骤4. 验证配置

为确认一切正常,请在15分钟内发布两个温度值。

验证步骤

  1. 发布初始温度值(例如25)。
    最简单的方式是使用 check connectivity 功能。也可执行以下命令:

    请勿忘记替换
     •  为您的ThingsBoard 主机名或IP地址。
     • $ACCESS_TOKEN 为设备的access token。

    1
    
    curl -v -X POST https://eu.thingsboard.cloud/api/v1/$ACCESS_TOKEN/telemetry --header Content-Type:application/json --data "{temperature:25}"
    
  2. 打开设备的 Latest telemetry 标签页,实时监控传入的数据。
    此时应能看到以下遥测键:
    • temperature = 25
    • deltaTemperature = 0
  3. 在15分钟内发布第二个温度值(例如32)。

    1
    
    curl -v -X POST https://eu.thingsboard.cloud/api/v1/$ACCESS_TOKEN/telemetry --header Content-Type:application/json --data "{temperature:32}"
    
  4. 第二次更新后:
     • deltaTemperature = 7。因超过阈值而触发告警
  5. 打开 Alarms 标签页验证告警状态。

一旦 deltaTemperature 键值小于 5,告警将自动清除。


后续步骤