指南

ThingsBoard教程和指南。

创建和清除警报

用例

假设你的设备正在使用DHT22传感器来收集温度读数并将其推送到ThingsBoard。

DHT22传感器适用于-40至80°C的温度读数。如果温度超出范围,我们希望生成警报。

在本教程中,我们将配置ThingsBoard规则引擎以

  • 如果温度> 80°C或温度<-40°C创建或更新现有警报
  • 如果温度> -40°C且<80°C清除警报

先决条件

我们假设你已完成以下指南并查看了以下文章:

添加设备

在ThingsBoard中添加设备实体。它的名称为Thermostat Home其类型为Thermostat

image


消息流

在本节中,我们将解释本教程中每个节点的用途:

  • 节点A:Filter Script节点。
    • 通过温度阈值检查脚本并验证节:“如果温度在预期的间隔内则脚本将返回False否则将返回True”。
  • 节点B:Create alarm节点。
    • 如果发布的温度不在预期的时间范围内(过滤器脚本节点返回True)则创建或更新警报。
  • 节点C:Clear alarm节点。
    • 如果发布的温度在预期的时间范围内(脚本节点返回False)则清除警报(如果存在)。
  • 节点D: Rule Chain节点。
    • 将传入消息转发到指定的规则链Create & Clear Alarms


配置规则链

在本教程中我们修改了Root Rule Chain并创建了规则链Create & Clear Alarms


以下屏幕截图显示了以上规则链的外观:

  • 创建和清除警报:

image

  • 根规则链:

image


下载附件json文件以获取Create & Clear Alarms规则链。 如上图所示在根规则链中创建节点D,以将遥测转发到导入的规则链。

下一节将向你展示如何从头开始创建此规则链。

创建新的规则链(创建并清除警报

转到Rule Chains -> Add new Rule Chain

配置:

  • 名称 : Create & Clear Alarms

image

创建新规则链。点击Edit按钮进行配置。

添加所需的节点

在此规则链中,你将创建3个节点,如以下各节所述:

节点A: Filter Script
  • 添加Filter Script节点并将其连接到关联类型为SuccessInput节点。
    此节点将使用以下脚本验证:“温度是否在预期间隔内”:
return msg.temperature < -40 || msg.temperature > 80;

如果温度在预期的时间间隔内,则脚本将返回False,否则将返回True。

  • 输入名称Under Threshold

image

节点B: Create alarm
  • 添加Create alarm节点,并将其连接到关联类型为TrueFilter Script节点。

    如果发布的温度不在预期范围内(过滤器脚本节点返回True)则此节点将为消息发起方加载配置了警报类型的最新警报,即Thermostat Home

  • 输入名称Create alarm并在警报类型中输入Critical Temperature

image

节点C: Clear Alarm
  • 添加Clear Alarm节点并将其连接到关联类型为FalseFilter Script节点。
    此节点将为消息始发者Thermostat Home
    加载配置了警报类型的最新警报,如果发布的温度在预期范围内(脚本节点返回False)则清除该警报(如果存在)。

  • 输入名称Clear Alarm并在警报类型中输入Critical Temperature

image

修改根规则链

以下屏幕截图显示了初始“根规则链”。

image

初始规则链已通过添加以下节点进行了修改:

节点D: 规则链
  • 添加Rule Chain节点并将其连接到关联类型为TrueFilter Script节点。
    节点将传入消息转发到指定的规则链Create & Clear Alarms

  • 输入名称Create & Clear Alarms.

image


以下屏幕截图显示了最终的Root Rule Chain应该是什么样子:

image



如何验证规则链和遥测

对于发布设备遥测我们将使用Rest API遥测上传API。为此,我们将需要复制设备Thermometer的访问令牌。

image

**你需要将$ACCESS_TOKEN替换为实际的设备令牌**

点击Clear Alarm和Create Alarm节点中的调试模式按钮以验证结果。

image
image

发布temperature = 99后会创建警报:

curl -v -X POST -d '{"temperature":99}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"

image

发布temperature = 180后更新警报:

curl -v -X POST -d '{"temperature":180}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"

image

发布temperature = 30后会清除警报:

curl -v -X POST -d '{"temperature":30}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"

image


另外你可以:

  • 在Create and Clear Alarm节点中配置Alarm Details功能

  • 通过添加警报部件以可视化警报来配置仪表板。

  • 定义用于警报处理的其他逻辑例如:发送电子邮件。

请参阅另请参阅部分下第二到第四的链接,以了解如何执行此操作。


另请参阅

下一步

  • 入门指南 - 这些指南提供了ThingsBoard主要功能的快速概述。

  • 安装指南 - 了解如何在各种操作系统上安装ThingsBoard。

  • 设备连接 - 了解如何根据您的连接方式或解决方案连接设备。

  • 数据看板 - 这些指南包含有关如何配置复杂的ThingsBoard仪表板的说明。

  • 数据分析 - 了解如何使用规则引擎执行基本的分析任务。

  • 硬件样品 - 了解如何将各种硬件平台连接到ThingsBoard。

  • 高级功能 - 了解高级ThingsBoard功能。

  • 开发指南 - 了解ThingsBoard中的贡献和开发。