Skip to content

ThingsBoard 规则链:check alarm status ​

正文与配图来自原稿。本篇起按节点拆解规则链;今天讲筛选器的第一个节点 check alarm status(检测告警状态)。

1、概述 ​

从今天开始,专门讲解 ThingsBoard 的规则链:每一个节点都会详细讲解,并配套案例。本篇节点是 check alarm status,意思是检测告警状态。

2、节点理解 ​

2.1、概述 ​

check alarm status 节点如图所示:

check alarm status 节点配置

配置项含义
名称给这个节点命名
Alarm status filter按告警状态过滤。可选:激活未确认、激活已确认、清除未确认、清除已确认
说明对该节点的描述信息

2.2、解释四种告警状态 ​

用温度传感器举例:当温度大于 80℃ 时产生告警。假设温度到了 90℃,并已在设备配置(Device Profile)里配好告警规则(后续专栏会细讲),设备告警列表里就会出现一条告警。

状态含义(结合例子)
激活未确认刚产生告警,还没人点「确认 / 应答」。默认往往是这个状态
激活已确认管理员已点击确认,表示已知晓,但现场尚未处理完、告警仍处于激活
清除已确认现场处理完后再清除告警,表示这次故障已处理
清除未确认觉得不重要,直接点清除、未先确认;也可能是清除流程与确认状态组合后的结果

流程可以概括为:产生告警 →(可选)确认 → 处理现场 → 清除。

3、案例实操 ​

演示思路:先触发一条告警;点击应答(确认)后告警仍是激活的,走「激活」一侧的 log;若点击清除,则走「清除」一侧的 log。

3.1、创建设备配置 ​

创建温度传感器设备配置,取名为 temperature sensor:

创建设备配置 temperature sensor

3.2、创建设备 ​

创建温度传感器设备 temperatureSensorA,设备配置选择 temperature sensor:

创建设备 temperatureSensorA

3.3、配置告警规则 ​

在 temperature sensor 设备配置的详情页配置告警规则(对这一类设备生效):

设备配置详情中的告警规则入口

添加告警规则:

添加告警规则

对遥测字段 temperature(数字类型)设条件:当 temperature 大于 80 时触发告警:

按 temperature 大于 80 触发

条件类型用默认的 简单:表示 temperature 一次大于 80 就触发告警:

条件类型:简单

最终告警规则结果如下(告警规则后续还会专题讲解):

告警规则配置结果

3.4、规则链添加 check alarm status ​

判断当前设备是否存在 激活未确认(按你筛选器勾选的状态)的告警:有则走 log 打印,没有则走 script 等另一分支,例如:

规则链中的 check alarm status

4、测试 ​

用 MQTTX 模拟设备:

MQTTX 连接与主题

模拟上报温度 90℃,触发告警:

上报 temperature=90 触发告警

告警由 device profile 节点参与触发:设备配置里配的告警规则,会在规则链处理消息时由 device profile 相关逻辑执行。

device profile 与告警触发

点击 应答 表示已收到告警,再观察规则链走哪条分支:

告警列表中点击应答

应答之后通常只剩 清除 按钮:

应答后仅剩清除

查看规则链中「激活」一侧的 log:

激活分支 log 节点

应答(确认)后会再次驱动规则链:走到「告警是否仍激活」的判断。只应答、未清除时,筛选结果为 True,进入激活侧 log:

确认后走 True / 激活 log

注意 ​

本案例把 check alarm status 挂在 message type switch 的 Alarm Acknowledged(告警已确认) 出口上:只有告警确认类消息才会进入该节点。确认后若告警仍激活 → True →「激活」log;若已清除 → False →「清除」log。

挂在 Alarm Acknowledged 出口上


补充(辅) ​

  • 四种状态是「是否激活」与「是否确认」的组合,写规则前先想清楚要过滤哪一类。
  • 告警规则挂在 Device Profile 上,对同配置下的设备统一生效。
  • 确认 / 清除会改变告警状态,从而改变本节点 True / False 出口;入口消息类型也要对(如 Alarm Acknowledged)。

相关文章 ​