当前位置: 首页 > article >正文

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账号。icon-default.png?t=O83Ahttps://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_TELEMETRYRPC_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 实现步骤
  1. 部署传感器

    • 在生产线上安装传感器,实时采集设备状态数据。
  2. 创建规则链

    • 添加 Push to Edge 节点,将数据推送到边缘设备。
    • 添加其他处理节点,如数据处理、异常检测和数据存储。
  3. 配置规则链

    • 配置 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}"
  }
}
  1. 处理数据
    • 在边缘设备上进行本地数据处理和异常检测。
    • 如果检测到异常情况,立即采取措施,例如停止设备运行。
// 边缘设备上的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();
    }
}
  1. 实时响应
    • 根据处理结果,控制设备的开关状态。
{
  "edge": "EdgeDevice1",
  "messageType": "RPC_CALL",
  "method": "controlDevice",
  "params": {
    "action": "turnOn"
  }
}
  1. 前端界面

    • 开发一个前端界面,显示实时的设备状态和处理结果。
    • 提供一个界面,让用户能够查看和管理设备的开关状态。
  2. 数据查询

    • 使用 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 Vueicon-default.png?t=O83Ahttp://thingsvue.tpson.cn:7772/#/login?redirect=/tb-home/index

账号:admin@thingsboard.org 
密码:admin123456
🎽 安装使用

获取项目代码:

代码地址​icon-default.png?t=O83Ahttps://gitee.com/tpsonwell_admin/thingsvue


http://www.kler.cn/a/383627.html

相关文章:

  • SecureCRT汉化版
  • log4j2漏洞复现(CVE-2021-44228)
  • Mono里运行C#脚本3—mono_jit_init
  • Canoe E2E校验自定义Checksum算法
  • SRE 与 DevOps记录
  • 汽车IVI中控开发入门及进阶(46):FFmpeg
  • Yarn介绍 | 组成 | 工作流程
  • GESP4级考试语法知识(算法概论(三))
  • 加密通信的“军备竞赛”:科技的“猫鼠游戏”与永无止境的密码对抗
  • SpringSecurity6+OAuth2.0 从入门到熟练使用
  • 视频自动播放被浏览器阻止及其解决方案
  • 「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
  • 【神经网络加速】神经加速棒
  • Spring中@Autowired@Resource和@Inject注解区别
  • 记录学习react的一些内容
  • 123456789
  • K8S node节点没有相应的pod镜像运行故障处理办法
  • Spring Boot驱动的导师双选系统:设计与实现
  • 现货白银的交易技巧:成功进行趋势跟踪的技巧
  • 双指针算法篇——一快一慢须臾之间解决问题的飘逸与灵动(3)
  • IT专业入门,高考假期预习指南
  • Linux服务管理-DHCP
  • 【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)
  • 【bug日志-水】解决本地开发下代理和url同名导致刷新404的问题
  • webpack使用详解
  • Uniapp在Vue环境中引入iconfont图标库(详细教程)