Telegram提供了创建被视为第三方应用程序的Telegram Bot的可能性。
因此在本教程中我们将演示如何创建Telegram Bot 并将你的ThingsBoard规则引擎配置为能够使用Rest API调用扩展将通知发送到Telegram App。
本教程基于创建和清除警报教程。
我们将重用上述教程中的规则链,并将添加更多规则节点以与Telegram集成
假设你的设备正在使用DHT22传感器来收集温度读数并将其推送到ThingsBoard。
DHT22传感器适用于-40至80°C的温度读数。如果温度超出范围,我们希望生成警报,并在警报创建时向Telegram App发送通知。
在本教程中我们将ThingsBoard规则引擎配置为:
如果警报已创建则向用户发送消息通知。
使用Script Transform节点将当前警报类型及其始发者添加到消息正文中。
我们假设你已完成以下指南并查看了以下文章:
在本节中我们将解释本教程中每个节点的用途:
The BotFather是主要的机器人可帮助你create新的bot并更改其设置。
Telegram Bot创建完成后为新Telegram Bot生成授权令牌 ‘110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw’。
先决条件:
在下一步中,我们需要获取一个Chat ID通过HTTP API发送 Chat ID。
有以下几种获取Chat ID的方法:
首先你需要向Bot发送一些消息:
私有聊天;
Bot被添加为成员的组中。
ThingsBoard_Bot是Telegram Bot名称。
接下来,打开你的网络浏览器并输入以下网址:
https://api.telegram.org/bot"YOUR_BOT_TOKEN"/getUpdates
"YOUR_BOT_TOKEN" 必须替换为你的机器人的身份验证令牌, 例如:
https://api.telegram.org/bot110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw/getUpdates
从即将到来的数据中,你可以找到字段 ‘id’。这就是chat_id。
之后,你可以开始配置规则引擎以使用Rest API调用扩展。
在本教程中,我们使用了创建和清除警报教程中的规则链。
我们通过添加上述消息流部分中所述的节点,修改了规则链Create & Clear Alarms并将此规则链重命名为:Create/Clear Alarms & send notifications to Telgram。
以下屏幕截图显示了以上规则链的外观:
下载json文件以Create/Clear Alarms & send notifications to Telgram规则链。
下一节将向你展示如何从头开始修改此规则链。
在此规则链中你将创建2个节点如以下各节所述:
添加Transform Script 节点并将其连接到关联类型为Created的Create Alarm节点。
此节点将用于创建消息通知的正文。
模板必须具有2个参数:
chat_id;
text.
这是出站消息的示例:
{"chat_id" : "PUT YOUR CHOSEN CHAT_ID", "text" : "SOME MESSAGE YOU WANT TO RECEIVE"}
var newMsg ={};
newMsg.text = '"' + msg.name + '"' + " alarm was created for device: " + '"' + metadata.deviceName + '"';
newMsg.chat_id = 337878729; //has to be replaced by the actual chat id
return {msg: newMsg, metadata: metadata, msgType: msgType};
添加REST API Call节点并将其连接到关联类型为Success的Transform Script节点。
此节点将向配置的REST端点发送完整的消息payload。在我们的例子中它是Telegram REST API。
在本教程的范围内,我们将使用‘/sendMessage’动作路径来引用Telegram Bot API发送消息。
填写下表中输入的数据字段:
Field | Input Data |
Name | REST API telegram Call |
Endpoint URL pattern | https://api.telegram.org/bot"YOUR_BOT_TOKEN"/sendMessage |
Request method | POST |
Header | Content-Type |
Value | application/json |
对于发布设备遥测我们将使用Rest API遥测上传API。为此我们将需要复制设备Thermostat Home的访问令牌。
发布temperature = 99.创建警报:
curl -v -X POST -d '{"temperature":99}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"
**你需要将$ACCESS_TOKEN替换为实际的设备令牌**
你应该了解仅在创建警报的情况下,更新警报时不会将消息发送到Telegram App。
最后我们可以看到收到的消息具有正确的值:
另外你可以:
在Create and Clear Alarm节点中配置Alarm Details功能
通过添加警报部件以可视化警报来配置仪表板。
定义用于警报处理的其他逻辑例如:发送电子邮件。
请参阅另请参阅部分下的的链接,以了解如何执行此操作。
创建和清除警报:警报详细信息: 指南-了解如何在Alarm节点中配置Alarm Details功能。
创建和清除警报:配置信息中心 指南-了解如何将警报部件添加到仪表板。
发送邮件。
入门指南 - 这些指南提供了ThingsBoard主要功能的快速概述。
安装指南 - 了解如何在各种操作系统上安装ThingsBoard。
设备连接 - 了解如何根据您的连接方式或解决方案连接设备。
数据看板 - 这些指南包含有关如何配置复杂的ThingsBoard仪表板的说明。
数据处理 - 了解如何使用ThingsBoard规则引擎。
数据分析 - 了解如何使用规则引擎执行基本的分析任务。
高级功能 - 了解高级ThingsBoard功能。
开发指南 - 了解ThingsBoard中的贡献和开发。