在ThingsBoard中配置Asset Inactivity Alarm的实现方案咨询
在ThingsBoard中配置Asset Inactivity Alarm的实现方案咨询
嘿,我来帮你梳理下在ThingsBoard里实现资产不活跃告警的具体步骤——刚好你已经有设备不活跃告警的基础,这个逻辑其实是同源的,只是要针对资产的特定遥测数据来做精准监控:
核心思路
你要的本质是:监控资产的目标遥测字段(比如你提到的温度)的最后更新时间,当超过15分钟没有新数据写入时,触发告警;一旦数据恢复,自动清除告警。下面给你两种可行的方案,优先推荐第一种原生方案:
方案一:用ThingsBoard原生「实体不活跃」节点(简单高效)
这是最省心的方法,直接用平台内置节点实现,不需要写额外脚本:
- 进入规则链页面,新建一个专门处理资产告警的规则链(或者在现有规则链里新增分支)
- 添加「实体不活跃」节点并配置:
- 实体类型选择
ASSET(资产) - 不活跃超时设置为 900000毫秒(也就是15分钟)
- 关键配置:在「检查遥测键」里填入你要监控的传感器字段,比如
temperature——这一步很重要,确保只针对传感器传来的特定数据做判断,而不是资产的其他无关活动 - 可选:如果你的资产有分类,可以添加「实体类型过滤」,只监控特定类型的资产
- 实体类型选择
- 连接到「创建告警」节点:
- 告警类型设为自定义的标识,比如
asset_telemetry_inactivity - 告警名称写清楚,比如「资产{{entityName}}温度数据超时未更新」
- 严重性选
WARNING或CRITICAL,根据你的需求来 - 告警详情可以填:「资产{{entityName}}已超过15分钟未收到传感器的温度数据,疑似传感器与设备断开连接」
- 告警类型设为自定义的标识,比如
- 配置告警自动清除:
- 添加「实体遥测更新」节点,监控资产的目标遥测字段(比如
temperature) - 把这个节点连接到「清除告警」节点,指定对应的告警类型(就是刚才设的
asset_telemetry_inactivity),这样一旦资产收到新的遥测数据,就会自动清除之前的告警
- 添加「实体遥测更新」节点,监控资产的目标遥测字段(比如
方案二:自定义定时器检查(适合复杂场景)
如果需要更灵活的逻辑(比如结合设备在线状态一起判断),可以用定时器定期扫描:
- 添加「定时器」节点,设置每5分钟执行一次(不用太频繁,避免性能浪费)
- 连接到「实体查询」节点,查询所有需要监控的资产(或者按类型过滤)
- 连接到「脚本」节点,编写JS脚本检查遥测最后更新时间:
// 获取资产最新的温度遥测时间戳 var lastTempUpdate = metadata.entityLatestTelemetry?.temperature?.ts || 0; var now = Date.now(); // 判断是否超过15分钟 if (now - lastTempUpdate > 900000) { // 标记需要触发告警 return {msg: {}, metadata: metadata, msgType: 'NEED_ALARM'}; } else { // 标记需要清除告警(如果存在) return {msg: {}, metadata: metadata, msgType: 'CLEAR_ALARM'}; } - 添加「脚本过滤器」节点,分别过滤出
NEED_ALARM和CLEAR_ALARM的消息,对应连接到「创建告警」和「清除告警」节点即可
额外注意事项
- 先确认你的设备规则链已经正确把传感器数据转发到对应资产的目标遥测字段上——这是基础,不然告警逻辑会失效
- 测试时可以手动断开一个传感器,等15分钟看告警是否触发;恢复传感器后再检查告警是否自动清除
- 如果需要通知相关人员,可以在「创建告警」节点后添加「发送通知」节点,配置邮件、短信或者企业微信等推送方式
备注:内容来源于stack exchange,提问作者betelgeuse
相关产品推荐
相关产品推荐

