如何延迟清除ThingsBoard警报?

时间:2020-08-05 13:51:00

标签: thingsboard

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

但是,当温度徘徊在阈值附近时,当温度进出阈值温度时,我会收到许多通知。有点烦人。

我想让“清除警报”活动仅在触发上一个“创建警报”事件以来超过5分钟(例如)时触发。

有关如何实现此目标的任何提示?

1 个答案:

答案 0 :(得分:0)

我终于弄清楚了该怎么做。

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

enter image description here

  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