规则引擎介绍
什么是规则引擎
规则引擎是基于事件开发的一个易于使用的工作流的框架;主要有3个组成部分:
- 消息 - 事件接收;它可以来自设备、设备生命周期事件、REST API事件、RPC请求等传入的数据。
- 规则节点 - 消息处理;对接收的数据进行过滤、转换或者执行。
- 规则链 - 关联消息;接收上一节点的出站消息将其发送至下一个节点。
应用场景
规则引擎是一个高度可定制的框架用于复杂事件的处理。以下是一些可以通过规则链配置的常见用例:
- 在保存到数据库之前对接收的遥测数据或属性进行验证和修改。
- 将遥测或属性从设备复制到相关资产以便可以汇总遥测。例如:可以将多个设备中的数据汇总到相关资产中。
- 根据定义的条件对报警进行创建、更新、清除。
- 根据设备生命周期事件触发操作。例如:如果设备处于在线/离线状态,则创建警告。
- 调用外部系统的REST API,例如通过调用查询第三方业务系统接口获取返回数据。
- 发生复杂事件时发送电子邮件、短信等。
- 根据定义的条件进行RPC调用,实现设备联动。
- 集成第三方消息队列,例如:Kafka,MQ等,实现数据转发。
简单示例
您可以使用小波物联平台将二氧化碳传感器采集的浓度值进行收集。
在本教程中,我们将配置物联平台规则引擎来存储100至300ppm范围内的所有浓度时序数据。
添加CO2浓度值验证节点
请参考以下两个章节,创建二氧化碳设备:
1.进入物联平台中的【规则链库】,点击【根规则链】
2.拖动 【脚本】 规则节点放入链中并配置如下脚本:
return msg.CO2 >= 100 && msg.CO2 <= 300;
如果二氧化碳浓度有效则脚本将返回True,否则将返回False。如果脚本返回True则传入消息将被关联到与True连接的下一个节点。
我们希望所有的遥测数据请求都通过此脚本进行验证.
3.删除【消息类型转化器】节点和【保存时序数据】节点之间的 Post Telemetry 关系节点,使用 Post Telemetry 将【消息类型转化器】节点和【脚本】节点进行连接。
4.点击保存按钮应用更新。
验证结果
5.使用已创建的二氧化碳设备令牌,调用 HTTP设备API 接口提交遥测数据至平台
提交CO2 = 320的值,可以在设备详情信息中的最新遥测查看,发现未成功:
提交CO2 = 120,在设备详情中发现遥测数据保存成功