ThingsBoard 规则链:check alarm status
正文与配图来自原稿。本篇起按节点拆解规则链;今天讲筛选器的第一个节点 check alarm status(检测告警状态)。
1、概述
从今天开始,专门讲解 ThingsBoard 的规则链:每一个节点都会详细讲解,并配套案例。本篇节点是 check alarm status,意思是检测告警状态。
2、节点理解
2.1、概述
check alarm status 节点如图所示:

| 配置项 | 含义 |
|---|---|
| 名称 | 给这个节点命名 |
| Alarm status filter | 按告警状态过滤。可选:激活未确认、激活已确认、清除未确认、清除已确认 |
| 说明 | 对该节点的描述信息 |
2.2、解释四种告警状态
用温度传感器举例:当温度大于 80℃ 时产生告警。假设温度到了 90℃,并已在设备配置(Device Profile)里配好告警规则(后续专栏会细讲),设备告警列表里就会出现一条告警。
| 状态 | 含义(结合例子) |
|---|---|
| 激活未确认 | 刚产生告警,还没人点「确认 / 应答」。默认往往是这个状态 |
| 激活已确认 | 管理员已点击确认,表示已知晓,但现场尚未处理完、告警仍处于激活 |
| 清除已确认 | 现场处理完后再清除告警,表示这次故障已处理 |
| 清除未确认 | 觉得不重要,直接点清除、未先确认;也可能是清除流程与确认状态组合后的结果 |
流程可以概括为:产生告警 →(可选)确认 → 处理现场 → 清除。
3、案例实操
演示思路:先触发一条告警;点击应答(确认)后告警仍是激活的,走「激活」一侧的 log;若点击清除,则走「清除」一侧的 log。
3.1、创建设备配置
创建温度传感器设备配置,取名为 temperature sensor:

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

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

添加告警规则:

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

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

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

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

4、测试
用 MQTTX 模拟设备:

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

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

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

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

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

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

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

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