一、概述
1.概念
以下警报的主要概念:
发起者
警报发起者是警报的实体例如:如果ThingsBoard收到来自它的温度读数并因读数超过阈值而引发“HighTemperature” 警报则设备A是警报的发起者。
类型
警报类型有助于确定警报的根本原因例如:”HighTemperature”和”LowHumidity”是两个不同的警报。
级别
警报支持级别如下:Critical, Major, Minor, Warning或Indeterminate(按优先级降序排序)。
生命周期
ThingsBoard创建警报时可能处于活动或已清除状态并保留开始和结束时间,警报默认将开始时间和结束时间设置成相同如果警报触发条件重复将更新结束时间,当警报清除条件匹配时自动清除警报,报警清除条件是可选项用户可以手动清除警报。
警报的状态除了有活动和清除外还会跟踪是否已经人为确认过警报通过仪表板或实体详细信息选项卡进行警报确认。
有4个”状态“字段:
活动未确认(ACTIVE_UNACK) - 警报未清除且尚未确认
活动已确认(ACTIVE_ACK) - 警报未清除但已确认
清除未确认(CLEARED_UNACK) - 警报已清除但尚未确认
清除已确认(CLEARED_ACK) - 警报已清除并确认
标识
ThingsBoard根据发起者、类型和开始时间的组合做为警报的判断依据,因此在相同时间点只能有一个相同的发起者、类型和开始时间的活动警报。
假设已配置警报规则以便在温度大于20时创建”HighTemperature”警报;此外还配置了警报规则以便在温度小于或等于20时清除”HighTemperature”警报。
假设事件序列如下:
12:00 - 温度等于18
12:30 - 温度等于22
13:00 - 温度等于25
13:30 - 温度等于18
因此应该创建一个”HighTemperature”警报开始时间=12:30结束时间=13:00。
2.告警规则
ThingsBoard3.2及以上版本引入警报规则进行简化配置过程而无需通过规则引警进行配置只需要使用”Device Profile”即可,因为在以前的版本中需要一定的编程技巧才能完成。
警报规则包含以下属性:
Alarm Type - 警报类型在规则内唯一标识
Create Conditions - 定义created/updated警报的条件须由以下属性组成:
Severity - 用于create/update警报,ThingsBoard按照严重级别的降序验证条件,例如:级别是Critical并且条件为true时只会产生Critical警报并不会产生”Major”、”Minor”或”Warning”条件的警报,每个警报的Severity必须唯一。(例如:同一个警报规则中创建的两个条件不能有相同的Severity)
Key Filters - 使用attributes或telemetry的值逻辑表达式,例如:”(temperature < 0 OR temperature > 20) AND softwareVersion = ‘2.5.5’“
Condition Type - 简单、持续时间或重复, 例如:如果在连续3次或5分钟内匹配第一个事件,触发简单条件并发出警报
Schedule - 定义规则处于活动状态的时间间隔,“始终启用”、“定时启用”或“自定义启用”
Details - 通过${attributeName}语法的警报的详细信息模板
Clear condition - 定义清除警报的条件
Advanced settings - 定义警报传播到相关资产、客户、租户或其他实体
3.简单报警条件
温度高于36度时创建Critical警报。
步骤1. 打开设置配置
步骤2. 单击警报规则
步骤3. 单击警报条件
步骤4. 单击过滤条件
步骤5. 选择数据键
步骤6. 设置条件
步骤7. 保存条件
步骤8. 应用更改
4.测试告警
告警温度设置为37,而我们之前配置的温度大于或等于36就会报警
{
"temperature": 37
}
1、使用MQTT发送遥测属性
Topic主题
v1/devices/me/telemetry
数据体
{
"temperature": 37
}