ThingsBoard规则链节点:Math Function节点详解

引言

1. Math Function 节点简介

2. 节点配置

2.1 基本配置示例

3. 使用场景

3.1 数据预处理

3.2 阈值判断

3.3 复杂计算

3.4 动态阈值

4. 实际项目中的应用

4.1 项目背景

4.2 项目需求

4.3 实现步骤

5. 总结


引言

ThingsBoard 是一个开源的物联网平台,提供了设备管理、数据收集、处理和可视化等功能。规则链是 ThingsBoard 中的一个强大功能,允许用户定义复杂的业务逻辑来处理设备上报的数据。在规则链中,Math Function 节点用于执行数学运算,这对于数据处理和分析非常有用。

ThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台_哔哩哔哩_bilibiliThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台共计33条视频,包括: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

1. Math Function 节点简介

Math Function 节点的主要作用是在规则链执行过程中对数据进行数学运算。通过 Math Function 节点,可以对输入的消息和元数据进行加减乘除、取模、平方根等运算,生成新的数据输出。这在数据预处理、阈值判断和复杂计算中非常有用。

2. 节点配置
  • 函数类型:选择要执行的数学运算类型,常见的有 ADDSUBTRACTMULTIPLYDIVIDEMODSQRT 等。
  • 操作数:指定参与运算的操作数,可以是静态值、动态表达式或消息中的属性。
  • 输出配置:设置输出消息的格式和内容。
2.1 基本配置示例
{
  "function": "ADD",
  "arguments": [
    "${msg.temperature}",
    10
  ],
  "output": {
    "temperature": "${result}"
  }
}
3. 使用场景

Math Function 节点在多种场景下都非常有用,特别是在需要进行数据预处理、阈值判断和复杂计算时。以下是一些具体的应用场景:

3.1 数据预处理

在数据收集和处理过程中,有时需要对原始数据进行预处理,例如单位转换或数据标准化。

{
  "function": "MULTIPLY",
  "arguments": [
    "${msg.temperature}",
    1.8
  ],
  "output": {
    "temperatureFahrenheit": "${result}"
  }
}
3.2 阈值判断

在监控系统中,需要对数据进行阈值判断,例如判断温度是否超过某个临界值。

{
  "function": "SUBTRACT",
  "arguments": [
    "${msg.temperature}",
    30
  ],
  "output": {
    "temperatureDifference": "${result}"
  }
}
3.3 复杂计算

在某些场景下,需要进行复杂的数学运算,例如计算平均值、标准差等。

{
  "function": "SQRT",
  "arguments": [
    "${msg.variance}"
  ],
  "output": {
    "standardDeviation": "${result}"
  }
}
3.4 动态阈值

在某些情况下,阈值可能是动态的,需要根据其他数据进行计算。

{
  "function": "ADD",
  "arguments": [
    "${msg.baseThreshold}",
    "${msg.dynamicAdjustment}"
  ],
  "output": {
    "finalThreshold": "${result}"
  }
}
4. 实际项目中的应用

下面是一个实际项目中的例子,展示如何在智能家居系统中使用 Math Function 节点。

4.1 项目背景

假设我们正在开发一个智能家居系统,该系统需要实时监测室内温度和湿度,并根据这些数据进行空调和加湿器的控制。此外,还需要对数据进行预处理和阈值判断,以便更好地管理和优化家居环境。

4.2 项目需求
  • 监测室内温度和湿度。
  • 对温度进行单位转换(从摄氏度转换为华氏度)。
  • 判断温度是否超过设定的阈值。
  • 控制空调和加湿器的开关状态。
4.3 实现步骤
  1. 部署传感器

    • 在室内安装温度和湿度传感器。
  2. 创建规则链

    • 添加 Math Function 节点,用于进行温度单位转换和阈值判断。
    • 添加其他处理节点,如设备控制和数据存储。
  3. 配置规则链

    • 配置 Math Function 节点,将温度从摄氏度转换为华氏度。
{
  "function": "MULTIPLY",
  "arguments": [
    "${msg.temperature}",
    1.8
  ],
  "output": {
    "temperatureFahrenheit": "${result}"
  }
}
  • 配置 Math Function 节点,判断温度是否超过设定的阈值。
{
  "function": "SUBTRACT",
  "arguments": [
    "${msg.temperatureFahrenheit}",
    75
  ],
  "output": {
    "temperatureDifference": "${result}"
  }
}
  1. 处理数据
    • 根据温度差异控制空调的开关状态。
    • 如果温度差异大于0,开启空调;否则,关闭空调。
{
  "type": "DEVICE_CONTROL",
  "condition": "${msg.temperatureDifference > 0}",
  "action": "TURN_ON_AIR_CONDITIONER",
  "message": "Temperature exceeds threshold, turning on air conditioner.",
  "metadata": {
    "deviceName": "${device.name}",
    "temperatureDifference": "${msg.temperatureDifference}",
    "timestamp": "${ts}"
  }
}
  1. 前端界面

    • 开发一个前端界面,显示实时的温度和湿度数据。
    • 提供一个界面,让用户能够查看和管理空调和加湿器的开关状态。
  2. 数据查询

    • 使用 ThingsBoard 的 REST API 或 GraphQL 查询,获取历史数据和控制记录。
GET /api/plugins/telemetry/DEVICE/{deviceId}/values/timeseries?keys=temperature,humidity&startTs={startTimestamp}&endTs={endTimestamp}
5. 总结

Math Function 节点在 ThingsBoard 规则链中是一个非常有用的工具,可以帮助数据进行数学运算,进行数据预处理、阈值判断和复杂计算。通过合理地使用 Math Function 节点,可以更好地管理和自动化系统中的各种操作。无论是在智能家居、工业监控还是其他物联网应用中,Math Function 节点都能发挥重要作用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark入门到实践

Spark入门到实践 一、Spark 快速入门1.1 Spark 概述1.2 Spark 最简安装1.3 Spark实现WordCount1.3.1 下载安装Scala1.3.2 添加Spark依赖1.3.3 Scala实现WordCount1.3.4 通过IDEA运行WordCount1.3.5 IDEA配置WordCount输入与输出路径1.3.6 通过IDEA运行WordCount1.3.7 查看运行结…

.NET 9 AOT的突破 - 支持老旧Win7与XP环境

引言 随着技术的不断进步,微软的.NET 框架在每次迭代中都带来了令人惊喜的新特性。在.NET 9 版本中,一个特别引人注目的亮点是 AOT( Ahead-of-Time)支持,它允许开发人员将应用程序在编译阶段就优化为能够在老旧的 Win…

网络层之IP协议,它带来了哪些功能,真的能顺着网线找到?

前言 在上一篇,学习了链路层的以太网协议,知道了MAC地址,在以太网中,找到对应的终端最终依靠的是MAC地址,但是在实际使用中,大家可能发现并不是使用的MAC地址,而是IP协议,比如 &…

linux之网络子系统- 内核发送数据包流程以及相关实际问题

一、相关实际问题 查看内核发送数据消耗的CPU时应该看sy还是si在服务器上查看/proc/softirqs,为什么NET_RX要比NET_TX大得多发送网络数据的时候都涉及那些内存拷贝操作零拷贝到底是怎么回事为什么Kafka的网络性能很突出 二、网络包发送过程总览 调用系统调用send发…

使用WebStorm开发Vue3项目

记录一下使用WebStorm开发Vu3项目时的配置 现在WebStorm可以个人免费使用啦!🤩 基本配置 打包工具:Vite 前端框架:ElementPlus 开发语言:Vue3、TypeScript、Sass 代码检查:ESLint、Prettier IDE&#xf…

操作系统及MySQL管理系统客户端的介绍

操作系统 1、Windows: 图形化管理工具:如控制面板、设置应用、任务管理器等。 客户端:命令提示符(cmd)和PowerShell用于命令行操作。 2、Linux: 图形化管理工具:如GNOME、KDE等桌面环境中的系…

基于SSM+小程序的旅游社交登录管理系统(旅游4)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 ​ 本旅游社交小程序功能有管理员和用户。管理员有个人中心,用户管理,每日签到管理,景点推荐管理,景点分类管理,防疫查询管理&a…

一文带你了解:六款适合PC端的工时管理工具

1. 板栗看板 板栗看板是一个可视化的事项管理工具,由看板(board)、列表(list)、卡片(card)三个基本元素构成。用户通过在 “看板” 上布置和移动 “列表” 与 “卡片”,可以跟踪事项…

数据结构算法学习方法经验总结

DSA:Data Structures, Algorithms, and Problem-Solving Techniques 三大核心支柱 一次学习一个主题,按照如下顺序学习 如何开始学习新的主题 学习资源 https://www.youtube.com/playlist?listPLDN4rrl48XKpZkf03iYFl-O29szjTrs_O (Algorithms) https://ww…

ANA基因组数据库(ANAgdb)

ANA进化阶由早期发育的被子植物谱系组成,包括无油樟目(Amborellales)、睡莲目(Nymphaeales)和木兰藤目(Austrobaileyales),在进化上具有重要地位。 ANA基因组数据库(ANA…

晟矽微PWM案例分析

/****************************************************************************** ; * 型号 : MC32F7361 ; * 创建日期 : 2021.12.21 ; * 公司/作者 : SINOMCU-FAE ; * 晟矽微技术支持 : 204…

检索引擎Elasticsearch

一.为什么要用Elasticsearch 由于我们在运行我们的项目的时候通常都是将数据存到mysql或者sql serve等数据库中,在进行数据搜索时使用sql 语句 like进行模糊匹配查询,其一:虽然可以查到数据,但是它模糊匹配查询速度较慢&#xff0…

vue前端使用pdfjs与pdfdist-mergeofd 实现预览pdf并翻页,同时解决预览pdf显示模糊的问题

vue前端使用pdfjs与pdfdist-mergeofd 实现预览pdf并翻页,同时解决预览pdf显示模糊的问题 插件介绍 pdfdist-mergeofd插件的作用可查看这篇文章,同时使用ofdjs和pdfjs遇到的问题,和解决方法——懒加载 该插件主要是为了解决pdfjs和ofdjs同时…

深度学习:yolov3的使用--建立模型

使用argparse模块来定义和解析命令行参数 创建一个ArgumentParser对象 parser argparse.ArgumentParser() 训练的轮数,每批图像的大小,更新模型参数之前累积梯度的次数,模型定义文件的路径。 parser.add_argument("--epochs", typeint, d…

38.第二阶段x86游戏实战2-HOOK窗口消息机制(解决多开窗口句柄问题)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…

详解汉明纠错码原理以及FPGA实现

文章目录 一、汉明纠错码简介二、汉明码编码原理以及步骤三、汉明码纠错原理以及步骤四、FPGA实现74汉明编码器五、FPGA实现74汉明解码器 一、汉明纠错码简介 汉明纠错码(Hamming Code)是一种用于检测和纠正数据传输中错误的编码方法。它由理查德汉明&am…

无人机光电识别跟踪算法!

一、算法概述 无人机光电识别跟踪算法结合了可见光和红外成像技术,通过光学系统收集目标的光学信息,并将其转换为电信号进行处理和分析。该算法能够实现对目标的快速、准确识别与追踪,极大提升了无人机在复杂环境下的作业能力和效率。 二、…

Ethernet 系列(6)-- 基础学习::OSI Model

(写在前面:最近在学习车载以太网的知识,顺便记录一下知识点。) OSI(Open System Interconnect )模型是一种网络通信框架,由国际标准化组织(‌ISO)在1985年提出&#xff0…

day15:shell基础

一,编程语法分类(了解) 编程范式: 面向过程:程序通过按步骤执行函数或过程完成任务,强调流程控制和函数调用,适合流程明确的任务,如 C。面向对象:通过“类”和“对象”封…

无人机测绘遥感技术算法概述!

一、数据采集算法 航线规划算法 根据测绘任务需求,利用地理信息系统(GIS)和遥感技术,对无人机进行航线规划。 考虑地形、气候、障碍物等因素,优化飞行路径,确保数据采集的完整性和准确性。 传感器控制算…