Skip to content

规则编辑器 ​

页面导读 ​

适用场景适合通过可视化节点配置设备触发、条件判断、消息转发和自动化执行流程。
前置条件产品物模型、设备变量、触发条件、执行动作和消息目标已提前梳理。
操作路径新增规则 → 拖拽触发节点 → 配置条件/动作 → 保存 → 发布 → 查看日志。
验收点规则处于激活状态,触发数据命中条件,执行日志记录成功且目标动作生效。

功能概述 ​

规则引擎编辑器由顶部工具栏、左侧节点列表、编辑区域、右侧组件配置组成。

功能概述页面截图

一、工具栏 ​

常见的执行操作,例如删除、导出、放大、缩小、保存、发布、流程、案例和帮助等。

  1. 保存:用于保持前端数据,保存后默认该条规则引擎处于禁止状态。
  2. 发布:点击发布后,该条规则引擎处于激活状态。
  3. 日志:可以查看规则执行日志。
  4. 流程:可查看当前节点和连线的数据格式。
  5. 案例:存储了一些经典例子,供使用者参考。
  6. 帮助:列举了编辑器的使用说明。

二、节点列表 ​

包括输入输出、通讯节点和功能节点(后续可进行扩展)

2.1. 输入输出 ​

  1. 开始节点

    • 只做开始作用,不能连接它,同时不接受多条连线
  2. 结束节点

    • 只做结束作用,不主动连接别的节点

2.2. 通讯节点 ​

  1. 设备变量触发节点

    • 用于设置触发条件的设备物模型变量,配合条件组件使用。定义某个设备触发的某个属性,某个事件,某个功能,设备上下线等触发
    通讯节点页面截图
  2. 设备变量执行节点

    • 用于执行的设备物模型变量,设置某个设备的可写属性或者调用设备功能。
    通讯节点页面截图
  3. 产品变量触发节点

    • 用于设置触发条件的产品物模型变量,配合条件组件使用。定义某个产品下所有设备的某个属性,某个事件,某个功能,设备上下线等触发
    通讯节点页面截图
  4. 产品变量执行节点

    • 用于执行的产品下的物模型变量,设置某个产品下所有设备的可写属性或者调用设备功能。
    通讯节点页面截图
  5. 定时触发节点

    • 用于指定周期触发,定时执行执行规则任务
    通讯节点页面截图
  6. 自定义触发节点

    • 用于自定义触发key值,同时传入初始化参数,执行规则任务
    通讯节点页面截图

2.3. 功能节点 ​

  1. 条件节点

    • 使用时需先配置设备变量触发节点,根据设备变量触发节点中选择的变量生成对应的条件判断表达式
    功能节点页面截图
    • 条件节点连接多少个to节点就可以设置多个条表达式
    功能节点页面截图
    • 连接了条件节点的to节点才可以设置触发条件
    功能节点页面截图
  2. 延迟节点

    • 用于延迟一定时间后执行,可以设置单位:毫秒,秒,分,时,天
    功能节点页面截图
  3. 告警节点

    • 用于告警执行和告警恢复动作
    功能节点页面截图
  4. 注释节点

    • 定义备注信息,无实际作用,只是为了方便用户查看

2.4. 桥接节点 ​

  1. http桥接节点 主要为输出侧的http桥接节点,用于推送http请求。

  2. mqtt桥接节点 主要为输出侧的mqtt桥接节点,用于发布mqtt消息。

  3. 数据库桥接节点 用于执行sql语句,支持多种数据源数据库。

2.5. 脚本节点 ​

用于编写groovy脚本,可灵活修改上下文对象属性,调试传递消息的格式和内容等

三、编辑区域 ​

这里的“编辑”指的是节点编辑区域,它是我们的主要编辑区域。 在编辑区域可以按照业务规则拖拉拽节点和连接节点,也可以随意除一条线,一个节点,也用鼠标左键选中一个节点,一条线,按下删除键即可删除。

三、编辑区域页面截图

四、组件配置 ​

右侧组件配置包括样式和属性,通过点击组件节点进行配置设置,不同的组件节点有不同的属性配置

  1. 线

    • 可以配置名称,没有实际意义只是一个标识
    四、组件配置页面截图
    • 设置线的类型和值
    四、组件配置页面截图
    • 线的类型分为普通路径、选择路径、true(if路径) 和 false(if路径)

      a. 普通路径: 默认选择
      b. 选择路径: 条件节点连线大于两条
      c. true(if路径):条件节点连线等于两条
      d. false(if路径):条件节点连线等于两条

  2. 节点

    • 不同的节点会展示不同的属性设置,根据功能需求进行设置
    四、组件配置页面截图

五、规则设计模板 ​

设计规则时建议先写清楚“触发条件、处理逻辑、输出动作、失败处理”,再进入编辑器拖拽节点。

环节需要确认示例
触发来源设备变量、设备状态、定时、自定义触发温度上报、设备离线
条件判断变量、操作符、阈值、时间窗口温度大于 60
数据处理脚本、格式转换、补充字段转换单位、拼接消息
输出动作告警、通知、桥接、设备指令生成告警并推送 HTTP
防抖策略触发频率、重复通知限制5 分钟内只通知一次
异常处理脚本失败、桥接失败、通知失败记录日志并重试

六、验收与排错 ​

验收项正常表现
规则启用规则列表中状态为启用
触发节点设备上报后规则能进入执行链路
条件节点true/false 或选择路径符合预期
脚本节点脚本无报错,上下文对象正确
桥接节点HTTP/MQTT/数据库等目标收到数据
告警节点告警记录或恢复记录生成
日志失败时可定位节点和错误信息

七、二次开发入口 ​

类型路径或接口说明
前端页面vue3/src/views/ruleengine/editor规则编辑器页面
前端页面vue3/src/views/ruleengine/list规则列表
后端接口/rule/chain、/rule/node、/rule/cmp规则链、节点和组件接口
后端接口/ruleview/parser规则视图解析
脚本逻辑springboot/fastbee-open-api、规则相关服务规则执行与上下文处理
桥接模块/iot/bridge数据桥接配置

八、常见问题 ​

1. 规则没有触发? ​

检查设备数据是否进入平台、触发节点是否绑定正确产品和变量、规则是否启用。

2. 条件判断结果不正确? ​

检查变量数据类型。数值比较不要把数字当字符串比较,枚举和布尔值要使用物模型中的键值。

3. 脚本节点报错怎么办? ​

检查上下文对象字段是否存在,空值是否处理,脚本是否先验证通过再保存。

4. 桥接目标没收到数据? ​

检查桥接配置、网络连通性、鉴权参数、请求方法、目标服务日志和重试策略。

蜂信物联 | fastbee.cn