如何延迟清除 ThingsBoard 警报?
How do I delay clearing a ThingsBoard alarm?
我在 ThingsBoard 中有一个规则链,它会在温度超出阈值时创建警报,否则会清除警报。当这些事件发生时,我会使用 Telegram 机器人收到一条消息。一切正常。
然而,当温度在阈值附近徘徊时,我会收到许多通知,因为它进入和离开阈值温度。这有点烦人。
我希望清除警报 activity 仅在自上次创建警报事件被触发后超过 5 分钟(比方说)时触发。
关于如何实现这一目标的任何提示?
我终于弄明白怎么做了。
我向我的设备添加了一些服务器属性,用于定义触发警报的温度。我有一个规则链,用于使用以下节点控制这些警报:
- 丰富 - 发起者属性 将相关属性添加到与此消息关联的元数据中
- 过滤器-脚本检测温度是否超出预期范围
- 过滤器-脚本检测自上次触发警报后延迟时间是否已过期
- 操作 - 当脚本检测到温度超出范围时创建警报
- 操作 - 当脚本检测到延迟期已过时清除警报
- 转换 - 脚本 更新上次报警时间属性
- 操作 - 保存属性以保留更新的警报时间属性
- 转换 - 脚本 以创建有关警报设置或清除的消息
- 规则链 处理将消息发送到 Telegram 机器人
作为示例,这里是在清除警报之前检查延迟时间是否已过期的脚本:
var alarmTime = Number(metadata.ss_lastWaterTempAlarmTime);
var alarmDelay = Number(metadata.ss_clearAlarmTimeDelay);
return metadata.ts >= alarmDelay + alarmTime;
ss
是为已添加到元数据的服务器端属性添加的前缀。
你可以在我的 Aquamon 仓库中看到完整的 rule chain json。
我在 ThingsBoard 中有一个规则链,它会在温度超出阈值时创建警报,否则会清除警报。当这些事件发生时,我会使用 Telegram 机器人收到一条消息。一切正常。
然而,当温度在阈值附近徘徊时,我会收到许多通知,因为它进入和离开阈值温度。这有点烦人。
我希望清除警报 activity 仅在自上次创建警报事件被触发后超过 5 分钟(比方说)时触发。
关于如何实现这一目标的任何提示?
我终于弄明白怎么做了。
我向我的设备添加了一些服务器属性,用于定义触发警报的温度。我有一个规则链,用于使用以下节点控制这些警报:
- 丰富 - 发起者属性 将相关属性添加到与此消息关联的元数据中
- 过滤器-脚本检测温度是否超出预期范围
- 过滤器-脚本检测自上次触发警报后延迟时间是否已过期
- 操作 - 当脚本检测到温度超出范围时创建警报
- 操作 - 当脚本检测到延迟期已过时清除警报
- 转换 - 脚本 更新上次报警时间属性
- 操作 - 保存属性以保留更新的警报时间属性
- 转换 - 脚本 以创建有关警报设置或清除的消息
- 规则链 处理将消息发送到 Telegram 机器人
作为示例,这里是在清除警报之前检查延迟时间是否已过期的脚本:
var alarmTime = Number(metadata.ss_lastWaterTempAlarmTime);
var alarmDelay = Number(metadata.ss_clearAlarmTimeDelay);
return metadata.ts >= alarmDelay + alarmTime;
ss
是为已添加到元数据的服务器端属性添加的前缀。
你可以在我的 Aquamon 仓库中看到完整的 rule chain json。