Skip to main content
Version: 3.2.1

规则引擎介绍

什么是规则引擎

规则引擎是基于事件开发的一个易于使用的工作流的框架;主要有3个组成部分:

  • 消息 - 事件接收;它可以来自设备、设备生命周期事件、REST API事件、RPC请求等传入的数据。
  • 规则节点 - 消息处理;对接收的数据进行过滤、转换或者执行。
  • 规则链 - 关联消息;接收上一节点的出站消息将其发送至下一个节点。

应用场景

规则引擎是一个高度可定制的框架用于复杂事件的处理。以下是一些可以通过规则链配置的常见用例:

  • 在保存到数据库之前对接收的遥测数据或属性进行验证和修改。
  • 将遥测或属性从设备复制到相关资产以便可以汇总遥测。例如:可以将多个设备中的数据汇总到相关资产中。
  • 根据定义的条件对报警进行创建、更新、清除。
  • 根据设备生命周期事件触发操作。例如:如果设备处于在线/离线状态,则创建警告。
  • 调用外部系统的REST API,例如通过调用查询第三方业务系统接口获取返回数据。
  • 发生复杂事件时发送电子邮件、短信等。
  • 根据定义的条件进行RPC调用,实现设备联动
  • 集成第三方消息队列,例如:Kafka,MQ等,实现数据转发

简单示例

您可以使用小波物联平台将二氧化碳传感器采集的浓度值进行收集。

在本教程中,我们将配置物联平台规则引擎来存储100至300ppm范围内的所有浓度时序数据。

添加CO2浓度值验证节点

请参考以下两个章节,创建二氧化碳设备:

创建设备

设备接入和上报数据

arch

1.进入物联平台中的【规则链库】,点击【根规则链】

arch

2.拖动 【脚本】 规则节点放入链中并配置如下脚本:

return msg.CO2 >= 100 && msg.CO2 <= 300;

arch

如果二氧化碳浓度有效则脚本将返回True,否则将返回False。如果脚本返回True则传入消息将被关联到与True连接的下一个节点。

我们希望所有的遥测数据请求都通过此脚本进行验证.

3.删除【消息类型转化器】节点和【保存时序数据】节点之间的 Post Telemetry 关系节点,使用 Post Telemetry 将【消息类型转化器】节点和【脚本】节点进行连接。

arch

4.点击保存按钮应用更新。

验证结果

5.使用已创建的二氧化碳设备令牌,调用 HTTP设备API 接口提交遥测数据至平台

提交CO2 = 320的值,可以在设备详情信息中的最新遥测查看,发现未成功:

arch

arch

提交CO2 = 120,在设备详情中发现遥测数据保存成功

arch

arch