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

目录

引言

1. AWS SNS 节点简介

2. 节点配置

2.1 基本配置示例

3. 使用场景

3.1 设备报警

3.2 数据同步

3.3 用户通知

4. 实际项目中的应用

4.1 项目背景

4.2 项目需求

4.3 实现步骤

5. 总结


引言

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

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 SNS 节点简介

AWS SNS 节点的主要作用是在规则链执行过程中,将消息发布到 Amazon SNS 主题。Amazon SNS 是一种完全托管的发布/订阅消息传递服务,支持多种消息协议和终端节点,包括电子邮件、短信、HTTP、HTTPS、SQS 等。通过使用 AWS SNS 节点,可以将设备上报的数据或处理结果发送到不同的终端节点,实现通知和消息传递。

2. 节点配置
  • AWS 区域:选择 AWS 服务所在的区域。
  • 访问密钥:提供 AWS 访问密钥,用于身份验证。
  • 秘密密钥:提供 AWS 秘密密钥,用于身份验证。
  • 主题 ARN:指定要发布的 SNS 主题的 Amazon Resource Name (ARN)。
  • 消息:指定要发布的消息内容,可以是静态文本或动态变量。
2.1 基本配置示例
{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","topicArn": "arn:aws:sns:us-east-1:123456789012:YourTopicName","message": "This is a test message from ThingsBoard"
}
3. 使用场景

AWS SNS 节点在多种场景下都非常有用,特别是在需要将消息发送到不同终端节点或实现通知机制时。以下是一些具体的应用场景:

3.1 设备报警

在设备检测到异常情况时,可以通过 AWS SNS 节点将报警信息发送到指定的终端节点,例如发送短信或电子邮件通知相关人员。

{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","topicArn": "arn:aws:sns:us-east-1:123456789012:AlarmNotifications","message": "Device ${msg.deviceId} has detected an anomaly: ${msg.anomalyType}"
}
3.2 数据同步

在需要将设备上报的数据同步到其他系统或服务时,可以通过 AWS SNS 节点将数据发送到指定的 SNS 主题,再由其他服务订阅该主题并处理数据。

{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","topicArn": "arn:aws:sns:us-east-1:123456789012:DataSyncTopic","message": "Device ${msg.deviceId} reported data: ${msg.data}"
}
3.3 用户通知

在需要向用户发送通知时,可以通过 AWS SNS 节点将通知信息发送到用户的终端节点,例如发送电子邮件或推送通知。

{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","topicArn": "arn:aws:sns:us-east-1:123456789012:UserNotifications","message": "Dear user, your device ${msg.deviceId} has been successfully updated."
}
4. 实际项目中的应用

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

4.1 项目背景

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

4.2 项目需求
  • 记录设备的状态,例如当前温度、湿度等。
  • 记录设备的使用情况,例如开关次数、能耗等。
  • 实现实时反馈,确保用户能够及时了解操作结果。
  • 在设备检测到异常情况时,发送报警信息。
  • 在设备更新或操作成功时,发送用户通知。
4.3 实现步骤
  1. 部署设备

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

    • 添加 AWS SNS 节点,用于将报警信息和用户通知发送到指定的 SNS 主题。
    • 添加其他处理节点,如设备控制、状态查询和数据存储。
  3. 配置规则链

    • 配置 AWS SNS 节点,用于发送报警信息。
{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","topicArn": "arn:aws:sns:us-east-1:123456789012:AlarmNotifications","message": "Device ${msg.deviceId} has detected an anomaly: ${msg.anomalyType}"
}
  • 配置 AWS SNS 节点,用于发送用户通知。
{"region": "us-east-1","accessKey": "YOUR_ACCESS_KEY","secretKey": "YOUR_SECRET_KEY","topicArn": "arn:aws:sns:us-east-1:123456789012:UserNotifications","message": "Dear user, your device ${msg.deviceId} has been successfully updated."
}
  1. 处理数据
    • 根据业务逻辑,动态地发送报警信息和用户通知。
// 发送报警信息
public void sendAlarmNotification(String deviceId, String anomalyType) {// 配置 AWS SNS 节点JsonNode config = JsonNodeFactory.instance.objectNode().put("region", "us-east-1").put("accessKey", "YOUR_ACCESS_KEY").put("secretKey", "YOUR_SECRET_KEY").put("topicArn", "arn:aws:sns:us-east-1:123456789012:AlarmNotifications").put("message", "Device " + deviceId + " has detected an anomaly: " + anomalyType);awsSnsNode.publish(config);
}// 发送用户通知
public void sendUserNotification(String deviceId, String message) {// 配置 AWS SNS 节点JsonNode config = JsonNodeFactory.instance.objectNode().put("region", "us-east-1").put("accessKey", "YOUR_ACCESS_KEY").put("secretKey", "YOUR_SECRET_KEY").put("topicArn", "arn:aws:sns:us-east-1:123456789012:UserNotifications").put("message", "Dear user, your device " + deviceId + " " + message);awsSnsNode.publish(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 SNS 节点在 ThingsBoard 规则链中是一个非常有用的工具,可以帮助你将消息发布到 Amazon SNS 主题,实现通知和消息传递。通过合理地使用 AWS SNS 节点,可以在设备报警、数据同步和用户通知等场景中,确保系统的高效性和灵活性。无论是在智能家居、工业监控还是其他物联网应用中,AWS SNS 节点都能发挥重要作用。

    🌐 项目地址

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.rhkb.cn/news/475897.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMAuthdService服务启动不了~

问题原因,我的VMware Workstation Pro安装在了硬盘上,原先硬盘分配的磁盘是F盘,但是我现在插入电脑显示的是E盘。路径冲突了,所以找不到服务。我更改一下硬盘的磁盘名称就好使啦~ 怎么修改磁盘名称,我想把F盘改成E盘-…

小程序25- iconfont 字体图标的使用

项目中使用到图标,一般由公司设计进行设计,设计好后上传到阿里巴巴矢量图标库 日常开发过程中,也可以通过 iconfont 图标库下载使用自带的图标 补充:使用 iconfont 图标库报错:Failed to load font 操作步骤&#xff…

【操作系统】操作系统的特征

操作系统的七个基本特征 并发性(Concurrence) 并发性是指操作系统在同一时间间隔内执行和调度多个程序的能力,提高资源利用率和系统效率。尽管多个任务可能在同一时刻看似同时进行,但实际上,CPU在多个任务之间快速切…

C# 数据结构之【树】C#树

以二叉树为例进行演示。二叉树每个节点最多有两个子节点。 1. 新建二叉树节点模型 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace DataStructure {class TreeNode{public int Data { get;…

2024年中国无人机产业研究报告(附产业链图谱)

无人机是指以空气动力为升力来源、无人员搭载的空中飞行器,简称UAV。最初为军事应用而开发,后来被应用于个人消费、地理测绘、影视航拍等越来越多的领域,并在应急救援、通信中继、气象探测等新场景中发挥着重要作用。 近年来,国家…

深入理解Spring(二)

2、Spring应用 2.1、基于xml的Spring应用 2.1.1、SpringBean的配置详解 Spring开发中主要是对Bean的配置,Bean的常用配置一览如下: 1)Bean的基础配置 例如:配置UserDaoImpl由Spring容器负责管理 此时存储到Spring容器(singleObjects单例池)中的Bean的beanName是user…

趋势洞察|AI 能否带动裸金属 K8s 强势崛起?

随着容器技术的不断成熟,不少企业在开展私有化容器平台建设时,首要考虑的问题就是容器的部署环境——是采用虚拟机还是物理机运行容器?在往期“虚拟化 vs. 裸金属*”系列文章中,我们分别对比了容器部署在虚拟化平台和物理机上的架…

Python Matplotlib 数据可视化全面解析:选择它的七大理由与入门简介

Python Matplotlib数据可视化全面解析:选择它的七大理由与入门简介 本文介绍了Matplotlib这一强大而灵活的数据可视化工具,涵盖其基本概念、独特优势以及为何在众多Python绘图库中脱颖而出。Matplotlib具有广泛的社区支持、高度自定义能力、多样的绘图类…

【C++】深入解析 C++ 多态机制:虚函数、动态绑定与抽象类的精髓

个人主页: 起名字真南的CSDN博客 个人专栏: 【数据结构初阶】 📘 基础数据结构【C语言】 💻 C语言编程技巧【C】 🚀 进阶C【OJ题解】 📝 题解精讲 目录 📌 前言📌1 多态✨ 1.1 多态的概念 📌 …

【反向迭代器】—— 我与C++的不解之缘(十七)

前言 ​ 在STL中的迭代器部分,之前只关注与正向迭代器,忽视了反向迭代器;现在来看一下反向迭代器到底是个什么东西,以及反向迭代器怎么实现,怎么为之前自己模拟实现的容器增加反向迭代器? 反向迭代器的使用…

无人机与低空经济:开启新质生产力的新时代

无人机技术作为低空经济的核心技术之一,正以其独特的优势在多个行业中发挥着重要作用,成为推动新质生产力革命的重要力量。无人机的应用范围广泛,从农业植保到物流配送,从城市监测到紧急救援,无人机的身影无处不在&…

ElasticSearch7.x入门教程之中文分词器 IK(二)

文章目录 前言一、内置分词器二、中文IK分词器(第三方)三、本地自定义四、远程词库总结 前言 ElasticSearch 核心功能就是数据检索,首先通过索引将文档写入 es。 查询分析则主要分为两个步骤: 1、词条化:分词器将输入…

宏景HCM uploadLogo.do接口存在任意文件上传漏洞

文章目录 免责声明漏洞描述搜索语法漏洞复现nuclei修复建议 免责声明 本文章仅供学习与交流,请勿用于非法用途,均由使用者本人负责,文章作者不为此承担任何责任 漏洞描述 宏景HCM是一款基于先进的人力资本管理体系和灵活开放的技术架构的企…

Linux:confluence8.5.9的部署(下载+安装+pojie)离线部署全流程 遇到的问题

原文地址Linux:confluence8.5.9的部署(下载安装破ji)离线部署全流程_atlassian-agent-v1.3.1.zip-CSDN博客 背景:个人使用2核4g 内存扛不住 总是卡住,但是流程通了所以 直接公司开服务器干生产 个人是centos7 公司…

基于web的音乐网站(Java+SpringBoot+Mysql)

目录 1系统概述 1.1 研究背景 1.2研究目的 1.3系统设计思想 2相关技术 2.1 MYSQL数据库 2.2 B/S结构 2.3 Spring Boot框架简介 3系统分析 3.1可行性分析 3.1.1技术可行性 3.1.2经济可行性 3.1.3操作可行性 3.2系统性能分析 3.2.1 系统安全性 3.2.2 数据完整性 …

MATLAB绘图基础11:3D图形绘制

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 11.3D图形绘制 11.1 3D图概述 M A T L A B {\rm MATLAB} MATLAB的 3 D {\rm 3D} 3D图主要有: 3 D {\rm 3D} 3D散点图、 3 D {\rm 3D} 3D线图、 3 D {\rm 3D} 3D曲面图、 3 D {\rm…

集合卡尔曼滤波(Ensemble Kalman Filter),用于二维滤波(模拟平面上的目标跟踪),MATLAB代码

集合卡尔曼滤波(Ensemble Kalman Filter) 文章目录 引言理论基础卡尔曼滤波集合卡尔曼滤波初始化预测步骤更新步骤卡尔曼增益更新集合 MATLAB 实现运行结果3. 应用领域结论 引言 集合卡尔曼滤波(Ensemble Kalman Filter, EnKF)是…

Bug:gomonkey系列问题(undefined: buildJmpDirective)

Bug:gomonkey系列问题(undefined: buildJmpDirective) 最近拉代码发现其他同事写单测使用的是gomonkey,我本地mac m3芯片执行报错,gomonkey: undefined: buildJmpDirective。 对go convey不熟悉的朋友可以看这篇文章: Go Convey测…

Arcgis 地图制作

地图如下,不同历史时期:

【AI编程实战】安装Cursor并3分钟实现Chrome插件(保姆级)

Cursor介绍 https://www.cursor.com/ 一句话介绍:AI代码编辑器,当前最火的AI编程器 软件下载与安装 下载 打开Cursor官网下载,会根据操作系统的差别进行选择 https://www.cursor.com/ 这里下载的内容很小,是个安装器&#x…