首页 > 其他分享 >Thingsboard规则链:Calculate Delta节点详解

Thingsboard规则链:Calculate Delta节点详解

时间:2024-09-23 13:20:46浏览次数:8  
标签:Calculate Delta Value 计算 增量 Thingsboard 节点

在物联网(IoT)应用中,对设备数据的实时分析和处理是优化运营、预测维护的关键。Thingsboard作为一款功能强大的物联网平台,其规则引擎提供了丰富的节点来处理和分析数据流。其中,Calculate Delta节点是一个重要的工具,用于计算连续消息间特定数值的差值,常用于监测变化率、节能分析、预测性维护等场景。本文将全面介绍Calculate Delta节点的具体作用、使用方法、源码逻辑概览,以及丰富的应用场景与案例分析,帮助读者深入了解并高效利用这一功能。

ThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台_哔哩哔哩_bilibiliThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台共计10条视频,包括:1、ThingsBoard项目介绍、2、ThingsBoard前端Vue版本代码编译、3、ThingsBoard本地后端源码编译等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0&vd_source=5b535ac3589f53abe431d7f6afc44ff4

一、Calculate Delta节点概述

Calculate Delta节点是Thingsboard规则链中的一个处理节点,它的主要功能是从消息流中提取指定数值,并计算该数值与前一个消息中相同数值的差值(即增量)。该节点适用于需要监控数据变化趋势、计算速率或消耗量的应用场景,例如监测电表读数变化、流量消耗、设备状态变动频率等。

二、具体作用
  1. 变化趋势分析:通过计算数据的增量,可以直观地观察到数值随时间的变化趋势,如电量消耗速率、水位升降等。
  2. 异常检测:当增量超出预期范围时,可视为异常信号,触发报警或自动响应机制。
  3. 效率评估:在能耗管理、生产效率分析中,计算增量有助于评估设备或系统的效率改进。
  4. 数据压缩:存储增量而非原始数据,可节省存储空间,尤其在处理大量时间序列数据时更为有效。

三、使用教程
  1. 添加节点:在Thingsboard规则链编辑界面,从左侧节点库拖拽Calculate Delta节点至规则链设计面板。
  2. 配置参数
    • Input Value Key:指定消息中用于计算增量的数值键名,例如,若消息中电量读数的键名为energyUsage,则在此处填写。
    • Output Value Key:设置存放计算结果的键名,默认为delta,表示计算出的增量值。
    • Decimals:设置增量值的小数点保留位数。
    • Cache Latest Value:启用后,最新值会被缓存在内存中,用于与下一次消息中的值比较。
    • Fail on Negative Delta:若增量为负值时是否标记为失败,可用来检测数据反常。
    • Add Interval Between Messages:是否在当前消息与前一消息间增加周期,适用于周期性数据采集场景。
  3. 连接上下游节点:配置好Calculate Delta节点后,将其与上游的数据源节点(如Message Type Switch、Filter节点)和下游处理节点(如保存数据、发送通知)相连,形成完整的数据处理流程。
四、源码逻辑概览

虽然深入分析源码细节超出了本文范畴,但可以概述其核心逻辑:

  • 数据提取:从输入消息中根据Input Value Key获取数值。
  • 增量计算:与上次缓存的值(如果启用Cache Latest Value)进行比较,计算差值。
  • 结果处理:根据配置的Decimals四舍五入,生成增量结果,并设置Output Value Key。
  • 逻辑判断:检查增量是否为负值,根据配置决定是否标记为失败流程。
  • 消息转发:将含有增量值的新消息传递给规则链的下一个节点。
五、应用场景与案例
智能电表远程监控

场景:电力公司需要实时监控各用户电表的用电量变化,以便快速响应异常消耗或预测需求。

实施

  • 配置Calculate Delta节点:以电表读数(electricityReading)为Input Value Key,计算每两小时的用电量差值。
  • 异常检测:设置Fail on Negative Delta为开启,一旦检测到负增量即视为异常,触发报警。
  • 数据分析:将计算出的增量数据存储并进行趋势分析,辅助优化供电计划。
水资源管理系统

场景:水库需实时监测水位变化,及时调整排水或补充水量,确保安全运行。

实施

  • 增量计算:使用Calculate Delta节点,基于水位(waterLevel)监测每小时的水位变化。
  • 自动调节:根据水位变化速率自动调整泵站的抽水或注水操作,维持水位稳定。
  • 预测维护:长期分析水位变化趋势,预测可能的设备维护需求,如泵站的周期性维护。
六、总结

Calculate Delta节点在物联网数据处理中扮演着不可或缺的角色,通过提供简单而强大的增量计算能力,帮助企业高效分析设备状态、资源消耗等关键指标。随着物联网技术的持续发展,其应用场景将不断扩展,为智能城市建设、工业4.0转型等提供有力支持。开发者和运维人员掌握Calculate Delta节点的使用,将能更深入地挖掘数据价值,优化业务流程,提升运营效率。

标签:Calculate,Delta,Value,计算,增量,Thingsboard,节点
From: https://blog.csdn.net/2401_85648342/article/details/142449595

相关文章

  • WPF dynamically generate grid with calculated rows and columns, put the custom c
    privatevoidFillGridRandomly(){rowsColsSet=newHashSet<XY>();if(gd!=null){gd.Children.Clear();}for(inti=0;i<50;i++){while(true){XYxy=newXY();......
  • ThingsBoard 开源物联网平台
     ThingsBoard是一个开源物联网平台,可实现物联网项目的快速开发、管理和扩展参考地址:https://iothub.org.cn/docs/iot/目标:是提供成熟的IoT云或本地解决方案以此做为你的IoT应用程序服务端基础架构。ThingsBoard设计为:扩展性:可水平扩展的平台使用领先的开源技术构建......
  • WPF thumb Drag DragDelta,DragStarted,DragCompleted
    //xaml<Windowx:Class="WpfApp302.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • 【数字时序】SI(信号完整性分析)/Cross talk(串扰)/Delta delay/噪声/消除delay和噪声
    之前分享的那一篇感觉理论太多了这一篇感觉更好,数字后端的带概念带数据还带经验指导,转过来收藏一哈。目录一、Crosstalk1.CrosstalkDelayEffects​编辑2.CrosstalkNoiseEffects​编辑二、CrosstalkAnalysis​编辑1.CrosstalkDelayAnalysis2.CrosstalkNois......
  • Docker Desktop 出现 Unable to calculate image disk size 错误提示的解决方法
    Win11安装了DockerDestop,版本为4.25.2。DockerDesktop能随系统启动而启动,其内部管理的容器也可以正常启动,但是不和谐的地方也出现了:在从通知区域双击DockerDesktop的图标后,它就会出现如下错误信息,虽不影响使用,但是相当碍眼:  解决方案:【1】进入设置,关闭“UsetheWSL2......
  • python datetime timedelta 对于没有小数部分的时间返回 0.0
    我正在使用datetime.timedelta来获取python中进程的持续时间。defget_time_difference(start_time,end_time):time_in_seconds=(end_time-start_time)returnstr(datetime.timedelta(seconds=time_in_seconds))[:-3]文档指出“所有参数都是可选的......
  • 使用 reqMktData 请求数据时出现错误的希腊语(delta、vega...)结果
    我正在使用本机库ibapi(InteractiveBrokers)。我有以下代码:fromibapi.clientimportEClientfromibapi.wrapperimportEWrapperfromibapi.contractimportContractimportthreadingimporttimeclassTradingApp(EWrapper,EClient):......
  • 如何将pandas数据框中的timedelta转换为整数
    我正在尝试将timedelta转换为整数。但我收到错误。我不知道如何解决这个问题。有谁知道吗。time=(pd.to_datetime(each_date2)-pd.to_datetime(each_date1))pd.to_numeric(time,downcast='integer')时间具有以下值:Timedelta('7days00:00:00')我在第二行收到......
  • Thingsboard成功编译安装
    文章目录前言一、安装注意事项二、安装java三、安装maven四、安装docker五、下载thingsboard源码六、启动mvn编译前言Thingsboard云平台的安装有多种方法。最简便的方法是拉取docker镜像安装。而为了方便后期的二次开发,能基于源码方式安装是非常重要的一步。一、......
  • 在windows下部署thingsBoard本地安装详细教程
    ThingsBoard是一个开源的物联网平台,用于数据收集、处理、可视化展示以及设备管理。ThingsBoard使用行业标准物联网协议(MQTT,CoAP和HTTP)实现设备连接,并支持云和本地部署。ThingsBoard结合了可扩展性,容错性和性能,因此您永远不会丢失数据。ThingsBoard提供设备和资产的管理:通过......