ThingsBoard规则链节点:Push to Edge节点详解
引言
1. Push to Edge 节点简介
2. 节点配置
2.1 基本配置示例
3. 使用场景
3.1 边缘计算
3.2 本地数据处理
3.3 实时响应
4. 实际项目中的应用
4.1 项目背景
4.2 项目需求
4.3 实现步骤
5. 总结
引言
ThingsBoard 是一个开源的物联网平台,提供了设备管理、数据收集、处理和可视化等功能。规则链是 ThingsBoard 中的一个强大功能,允许用户定义复杂的业务逻辑来处理设备上报的数据。在规则链中,
Push to Edge节点用于将数据推送到边缘设备,这对于实现边缘计算和本地数据处理非常有用。
ThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台_哔哩哔哩_bilibiliThingsBoard从入门到实战课程,深入透析底层原理,快速搭建自己的IOT平台共计33条视频,包括:1、ThingsBoard项目介绍、2、ThingsBoard前端Vue版本代码编译、3、ThingsBoard本地后端源码编译等,UP主更多精彩视频,请关注UP账号。
https://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0 
1. Push to Edge 节点简介
Push to Edge 节点的主要作用是在规则链执行过程中将数据推送到边缘设备。通过 Push to Edge 节点,可以将处理后的数据发送到边缘设备,实现在边缘侧进行进一步的处理和决策。这在边缘计算、本地数据处理和实时响应中非常有用。
2. 节点配置
- Edge设备:选择目标边缘设备,可以是已经注册在ThingsBoard中的边缘设备。
- 消息类型:指定要发送的消息类型,常见的有
POST_TELEMETRY、RPC_CALL等。 - 消息内容:设置要发送的消息内容,可以是静态值、动态表达式或消息中的属性。
2.1 基本配置示例
{"edge": "EdgeDevice1","messageType": "POST_TELEMETRY","data": {"temperature": "${msg.temperature}","humidity": "${msg.humidity}"}
}
3. 使用场景
Push to Edge 节点在多种场景下都非常有用,特别是在需要实现边缘计算、本地数据处理和实时响应时。以下是一些具体的应用场景:
3.1 边缘计算
在边缘计算中,需要将部分数据处理任务从云端下放到边缘设备,以减少网络延迟和带宽消耗。
{"edge": "EdgeDevice1","messageType": "POST_TELEMETRY","data": {"temperature": "${msg.temperature}","humidity": "${msg.humidity}"}
}
3.2 本地数据处理
在某些场景下,需要在边缘设备上进行本地数据处理,例如实时数据分析和异常检测。
{"edge": "EdgeDevice1","messageType": "RPC_CALL","method": "processData","params": {"data": "${msg.data}"}
}
3.3 实时响应
在实时响应中,需要将处理后的数据快速推送到边缘设备,以便进行即时的控制和决策。
{"edge": "EdgeDevice1","messageType": "RPC_CALL","method": "controlDevice","params": {"action": "turnOn"}
}
4. 实际项目中的应用
下面是一个实际项目中的例子,展示如何在智能工厂监控系统中使用 Push to Edge 节点。
4.1 项目背景
假设我们正在开发一个智能工厂监控系统,该系统需要实时监测生产线上的设备状态,并在边缘设备上进行本地数据处理和实时响应。此外,还需要将处理后的数据发送到云端进行进一步的分析和存储。
4.2 项目需求
- 监测生产线上的设备状态。
- 在边缘设备上进行本地数据处理和异常检测。
- 将处理后的数据发送到云端进行进一步的分析和存储。
- 实现实时响应,例如控制设备的开关状态。
4.3 实现步骤
-
部署传感器:
- 在生产线上安装传感器,实时采集设备状态数据。
-
创建规则链:
- 添加
Push to Edge节点,将数据推送到边缘设备。 - 添加其他处理节点,如数据处理、异常检测和数据存储。
- 添加
-
配置规则链:
- 配置
Push to Edge节点,将设备状态数据推送到边缘设备。
- 配置
{"edge": "EdgeDevice1","messageType": "POST_TELEMETRY","data": {"temperature": "${msg.temperature}","humidity": "${msg.humidity}","pressure": "${msg.pressure}"}
}
- 配置
Push to Edge节点,调用边缘设备上的RPC方法进行数据处理和异常检测。
{"edge": "EdgeDevice1","messageType": "RPC_CALL","method": "processData","params": {"data": "${msg.data}"}
}
- 处理数据:
- 在边缘设备上进行本地数据处理和异常检测。
- 如果检测到异常情况,立即采取措施,例如停止设备运行。
// 边缘设备上的RPC方法
public void processData(Map<String, Object> data) {double temperature = (double) data.get("temperature");double humidity = (double) data.get("humidity");double pressure = (double) data.get("pressure");if (temperature > 80 || humidity > 70 || pressure > 100) {// 检测到异常情况,立即停止设备运行stopDevice();}
}
- 实时响应:
- 根据处理结果,控制设备的开关状态。
{"edge": "EdgeDevice1","messageType": "RPC_CALL","method": "controlDevice","params": {"action": "turnOn"}
}
-
前端界面:
- 开发一个前端界面,显示实时的设备状态和处理结果。
- 提供一个界面,让用户能够查看和管理设备的开关状态。
-
数据查询:
- 使用 ThingsBoard 的 REST API 或 GraphQL 查询,获取历史数据和处理结果。
GET /api/plugins/telemetry/DEVICE/{deviceId}/values/timeseries?keys=temperature,humidity,pressure&startTs={startTimestamp}&endTs={endTimestamp}
5. 总结
Push to Edge节点在 ThingsBoard 规则链中是一个非常有用的工具,可以帮助将数据推送到边缘设备,实现在边缘侧进行进一步的处理和决策。通过合理地使用Push to Edge节点,可以更好地管理和自动化系统中的各种操作。无论是在智能工厂、工业监控还是其他物联网应用中,Push to Edge节点都能发挥重要作用。
🌐 项目地址
Things Vue
http://thingsvue.tpson.cn:7772/#/login?redirect=/tb-home/index
账号:admin@thingsboard.org 密码:admin123456
🎽 安装使用
获取项目代码:
代码地址
https://gitee.com/tpsonwell_admin/thingsvue

相关文章:
ThingsBoard规则链节点:Push to Edge节点详解
引言 1. Push to Edge 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 边缘计算 3.2 本地数据处理 3.3 实时响应 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台,提供了设备管…...
基于 EventBridge + DashVector 打造 RAG 全链路动态语义检索能力
作者:肯梦 本文将演示如何使用事件总线(EventBridge),向量检索服务(DashVector),函数计算(FunctionCompute)结合灵积模型服务 [ 1] 上的 Embedding API [ 2] ࿰…...
【golang/navmesh】使用recast navigation进行寻路
目录 说在前面安装使用可视化 说在前面 go version:1.20.2 linux/amd64操作系统:wsl2detour-go版本:v0.2.0github:这里,求star! 安装 使用go mod安装即可go get github.com/o0olele/detour-go使用 使用场景模型构建n…...
【软考】Redis不同的数据类型和应用场景。
Redis的不同数据类型和对应的应用场景: Redis 数据类型及其应用场景 String(字符串) 特点:简单的值存储,支持二进制数据。应用场景: 缓存用户会话。缓存小的配置文件。缓存计数器。文章浏览量࿰…...
java 对人名和电话 脱敏-replaceAll
学习了《正则匹配人名》和《正则匹配电话号码》,如果要一起进行脱敏处理,改怎么做? 脱敏的,考虑配置规则,进行匹配的方式进行处理: 脱敏规则: DesensitizationRules Data public class Desens…...
计算机网络:网络层 —— 网络地址转换 NAT
文章目录 网络地址转换 NAT 概述最基本的 NAT 方法NAT 转换表的作用 网络地址与端口号转换 NAPTNAT 和 NAPT 的缺陷 网络地址转换 NAT 概述 尽管因特网采用了无分类编址方法来减缓 IPv4 地址空间耗尽的速度,但由于因特网用户数量的急剧增长,特别是大量小…...
【Pikachu靶场:XSS系列】xss之过滤,xss之htmlspecialchars,xss之herf输出,xss之js输出通关啦
一、xss之过滤 <svg onloadalert("过关啦")> 二、xss之htmlspecialchars javascript:alert(123) 原理:输入测试文本为herf的属性值和内容值,所以转换思路直接变为js代码OK了 三、xss之href输出 JavaScript:alert(假客套) 原理&#x…...
面向制造和装配的产品设计指南(二):面向装配的设计指南
参考引用 面向制造和装配的产品设计指南 1. 概述 1.1 装配的概念 装配是指把多个零件组装成产品,使得产品能够实现相应的功能并体现产品的质量,装配包含三层含义 把零件组装在一起实现相应的功能体现产品的质量 1.2 最好和最差的装配工序 1.3 面向装…...
Python中的PDF处理工具:PyPDF2和ReportLab使用指南
Python中的PDF处理工具:PyPDF2和ReportLab使用指南 在日常工作和项目中,PDF 文件处理是个常见需求,不论是合并报告、加密文档、填充表单,还是生成发票。Python 中有许多用于操作 PDF 文件的库,其中 PyPDF2 和 ReportL…...
【vxe-table】多选筛选项对列表的列进行动态的显示与隐藏
需求: 列表的组成部分由:一些固定的列,如:姓名,工号,以及 需要动态显示与隐藏的列,如:出勤、旷工、事假、病假等假勤类型 1、通过多选框多选,展示选中的列,未选中的不展示…...
微信小程序uniapp+vue飞机订票航空售票系统
文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 对于小程序飞机订票信息管理所牵扯的信息管理及数据保存都是非常多的,举例像所有的管理员;管理员…...
如何取消Outlook中的循环会议
如何取消Outlook中的循环会议 参考链接:https://iknow.lenovo.com.cn/detail/195430 1、打开Outlook,进入 日历 视图界面; 2、 选择并双击要取消的循环会议; 3、 在 打开定期项目 对话框中选择整个序列,然后单击 确…...
Docker-- cgroups资源控制实战
上一篇:容器化和虚拟化 什么是cgroups? cgroups是Linux内核中的一项功能,最初由Google的工程师提出,后来被整合进Linux内核; 它允许用户将一系列系统任务及其子任务整合或分隔到按资源划分等级的不同组内,从而为系统…...
使用Python和Vosk库实现语音识别
使用Python和Vosk库实现语音识别 在人工智能和机器学习领域,语音识别技术正变得越来越重要。Python作为一种强大的编程语言,拥有丰富的库和框架,可以方便地实现语音识别功能。今天,我们将介绍如何使用Python中的SpeechRecognitio…...
stm32使用串口的轮询模式,实现数据的收发
------内容以b站博主keysking为原型,整理而来,用作个人学习记录。 首先在STM32CubeMX中配置 前期工作省略,只讲重点设置。 这里我配置的是USART2的模式。 会发现,PA2和PA3分别是TX与RX,在连接串口时需要TX对RX&…...
105. UE5 GAS RPG 搭建主菜单
在这一篇,我们将实现对打开游戏显示的主菜单进行搭建,主菜单将显示游戏主角,游戏名称和进入游戏和退出游戏两个按钮。 搭建菜单场景 我们将主菜单设置为一个单独的场景,前面可以显示对应的UI控件,用于玩家操作&#…...
基于 JAVASSM(Java + Spring + Spring MVC + MyBatis)框架开发一个医院挂号系统
基于 JAVASSM(Java Spring Spring MVC MyBatis)框架开发一个医院挂号系统是一个实用的项目。 步骤一:需求分析 明确系统需要实现的功能,比如: 用户注册和登录查看医生列表预约挂号查看预约记录取消预约管理员管…...
Golang | Leetcode Golang题解之第540题有序数组中的单一元素
题目: 题解: func singleNonDuplicate(nums []int) int {low, high : 0, len(nums)-1for low < high {mid : low (high-low)/2mid - mid & 1if nums[mid] nums[mid1] {low mid 2} else {high mid}}return nums[low] }...
影刀RPA实战:嵌入python,如虎添翼
1. 影刀RPA与Python的关系 影刀RPA与Python的关系可以从以下几个方面来理解: 技术互补:影刀RPA是一种自动化工具,它允许用户通过图形化界面创建自动化流程,而Python是一种编程语言,常用于编写自动化脚本。影刀RPA可以…...
es 数据清理delete_by_query
POST /索引名/_delete_by_query?conflictsproceed&scroll_size2000&wait_for_completionfalse&slices36 {"size": 2000, "query": {"bool": { "must": [{"terms": {"rule_id": [800007]}}]}} }slice…...
Qwerty Learner终极指南:免费提升英语打字速度的完整教程
Qwerty Learner终极指南:免费提升英语打字速度的完整教程 【免费下载链接】qwerty-learner 项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner Qwerty Learner是一款专为键盘工作者设计的开源工具,通过单词记忆与英语肌肉记忆训…...
手把手教你用STM32H7S7实现高速USB复合设备(CDC+MSC):从CubeMX配置到性能优化
STM32H7高速USB复合设备开发实战:CDCMSC架构设计与性能调优 在嵌入式系统开发中,USB复合设备技术正成为连接智能硬件与主机系统的关键桥梁。STM32H7系列凭借其Cortex-M7内核和480Mbps的高速USB外设,为开发者提供了实现高性能复合设备的理想平…...
Clawdbot汉化版开源可部署:MIT协议+全栈TypeScript+模块化Agent设计解析
Clawdbot汉化版开源可部署:MIT协议全栈TypeScript模块化Agent设计解析 1. 项目概述与技术特色 Clawdbot是一个开源的智能对话助手系统,采用MIT协议发布,允许用户自由使用、修改和分发。这个项目的核心价值在于让用户能够在主流即时通讯平台…...
避坑指南:Webots 2022a在Windows安装后,为什么打不开示例项目?手把手教你排查与修复
Webots 2022a Windows安装避坑指南:示例项目无法加载的终极解决方案 当你满怀期待地在Windows上安装好Webots R2022a,准备开始机器人仿真之旅时,却发现内置的示例项目一片空白或频繁报错——这种挫败感我深有体会。作为一款功能强大的机器人仿…...
FlowState Lab参数调优实战:如何获得理想的模拟精度与速度
FlowState Lab参数调优实战:如何获得理想的模拟精度与速度 1. 为什么参数调优如此重要 在工程仿真领域,我们常常面临一个经典难题:精度与速度的权衡。FlowState Lab作为一款强大的流体动力学仿真工具,其参数设置直接影响着模拟结…...
隐马尔科夫模型(HMM)实战:从天气预测到股票市场分析
1. 隐马尔科夫模型入门:从天气预报说起 第一次听说隐马尔科夫模型(HMM)时,我正盯着手机上的天气预报发呆。为什么明明显示"晴天",下午却突然下起暴雨?这让我开始思考天气预测背后的数学模型。HMM正是解决这类问题的利器…...
OptiScaler完全指南:如何为你的游戏解锁跨厂商上采样技术
OptiScaler完全指南:如何为你的游戏解锁跨厂商上采样技术 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler 还在为游戏中…...
mytrader-开源量化交易平台:多语言支持下的金融数据分析与策略开发实战
1. mytrader:量化交易的全能工具箱 第一次接触mytrader时,我被它支持的多语言生态震惊了——这就像找到了一把能打开所有量化交易大门的万能钥匙。作为开源量化交易平台,mytrader最突出的特点就是允许开发者使用C/C、Python、Excel/VBA甚至麦…...
本地数据库工具革新:浏览器应用如何3分钟解决SQLite查看难题
本地数据库工具革新:浏览器应用如何3分钟解决SQLite查看难题 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 在数字化开发的日常工作流中,SQLite数据库文件查看往往成为效率…...
微信毕业设计基于微信小程序的易物小店交换系统
前言 Spring Boot 易物小店交换系统是一个基于 Web 的应用程序,利用 Spring Boot 框架构建,主要用于帮助用户实现物品交换的功能。该系统为用户提供了一个便捷、安全、高效的平台,让他们能够轻松地发布自己想要交换的物品信息,寻找…...
