物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

在物联网(IoT)的应用中, 设备掉线、设备问题、温度告警等都会有产生告警和需要清除告警的功能需求。在Thingsboard, 有2个规则链节点, 可以做到产生告警Create Alarm和清除告警Clear Alarm。

设备离线告警

Thingsboard中判定一个设备下线有很多种,其中一种常用的就是,在一个确定的时间段内(比如1分钟内)没有收到设备的遥测信息,就判定设备下线,不再活跃了。
这段就是使用这个特征来检查设备下线。实现的功能简单明了,当设备下线后创建一个警告,当设备上线后,清除警告。

先介绍一些Thingsboard支持的事件类型

事件类型描述
Connect当设备连接到Thingsboard时触发该事件
Disconnect当设备断开连接时触发该事件
Activity当设备推送遥测、属性更新 或RPC指令
Inactivity当设备在一个特定周期没有活跃触发该事件

Thingsboard 有一些全局配置,thingsboard.yml配置文件。

  • state.defaultInactivityTimeoutInSec – 如果未报告任何活动,设备状态服务会将设备视为处于非活动状态的时间段。值以秒为单位设置。默认值为 600 秒(10 分钟)。用户可以通过设置inactivityTimeout服务器端属性(值以毫秒为单位设置)为单个设备覆盖此参数。
  • state.defaultStateCheckIntervalInSec – 设备状态服务定期检查设备活动状态的间隔。值以秒为单位设置。默认值为 60 秒(1 分钟)。
  • state.telemetryTtl – 活动遥测数据的生存时间值。值以毫秒为单位设置。默认值为 0 毫秒(表示生存时间机制已禁用)。
  • transport.activity.reporting_strategy – 传输活动报告策略。允许的值:ALL、FIRST、LAST、FIRST_AND_LAST。默认值为 LAST。
  • transport.sessions.report_timeout – 传输报告期的持续时间。值以毫秒为单位设置。默认值为 3000 毫秒(3 秒)。

告警的4种状态

告警有四种状态:已确认/未确认/活动/清除。

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

具体实现

1、创建一个设备,如Gary1

2、添加设备属性inactivityTimeout

类型为Integer,值为 3600000,单位是毫秒ms ,这个应该是1小时。该属性要用于检查设备的活跃超时时间,如果该设备没有在3600000毫秒内,发送遥测或更新属性,在触发设备的 Inactivity 事件。

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置
物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

3、配置规则链

创建Create Alarm 节点

在名字这里输入 Create Inactivity Alarm 告警类型(Alarm type)输入 Inactivity TimeOut

勾选 Propagate alarm to Tenant

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置
物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

创建Clear Alarm 节点

在名字这里输入 Clear Inactivity Alarm 报警类型输入 Inactivity TimeOut

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置
物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

官网参考链接

验证:

发一条遥测数据,然后等待5分钟后,会看到一条告警。

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

1小时后,就产生了告警。

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

再次上报数据, 会自动清除这条告警。

告警涉及到的数据库表有3个:alarm 、alarm_comment、 alarm_type 。

alarm表: 其中每次告警产生和清除记录都在alarm 表中;

alarm_comment表: 告警评论, 在界面上对一个告警发表评论,记录在此表comment字段, 通过alarm_id,关联alarm表;

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置
物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

alarm_type表: 租户中配置了多少个告警,type字段 和 alarm表中的type字段对应,也就是创建告警节点中的Alarm type

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

清除告警的API: /api/alarm/{alarmId}/clear

所有的告警, 在租户页面中的告警页面有记录显示,也能创建仪表板形成你需要的内容。

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置

系列文章

物联网开源平台开发系列001 – 开源平台Thingsboard 介绍

物联网开源平台开发系列002 – Thingsboard 用户系统分析

物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆

物联网开源平台开发系列004 – Thingsboard的实体、资产、设备一般说明及数据存储 – 陈皮王五de杂记

物联网开源平台开发系列005 – Thingsboard的API简述 – 陈皮王五de杂记

物联网开源平台开发系列006 – 在Thingsboard内创建一个设备 – 陈皮王五de杂记

物联网开源平台开发系列007 – Thingsboard的批量导入设备 – 陈皮王五de杂记

物联网开源平台开发系列008 – 浅谈物联网传输协议 – 陈皮王五de杂记

物联网开源平台开发系列009 – Thingsboard服务器对IoT设备下发指令 – 陈皮王五de杂记

物联网开源平台开发系列010 – Thingsboard规则引擎简介 – 陈皮王五de杂记

物联网开源平台开发系列011 – Thingsboard规则节点Originator Telemetry – 陈皮王五de杂记

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置 – 陈皮王五de杂记

物联网开源平台开发系列013 – Thingsboard 遥测产生告警Alarm – 陈皮王五de杂记

物联网开源平台开发系列014 – Thingsboard遥测时序数据存储结构及分区策略 – 陈皮王五de杂记

物联网开源平台开发系列015 – Thingsboard postgresql数据库基本配置 – 陈皮王五de杂记

物联网开源平台开发系列016 – 再谈Thingsboard的设备注册 – 陈皮王五de杂记

物联网开源平台开发系列017 – Thingsboard的设备联动场景 – 陈皮王五de杂记

物联网开源平台开发系列018 – Thingsboard获取和处理天气信息 – 陈皮王五de杂记

物联网开源平台开发系列019 – Thingsboard设备数据传播给资产 – 陈皮王五de杂记

物联网开源平台开发系列020 – Thingsboard的实体视图Entity View – 陈皮王五de杂记

物联网开源平台开发系列021 – Thingsboard的网关gateway – 陈皮王五de杂记

物联网开源平台开发系列022 – 通过Thingsboard网关gateway动态创建设备 – 陈皮王五de杂记

物联网开源平台开发系列023 – Thingsboard设备列表仪表盘 – 陈皮王五de杂记

物联网开源平台开发系列024 – Thingsboard接入摄像头方案 – 陈皮王五de杂记

物联网开源平台开发系列025 – Thingsboard规则链节点的JS代码调试 – 陈皮王五de杂记

原创文章,作者:Gary,如若转载,请注明出处:https://www.cpw5.top/880.html

淘宝小店:陈皮王五工作室

(0)
GaryGary
上一篇 2025-02-13 下午1:55
下一篇 2025-02-15 下午4:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(20条)