YunIOT平台文档
  • 背景介绍
  • 平台介绍
    • 产品架构
    • 产品特点
    • 产品优势
    • 设备和应用接入
    • 部分应用案例
    • 名词解释
    • 特色
      • 特点
      • 系统角色
      • 实体和关系
      • 设备属性
      • 遥测数据
      • 设备警报
      • 物联网设备接入
      • 设备连接状态
      • 物联网设备管理
      • 系统水平可伸缩性
      • 系统容错
  • 平台入驻
    • 注册登录
  • 快速入门
    • 业务使用全流程
    • 使用模拟器体验全流程
  • 设备接入
    • 创建设备
  • 管理后台
    • 业务租户
    • 客户管理
    • 客户用户
    • 场地设施
    • 设备管理
      • 网关管理
      • 中继管理
      • 终端管理
      • 设备分布
      • 远程升级
    • 实体视图
    • 仪表组件
      • 组件库部件包
      • 开发自定义组件
    • 数据仪表
    • 操作日志
    • 流量监控
  • 规则引擎
    • 什么是规则引擎?
    • 规则引擎概述
    • 数据规则引擎
    • 规则链功能节点
      • Filter
      • Enrichment
      • Transformation
      • Action
      • 外部节点
  • 组态控件
    • 图表控件
    • GPIO控件
    • 地图控件
    • 输入框控件
    • 自定义控件
    • 实体管理控件
    • 实时监控控件
    • 异常报警部件
    • 控制开关控件
    • 数字仪表控件
    • 卡片相关控件
  • 创建可视应用界面
    • 设备实践
  • 应用开发指南及协议API
    • MQTT协议
    • Yun-IOT后台服务HTTP接口
由 GitBook 提供支持
在本页
  • 典型实例
  • Hello World 实例

这有帮助吗?

  1. 规则引擎

什么是规则引擎?

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

  • Message - 事件接收;它可以来自设备、设备生命周期事件、REST API事件、RPC请求等传入的数据。

  • Rule Node - 消息处理;对接收的数据进行过滤、转换或者执行。

  • Rule Chain - 关联消息;接收上一节点的出站消息将其发送至下一个节点。

典型实例

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

  • 在保存到数据库之前对接收的遥测数据或属性进行验证和修改。

  • 将遥测或属性从设备复制到相关资产以便可以汇总遥测。例如:可以将多个设备中的数据汇总到相关资产中。

  • 根据定义的条件对alarms进行创建、更新、清除。

  • 根据设备生命周期事件触发操作。例如:如果设备处于在线/离线状态,则创建警告。

  • 加载所需的其他处理数据。例如:在客户设备或租户属性中定义的设备的playload温度阈值。

  • 调用外部系统的REST API。

  • 发生复杂事件时发送电子邮件并使用“电子邮件模板”中其他实体的属性。

  • 在事件处理期间要考虑用户的偏好。

  • 根据定义的条件进行RPC调用。

  • 集成第三方消息队列例如:Kafka,Spark,AWS等。

Hello World 实例

你可以使用云平台将DHT22温度传感器采集的-40°C至+ 80°C温度值进行收集。

在此教程中我们将配置在云平台规则引擎来存储-40至80°C范围内的所有温度,并将所有数据记录到系统日志中。

添加温度并验节点

进入平台中规则链库存转到Root Rule Chain.

拖动Script Filter 规则节点放入链中并配置如下脚本:

return typeof msg.temperature === 'undefined' 
        || (msg.temperature >= -40 && msg.temperature <= 80);

如果未定义温度属性或温度有效则脚本将返回True,否则将返回False。如果脚本返回True则传入消息将被关联到与True关系连接的下一个节点。

我们希望所有的telemetry requests都通过此脚本进行验证. 删除Message Type Switch节点和Save Telemetry节点之间的Post Telemetry关系节点。

将Message Type Switch节点和将Script Filter使用Post Telemetry进行连接:

将Script Filter节点与Save Telemetry节点使用关系True进行连接:

将Script Filter节点与Log Other节点使用关系False进行连接这样无效数据将被记录在系统日志中:

点击保存按钮应用更新。

验证结果

创建设备并将遥测数据上接入上传到DDA-IOT云平台,点击Devices并创建新的设备:

可以使用设备令牌进行Rest API提交遥测数据提交:

提交temperature = 99的值,可以进行Latest Telemetry中查看,发现并未加成功:

curl -v -X POST -d '{"temperature":99}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"

*替换掉$ACCESS_TOKEN为实际设备的Token

提交temperature = 24可以看见遥测数据保存成功

curl -v -X POST -d '{"temperature":24}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"
上一页规则引擎下一页规则引擎概述

最后更新于4年前

这有帮助吗?