Thingsboard规则链:Calculate Delta节点详解

news2024/11/18 9:57:33

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

一、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节点的使用,将能更深入地挖掘数据价值,优化业务流程,提升运营效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1716059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HAL库+LWIP+LAN8720+热插拔

定时任务中,查询LAN8720的状态寄存器 PHY_BSR 0x01,成功读取后,检查16位数据的BIT2,即可获取网线连接状态 uint32_t phyreg 0;if(HAL_ETH_ReadPHYRegister(&g_eth_handler, PHY_BSR, &phyreg) HAL_OK){if(((phyreg >…

电脑显示不出网络

你的电脑是否在开机后显示不出网络,或者有网络消失的现象?今天和大家分享我学到的一个办法,希望对大家有用。 分析出现这类现象的原因:可能是电脑网卡松动了,电脑中存在静电流。 解决办法:先将电脑关机&am…

20 VUE学习:插件

介绍 插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。下面是如何安装一个插件的示例: import { createApp } from vueconst app createApp({})app.use(myPlugin, {/* 可选的选项 */ })一个插件可以是一个拥有 install() 方法的对象,也可以直接…

全文最详细的生产管理完整方案!那些让人头疼的生产管理难题及解决方法!

什么是生产管理系统?为何生产管理系统在企业管理中如此重要?生产管理系统的核心模块包括哪些?为何企业在生产管理系统中常常遭遇项目信息碎片化、任务分配和跟踪困难等痛点?又该如何针对生产管理痛点进行优化? 本文40…

【数据结构与算法 | 基础篇 | 队列篇】力扣102, 107

1. 力扣102 : 二叉树的层序遍历 (1). 题 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3]…

Nginx教程(持续更新中~)

浏览器优先查看host文件中的映射,如果host中没有就会从网上CDN找该域名对应的ip,但是目前使用的www.123.com是外卖假设的,CDN中并没有,所以就采用host中填写 第二种weight: 第三种 ip_hash: 第四种 fair: ​​​​​​

AWS 高防和阿里云高防深度对比

随着网络攻击的不断增加,企业对于网络安全的需求也越来越高。在这种情况下,高防护服务成为了企业网络安全的重要组成部分。AWS和阿里云作为全球领先的云计算服务提供商,都提供了高防护服务,但它们之间存在着一些差异。我们九河云一…

Idea java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space 解决

咱们平时的开发过程中一定会进行本地调试,今天我也是安装了新的idea之后拉了一个比较大的项目进行本地调试的时候报错。报错信息如下: java: java.lang.OutOfMemoryError: Java heap space java.lang.RuntimeException: java.lang.OutOfMemoryError: Ja…

【火猫CS2】fantic取代C9参加YaLLa指南针

1、近日YaLLa Compass主办方宣布,由于Could9战队未能在截止日期前提交完整的参赛阵容,fantic战队将取代其参赛。该比赛将在阿联酋阿布扎比举行,总奖金40万美元。 最近一段时间Cloud9战队最近将electroNic转会至VP,又下放了HObbit和Perfecto,队伍因没有完整阵容已被迫退出EPL S1…

了解VS安全编译选项GS

缓冲区溢出攻击的基本原理就是溢出时覆盖了函数返回地址,之后就会去执行攻击者自己的函数; 针对缓冲区溢出时覆盖函数返回地址这一特征,微软在编译程序时使用了安全编译选项-GS; 目前版本的Visual Studio中默认启用了这个编译选项…

开源代码分享(31)-计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度

参考文献: [1]孙惠娟,刘昀,彭春华,等.计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度[J].电网技术,2021,45(09):3534-3545.DOI:10.13335/j.1000-3673.pst.2020.1720. 1.摘要 为了促进多能源互补及能源低碳化,提出了计及电转气协同的含碳捕集与垃…

CSS浮动详细教学(CSS从入门到精通学习第四天)

css第04天 一、其他样式 1、圆角边框 在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了。 border-radius 属性用于设置元素的外边框圆角。 语法: border-radius:length; 参数值可以为数值或百分比的形式如果是正方形&…

Javaweb基础之Filter

大家好,这里是教授.F 引入: 为什么需要过滤器???我们在访问一个项目的时候,常常有很多页面,如果没有过滤器,则我们需要在用户访问一个页面的时候,都要进行一个校验&…

英飞凌 AURIX TriCore 单片机开发入门

文章目录 目的硬件准备AURIX™ Development StudioInfineon MemtoolAURIX™ iLLD Drivers总结 目的 英飞凌的32位 AURIX™ TriCore™ 系列单片机 经常用于汽车和工业领域。开发该系列单片机比较常用的开发环境有 HighTec 和 AURIX™ Development Studio 。本文将基于后者&…

SqlSession是什么?在MyBatis-Spring中有什么应用?

目录 一、SqlSession是什么 二、SqlSession在MyBatis中的应用 三、SqlSession在Spring中的应用 一、SqlSession是什么 SqlSession 是 MyBatis 框架中的一个核心概念,它代表与数据库的一次会话。MyBatis 是一个流行的 Java 持久层框架,用于简化数据库…

生成随机数值与二维数组的探索之旅

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、随机数生成的策略 三、实现过程与代码案例 四、注意事项与扩展讨论 一、引言…

鸿蒙时间滑动选择器弹窗

例子: Button(打开弹窗).fontSize(14).width(106).height(32).padding({ left: 0, right: 0 }).fontColor(#999).onClick(()>{DatePickerDialog.show({selected:new Date(),onDateAccept:(value)>{AlertDialog.show({ message:JSON.stringify(value) })}})}) …

若依框架官网

RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0…

远程工作利器:高效指南教你如何在Linux服务器上部署Jupyter Notebook并实现安全远程访问

远程工作利器:高效指南教你如何在Linux服务器上部署Jupyter Notebook并实现安全远程访问 1.安装 Anaconda和python 你可以在终端中运行以下命令来检查是否已安装: python --version python3 --version安装 pip pip 是 Python 的包管理工具&#xff0c…