You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Thingsboard中计算并可视化两台流量计的流量差值?

在Thingsboard中实现双设备流量差值的折线图可视化

1. 配置实体别名

  • 打开目标仪表板的编辑模式,点击右上角的实体别名按钮
  • 添加两个别名:
    • 别名Flowmeter_Input,关联你的Flowmeter 1设备
    • 别名Flowmeter_Output,关联Flowmeter 2设备
  • 保存别名设置

2. 给折线图配置数据转换(核心步骤)

  • 在编辑模式下添加折线图部件,进入它的数据配置页:
    • 先添加第一个查询:选择Flowmeter_Output别名,挑选对应的流量数据键(比如设备上传的flowrate字段),设置好时间范围和聚合方式(比如按分钟取平均值,务必保证两个查询的时间、聚合参数完全一致)
    • 再添加第二个查询:选择Flowmeter_Input别名,同样选择对应的流量数据键,复用第一个查询的时间和聚合参数
    • 切换到转换标签页,选择自定义JavaScript转换,粘贴以下代码(可根据实际字段调整):
      return function(data) {
          const outputData = data[0];
          const inputData = data[1];
          const result = [];
          // 用时间戳匹配两组数据,计算差值
          const inputMap = new Map(inputData.map(item => [item.ts, item.value]));
          outputData.forEach(item => {
              const inputVal = inputMap.get(item.ts);
              if (inputVal !== undefined) {
                  result.push({
                      ts: item.ts,
                      value: item.value - inputVal
                  });
              }
          });
          return [{
              name: '流量差值(输出-输入)',
              data: result
          }];
      }
      
    • 保存转换配置

3. 调整可视化样式

  • 转到折线图的外观配置页,将标题改为Flowrate Output - Input,按需调整坐标轴标签、线条颜色等样式
  • 保存部件配置,退出编辑模式即可查看实时计算的差值折线图

备选方案:用规则链预处理数据

如果需要持久化差值数据,或给多个仪表板复用计算结果,可通过规则链提前处理:

  • 新建规则链,添加实体节点订阅两个流量计的流量数据
  • 添加脚本节点,在节点内编写逻辑计算输出减输入的差值
  • 将计算后的差值发送至一个虚拟设备,或直接存入时序数据库
  • 后续在仪表板中直接查询该预处理后的差值数据即可

内容的提问来源于stack exchange,提问作者Fikar Suwardi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:38:16