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

ThingsBoard规则链节点:GCP Pub/Sub 节点详解

目录

引言

1. GCP Pub/Sub 节点简介

2. 节点配置

2.1 基本配置示例

3. 使用场景

3.1 数据传输

3.2 数据分析

3.3 事件通知

3.4 任务调度

4. 实际项目中的应用

4.1 项目背景

4.2 项目需求

4.3 实现步骤

5. 总结


引言

ThingsBoard 是一个开源的物联网平台,提供了设备管理、数据收集、处理和可视化等功能。规则链是 ThingsBoard 中的一个强大功能,允许用户定义复杂的业务逻辑来处理设备上报的数据。在规则链中,GCP Pub/Sub 节点用于将消息发布到 Google Cloud Pub/Sub 主题。本文将详细介绍 GCP Pub/Sub 节点的用法、含义以及在实际项目中的应用场景。

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

GCP Pub/Sub 节点的主要作用是在规则链执行过程中,将消息发布到 Google Cloud Pub/Sub 主题。Google Cloud Pub/Sub 是一种完全托管的消息传递服务,支持发布/订阅模式,可以实现不同系统和服务之间的解耦和异步通信。通过使用 GCP Pub/Sub 节点,可以将设备上报的数据或处理结果发送到 Pub/Sub 主题,再由其他服务或系统消费这些消息,实现数据的进一步处理和分析。

2. 节点配置
  • 项目 ID:指定 Google Cloud 项目的 ID。
  • 主题名称:指定要发布的 Pub/Sub 主题名称。
  • 凭据文件:提供包含 Google Cloud 凭据的 JSON 文件路径,用于身份验证。
  • 消息:指定要发送的消息内容,可以是静态文本或动态变量。
2.1 基本配置示例
{"projectId": "your-project-id","topicName": "your-topic-name","credentialsFile": "/path/to/credentials.json","message": "This is a test message from ThingsBoard"
}
3. 使用场景

GCP Pub/Sub 节点在多种场景下都非常有用,特别是在需要将设备数据发送到 Google Cloud 服务进行进一步处理和分析的场景中。以下是一些具体的应用场景:

3.1 数据传输

在需要将设备上报的数据发送到 Google Cloud Pub/Sub 时,可以通过 GCP Pub/Sub 节点将数据发送到指定的主题。

{"projectId": "your-project-id","topicName": "device-data-topic","credentialsFile": "/path/to/credentials.json","message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
3.2 数据分析

在需要对设备数据进行实时分析时,可以通过 GCP Pub/Sub 节点将数据发送到 Google Cloud Pub/Sub,再由 Google Cloud Dataflow 或其他服务进行处理和分析。

{"projectId": "your-project-id","topicName": "data-analysis-topic","credentialsFile": "/path/to/credentials.json","message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
3.3 事件通知

在需要发送事件通知时,可以通过 GCP Pub/Sub 节点将事件消息发送到 Pub/Sub 主题,再由其他服务或系统消费这些消息进行通知。

{"projectId": "your-project-id","topicName": "event-notification-topic","credentialsFile": "/path/to/credentials.json","message": "Event occurred for device ${msg.deviceId}: ${msg.eventType}"
}
3.4 任务调度

在需要调度任务时,可以通过 GCP Pub/Sub 节点将任务消息发送到 Pub/Sub 主题,再由任务调度系统消费这些消息执行任务。

{"projectId": "your-project-id","topicName": "task-scheduling-topic","credentialsFile": "/path/to/credentials.json","message": "Task scheduled for device ${msg.deviceId}: ${msg.taskDetails}"
}
4. 实际项目中的应用

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

4.1 项目背景

假设我们正在开发一个智能家居系统,该系统需要支持用户通过手机应用控制家中的灯光、空调等设备,并记录设备的状态和使用情况。此外,还需要将设备数据发送到 Google Cloud Pub/Sub 进行进一步处理和分析。

4.2 项目需求
  • 记录设备的状态,例如当前温度、湿度等。
  • 记录设备的使用情况,例如开关次数、能耗等。
  • 实现实时反馈,确保用户能够及时了解操作结果。
  • 将设备数据发送到 Google Cloud Pub/Sub 进行进一步处理和分析。
4.3 实现步骤
  1. 部署设备

    • 在家中安装智能灯光、空调等设备,并连接到 ThingsBoard 平台。
  2. 创建规则链

    • 添加 GCP Pub/Sub 节点,用于将设备上报的数据发送到 Google Cloud Pub/Sub。
    • 添加其他处理节点,如设备控制、状态查询和数据存储。
  3. 配置规则链

    • 配置 GCP Pub/Sub 节点,用于发送设备数据。
{"projectId": "your-project-id","topicName": "device-data-topic","credentialsFile": "/path/to/credentials.json","message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
  1. 处理数据
    • 根据业务逻辑,动态地将设备数据发送到 Google Cloud Pub/Sub。
// 发送设备数据到 Google Cloud Pub/Sub
public void sendDeviceDataToPubSub(String projectId, String topicName, String deviceId, String data) {// 配置 GCP Pub/Sub 节点JsonNode config = JsonNodeFactory.instance.objectNode().put("projectId", projectId).put("topicName", topicName).put("credentialsFile", "/path/to/credentials.json").put("message", "Device " + deviceId + " reported data: " + data);gcpPubSubNode.sendMessage(config);
}
  1. 前端界面

    • 开发一个前端界面,显示设备的状态和使用情况。
    • 提供一个界面,让用户能够查看和管理设备的状态和使用情况,以及接收通知。
  2. 数据查询

    • 使用 SQL 查询,获取设备的状态和使用情况。
SELECT * FROM device_status WHERE device_id = 'device1' ORDER BY timestamp DESC LIMIT 10;
SELECT * FROM device_usage WHERE device_id = 'device1' ORDER BY timestamp DESC LIMIT 10;
5. 总结

GCP Pub/Sub 节点在 ThingsBoard 规则链中是一个非常有用的工具,可以帮助你将消息发布到 Google Cloud Pub/Sub 主题,实现数据的进一步处理和分析。通过合理地使用 GCP Pub/Sub 节点,可以在数据传输、数据分析、事件通知和任务调度等场景中,确保系统的高效性和灵活性。

  🌐 项目地址

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.mrgr.cn/news/78407.html

相关文章:

  • 在线音乐播放器 —— 测试报告
  • 目标检测之学习路线(本科版)
  • C 语言数组与函数:核心要点深度剖析与高效编程秘籍
  • 【TQ2440】02 串口连接进入u-boot
  • 从0开始搭建一个记事本项目
  • 了解 CSS position 属性
  • 技术文档的规划布局:构建清晰的知识蓝图
  • 【Leetcode 每日一题】632. 最小区间
  • Springboot整合分布式任务调度平台XXL-Job实现定时任务
  • 更优雅的 yolo v11 标注工具 AutoLabel Conda环境直接识别训练
  • PGSQL学习笔记 -- 从入门到放弃
  • 使用Spring Data MongoDB中的MongoTemplate实现分组查询最新的数据
  • 前端应用界面的展示与优化(记录)
  • C++学习日记---第14天(蓝桥杯备赛)
  • 什么是代理,nodenginx前端代理详解
  • vue修改el-table-column上下margin外边距调整行间距方法教程
  • 在Ubuntu2004中搭建基于ESP-IDF v5.1的ESP32-S3开发环境
  • MySQL篇
  • 缓存方案分享
  • Vue 2 安装并使用 Ag-Grid ^31.3.4、样式、中文化、组件设计
  • Java 8新特性详解与实战
  • Pytest使用Jpype调用jar包报错:Windows fatal exception: access violation
  • 【k8s深入理解之 Scheme】全面理解 Scheme 的注册机制、内外部版本、自动转换函数、默认填充函数、Options等机制
  • 力扣hot100-->排序
  • Diving into the STM32 HAL-----I²C笔记
  • 【StarRocks】starrocks 3.2.12 【share-nothing】 多Be集群容器化部署