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

ThingsBoard规则链节点:AWS SQS 节点详解

引言

ThingsBoard 是一个开源的物联网平台,提供了设备管理、数据收集、处理和可视化等功能。规则链是 ThingsBoard 中的一个强大功能,允许用户定义复杂的业务逻辑来处理设备上报的数据。在规则链中,AWS SQS 节点用于将消息发送到 Amazon Simple Queue Service (SQS) 队列。

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&vd_source=5b535ac3589f53abe431d7f6afc44ff4

1. AWS SQS 节点简介

AWS SQS 节点的主要作用是在规则链执行过程中,将消息发送到 Amazon SQS 队列。Amazon SQS 是一种完全托管的消息队列服务,支持消息的异步传递,适用于解耦和分布式系统之间的通信。通过使用 AWS SQS 节点,可以将设备上报的数据或处理结果发送到 SQS 队列,再由其他服务或系统消费这些消息,实现异步处理和解耦。

2. 节点配置
  • AWS 区域:选择 AWS 服务所在的区域。
  • 访问密钥:提供 AWS 访问密钥,用于身份验证。
  • 秘密密钥:提供 AWS 秘密密钥,用于身份验证。
  • 队列 URL:指定要发送消息的 SQS 队列的 URL。
  • 消息:指定要发送的消息内容,可以是静态文本或动态变量。
2.1 基本配置示例
{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/YourQueueName","message": "This is a test message from ThingsBoard"
}
3. 使用场景

AWS SQS 节点在多种场景下都非常有用,特别是在需要实现异步处理和解耦的场景中。以下是一些具体的应用场景:

3.1 数据处理

在需要将设备上报的数据异步处理时,可以通过 AWS SQS 节点将数据发送到 SQS 队列,再由其他服务或系统消费这些消息进行处理。

{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/DataProcessingQueue","message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
3.2 任务调度

在需要调度任务时,可以通过 AWS SQS 节点将任务消息发送到 SQS 队列,再由任务调度系统消费这些消息执行任务。

{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/TaskSchedulingQueue","message": "Task scheduled for device ${msg.deviceId}: ${msg.taskDetails}"
}
3.3 事件通知

在需要发送事件通知时,可以通过 AWS SQS 节点将事件消息发送到 SQS 队列,再由事件处理系统消费这些消息进行通知。

{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/EventNotificationQueue","message": "Event occurred for device ${msg.deviceId}: ${msg.eventType}"
}
4. 实际项目中的应用

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

4.1 项目背景

假设我们正在开发一个智能家居系统,该系统需要支持用户通过手机应用控制家中的灯光、空调等设备,并记录设备的状态和使用情况。此外,还需要实现数据处理、任务调度和事件通知功能。

4.2 项目需求
  • 记录设备的状态,例如当前温度、湿度等。
  • 记录设备的使用情况,例如开关次数、能耗等。
  • 实现实时反馈,确保用户能够及时了解操作结果。
  • 将设备上报的数据异步处理。
  • 调度定期任务,例如定时开关设备。
  • 发送事件通知,例如设备故障通知。
4.3 实现步骤
  1. 部署设备

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

    • 添加 AWS SQS 节点,用于将设备上报的数据发送到 SQS 队列,再由其他服务或系统消费这些消息进行处理。
    • 添加其他处理节点,如设备控制、状态查询和数据存储。
  3. 配置规则链

    • 配置 AWS SQS 节点,用于发送数据处理消息。
{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/DataProcessingQueue","message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
  • 配置 AWS SQS 节点,用于发送任务调度消息。
{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/TaskSchedulingQueue","message": "Task scheduled for device ${msg.deviceId}: ${msg.taskDetails}"
}
  • 配置 AWS SQS 节点,用于发送事件通知消息。
{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/EventNotificationQueue","message": "Event occurred for device ${msg.deviceId}: ${msg.eventType}"
}
  1. 处理数据
    • 根据业务逻辑,动态地发送数据处理、任务调度和事件通知消息。
// 发送数据处理消息
public void sendDataProcessingMessage(String deviceId, String data) {// 配置 AWS SQS 节点JsonNode config = JsonNodeFactory.instance.objectNode().put("region", "us-east-1").put("accessKey", "YOUR_ACCESS_KEY").put("secretKey", "YOUR_SECRET_KEY").put("queueUrl", "https://sqs.us-east-1.amazonaws.com/123456789012/DataProcessingQueue").put("message", "Device " + deviceId + " reported data: " + data);awsSqsNode.sendMessage(config);
}// 发送任务调度消息
public void sendTaskSchedulingMessage(String deviceId, String taskDetails) {// 配置 AWS SQS 节点JsonNode config = JsonNodeFactory.instance.objectNode().put("region", "us-east-1").put("accessKey", "YOUR_ACCESS_KEY").put("secretKey", "YOUR_SECRET_KEY").put("queueUrl", "https://sqs.us-east-1.amazonaws.com/123456789012/TaskSchedulingQueue").put("message", "Task scheduled for device " + deviceId + ": " + taskDetails);awsSqsNode.sendMessage(config);
}// 发送事件通知消息
public void sendEventNotificationMessage(String deviceId, String eventType) {// 配置 AWS SQS 节点JsonNode config = JsonNodeFactory.instance.objectNode().put("region", "us-east-1").put("accessKey", "YOUR_ACCESS_KEY").put("secretKey", "YOUR_SECRET_KEY").put("queueUrl", "https://sqs.us-east-1.amazonaws.com/123456789012/EventNotificationQueue").put("message", "Event occurred for device " + deviceId + ": " + eventType);awsSqsNode.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. 总结

AWS SQS 节点在 ThingsBoard 规则链中是一个非常有用的工具,可以帮助你将消息发送到 Amazon SQS 队列,实现异步处理和解耦。通过合理地使用 AWS SQS 节点,可以在数据处理、任务调度和事件通知等场景中,确保系统的高效性和灵活性。

     🌐 项目地址

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/77997.html

相关文章:

  • FPGA学习-FFT变换-解决频率低信号进行FFT运算的取点问题
  • hubu新星杯实践能力赛模拟赛web/Misc-wp
  • ONNX模型转换为TensorRT模型(trtexec 工具)
  • 深度学习:神经网络中线性层的使用
  • YonBuilder移动开发鸿蒙版本编译教程
  • Spring AI Alibaba-Chat Client
  • 图片预览 图片上传到服务器
  • ubuntu中使用ffmpeg和nginx推流rtmp视频
  • RFdiffusion sample_vec函数解读
  • PAL(Program-Aided Language Model)
  • AGCR自适应杂波滤除算法for GPR
  • Image fusion meets deep learning: A survey and perspective译文
  • 【电路设计】基于CD4511的八路抢答器电路解析
  • 鸿蒙主流路由详解
  • FreeRTOS——软件定时器
  • 设计模式之创建模式篇
  • vue3项目部署在阿里云轻量应用服务器上
  • goframe开发一个企业网站 MongoDB 完整工具包18
  • 类和对象--中--运算符重载、日期类实现(重要)
  • 09 —— Webpack搭建开发环境
  • 【前端】JavaScript 作用域全面解析
  • 编程中的快捷操作
  • 运维Tips:Docker或K8s集群拉取Harbor私有容器镜像仓库配置指南
  • .net core MVC入门(一)
  • 三汇&网易|认知实习报告
  • 【CSP CCF记录】201812-2第15次认证 小明放学