规则引擎

规则引擎

概述

规则引擎通过配置规则,对设备数据流和事件进行实时处理或定时分析,实现异常检测,设备联动,数据处理等功能

规则

规则主要包含了如下定义

  • 资源: 这条规则应用的账号,产品,设备以及属性等
  • 触发类型: 即触发规则的数据类型
  • 通知对象: 即规则触发后需要通知的对象和详细信息

关联资源

  • 所属企业号,必须
  • 产品,必须
  • 设备,不指定则为应用到该产品下所有设备
  • 属性/事件,不指定则为应用到该设备下所有属性或事件

规则触发类型

事件触发

设备上报指定类型的事件时触发

  • 事件名称
  • 事件数据值,不指定则只要有这个事件就触发

属性阈值触发

设备上报的属性值超过指定的阈值时触发

  • 属性名称
  • 属性阈值等级,必须指定

属性改变触发

设备上报指定属性值发生改变时触发

  • 属性名称
  • 最小改变值,不指定则只要有任何改变即触发

通知对象

表示规则触发后要通知的对象

  • 用户组, 通知消息会通过用户相关的联系方式发送给用户
  • 设备,需要指定需要联动的方法以及参数

阈值

阈值主要用于规则触发检测用,可以用来配置设备属性不同的异常等级。

阈值配置通常包括了:

  • 等级
  • 统计周期
  • 统计方法

概述

每个产品的每个属性都可以设置不同等级的阈值

只有上限指标,如 PM2.5 浓度

  • 0: - 无
  • 1 - 优: <= 50
  • 2 - 良: <= 100
  • 3 - 轻度污染: > 100
  • 4 - 中度污染: > 150
  • 5 - 重度污染: > 200
  • 6 - 严重污染: > 300

有上限和下限的指标,如 温度

  • -6 - 极寒: < -40
  • -5 - 酷寒: < -30
  • -4 - 严寒: < -20
  • -3 - 寒: < 0
  • -2 - 凉: >= 0
  • -1 - 温凉: >= 14
  • 0 - 温和
  • 1 - 温暖: <= 20
  • 2 - 暖: <= 22
  • 3 - 热: > 22
  • 4 - 炎热: > 25
  • 5 - 酷热: > 30
  • 6 - 极热: > 40

报警级别

平台将数值类指标分为正负 1 到 6 的等级,分别代表:优,正常,轻度,中度,重度,严重

可以设置的阈值有 -5,-4, -3, -2, -1, 1, 2, 3, 4, 5

  • 如果没有设置 -1, 则正常范围为 0阈值[1]
  • 如果有设置 -1, 则正常范围为 阈值[-1]阈值[1]
  • 上限
    • 严重: > 阈值[5]
    • 重度: 阈值[4] < Value <= 阈值[5]
    • 中度: 阈值[3] < Value <= 阈值[4]
    • 轻度: 阈值[2] < Value <= 阈值[3]
    • 正常: 阈值[1] < Value <= 阈值[2]
    • 最优: 0 < Value <= 阈值[1]
  • 下限
    • 严重: < 阈值[-5]
    • 重度: 阈值[-4] > Value >= 阈值[-5]
    • 中度: 阈值[-3] > Value >= 阈值[-4]
    • 轻度: 阈值[-2] > Value >= 阈值[-3]
    • 正常: 阈值[-1] > Value >= 阈值[-2]
    • 最优: 阈值[1] >= Value >= 阈值[-1]

检测周期

  • 周期时间: 需要用于检测的数据的时间范围
  • 选择方法: 对要检测的数据的统计算法
    • 总是
    • 平均值
    • 只要有一个值

阈值设置

可以分别对产品和设备设置阈值

产品阈值设置

该产品所有设备如果没有特别指定的话,则都使用产品设备的阈值

设备阈值设置

用户可以对每个设备的每个属性设置单独的阈值,因为现实中不同的设备的负载可能是不一样的,设置不同的阈值很有必要。

报警

检测到告警时,记录告警历史日志

  • 在沉默周期内只产生一条报警记录
  • 当报警状态改变时产生新的报警记录
    • 正常
    • 预警
    • 报警

报警属性

报警通常需要包含如下的属性

  • 状态
    • 预警
    • 正常
    • 报警
  • 报警级别
    • 优,良,轻度,中度,重度,严重
  • 发生时间
  • 发生地点
  • 发生设备
    • 产品名
    • 设备名
    • 设备 ID
  • 发生属性
    • 属性名
    • 属性标题
    • 属性值
  • 事件名称
    • 阈值超限,状态改变,事件
  • 详细内容
    • 设定的阈值

通知

通知时机

只有报警类型为报警时才发送通知

  • 通知沉默期,为了防止频繁通知,在沉默期内不再重复发送通知消息
    • 沉默周期,可以指定发送通知后指定周期时间为沉默期
    • 沉默时间段,可以指定一天内某个时间段为沉默期

通知方式

  • 通知方式
    • 邮件 - 用户需绑定邮箱地址
    • 微信 - 用户需关注并绑定微信公众号
    • 短信 - 用户需绑定手机号码

通知内容

  • 通知类型 - alert
  • 消息主题 - 发送的通知消息的标题
  • 通知内容 同告警历史日志
    • 发生时间
    • 发生地点
    • 发生设备
    • 发生的事件内容

报警通知消息

您好,有新的报警信息提醒,请及时处理
20/01/19

时间:15:05
位置:技术中心-水泵房
设备:智能电表-水泵电表1#
内容:A相电压最近平均值211V, 阈值设定上限值210V

预警通知消息:

您好,有新的预警信息提醒,请及时跟进
20/01/19

时间:15:05
位置:技术中心-水泵房
设备:智能电表-水泵电表1#
内容:A相电压最近平均值209V, 阈值设定上限值201V

通知确认

  • 报警通知需要有用户确认
  • 用户确认后将转为工单
  • 用户确认后去现场处理并反馈处理结果
  • 班长可以人为指派指定人来处理

事件回调

可以调用指定的方法

  • Webhook 发送通知时,同时调用指定的 HTTP URL 地址
  • 函数发送通知时,同时调用指定的函数

报警管理

统计指标

  • 安全运行天数
    • 所有设备连续未出现设备故障的情况。
    • 自然日叠加,一个自然日内不满24小时的不进行叠加。
    • 所统计的设备中有一个设备出现设备故障,此数据天数清零,重新计算。
  • 新增报警数
    • 天/周/月
    • 当天/周/月新增报警数
    • 含已解决及未解决
  • 状态开启个数
    • 查询时,状态为开启的数量
  • 各时段开启平均次数
    • 间隔为小时
  • 各时段平均数值
    • 间隔为小时
  • 状态开启次数排名
  • 峰值排名
  • 设备在线率
  • 离线率排名
  • 电量占比
  • 报警类型占比
  • 数值范围占比
image-modal