如何延迟清除 ThingsBoard 警报?

How do I delay clearing a ThingsBoard alarm?

我在 ThingsBoard 中有一个规则链,它会在温度超出阈值时创建警报,否则会清除警报。当这些事件发生时,我会使用 Telegram 机器人收到一条消息。一切正常。

然而,当温度在阈值附近徘徊时,我会收到许多通知,因为它进入和离开阈值温度。这有点烦人。

我希望清除警报 activity 仅在自上次创建警报事件被触发后超过 5 分钟(比方说)时触发。

关于如何实现这一目标的任何提示?

我终于弄明白怎么做了。

我向我的设备添加了一些服务器属性,用于定义触发警报的温度。我有一个规则链,用于使用以下节点控制这些警报:

  1. 丰富 - 发起者属性 将相关属性添加到与此消息关联的元数据中
  2. 过滤器-脚本检测温度是否超出预期范围
  3. 过滤器-脚本检测自上次触发警报后延迟时间是否已过期
  4. 操作 - 当脚本检测到温度超出范围时创建警报
  5. 操作 - 当脚本检测到延迟期已过时清除警报
  6. 转换 - 脚本 更新上次报警时间属性
  7. 操作 - 保存属性以保留更新的警报时间属性
  8. 转换 - 脚本 以创建有关警报设置或清除的消息
  9. 规则链 处理将消息发送到 Telegram 机器人

作为示例,这里是在清除警报之前检查延迟时间是否已过期的脚本:

var alarmTime = Number(metadata.ss_lastWaterTempAlarmTime);
var alarmDelay = Number(metadata.ss_clearAlarmTimeDelay);
return metadata.ts >= alarmDelay + alarmTime;

ss 是为已添加到元数据的服务器端属性添加的前缀。

你可以在我的 Aquamon 仓库中看到完整的 rule chain json