首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【开源物联网平台】规则可视化改造方案

【开源物联网平台】规则可视化改造方案

作者头像
帐篷Li-AIOT-CPS-Token中转
发布2026-04-02 15:00:59
发布2026-04-02 15:00:59
960
举报
这里写自定义目录标题
  • 一、规则组件
    • 1.1 普通组件
    • 1.2 规则脚本节点
  • 二、el规则
  • 三、规则链
    • 3.1 规则名称
    • 3.2 规则请求参数
    • 3.3 规则请求Id
    • 3.3 规则传入的上下文对象
  • 四、触发点
    • 4.1 场景联动
    • 4.2 规则脚本
    • 4.3 触发类型
  • 五、上下文对象
    • 5.1 DefaultContext (默认上下文对象)
    • 5.2 BaseContext (上下文对象超类)
    • 5.3 MsgContext (规则脚本传递)
    • 5.4 SceneContext (场景联动传递)
  • 逐步整合场景和脚本规则,并替换掉
  • 统一触发函数入口,脚本和场景规则统一
  • 上下文对象统一,可多级流转

一、规则组件

1.1 普通组件
  • 逻辑组件

继承NodeSwitchComponent作为选择组件,返回值为选择组件的id或者tag值,可进行多路径分支的场景下。

继承NodeBooleanComponent作为布尔组件,返回值为 true 或者 false,可进行IF,WHILE,BREAK这类判断下使用。

继承NodeForComponent作为次数循环组件,返回的是一个int值的循环次数,可对一段表达式进行固定次数的循环操作。

  • 业务组件

一般继承NodeComponent这个类,处理固定的逻辑业务,对返回值无要求

1.2 规则脚本节点

可灵活修改业务逻辑,动态传递上下文对象的值

二、el规则

规则表达式。一切复杂的流程在LiteFlow表达式的加持下,都异常丝滑简便。

三、规则链

最小的执行单位,通过el规则编排多个逻辑组件和业务组件形成一条规则链。

3.1 规则名称

作为规则存储的key值,执行时,使用该值来从map中获取对应的规则并执行。

3.2 规则请求参数

为了简化执行,该值不使用,通过初始化上下文对象来传递初始值。

3.3 规则请求Id

requestId/traceId:用于日志记录和执行调试使用。相当于给规则链打了tag。

3.3 规则传入的上下文对象

作为规则链的入参和执行过程中参数传递的对象。 在执行前,通过传递初始化的上下文对象,传入入参。 在执行过程中,通过设置上下文对象值,传递值。 除了定义好的属性参数外,可以通过ctx.setData(“属性名”,“属性值”)方法放入自定义属性数据,通过ctx.getData(“属性名”)方法获得数据

四、触发点

调用规则的地方,一般会根据之前设置的触发规则来筛选需要执行的规则链,

4.1 场景联动
  • 设备上下线触发点 (emqx的上下线回调hook)
  • 数据上报 事件上报触发点
  • mq设备上线状态触发点
4.2 规则脚本
  • 设备上下线触发点 (emqx的上下线回调hook)
  • 数据上报触发点
  • http桥接入口,mqtt桥接入口触发点
  • tcp数据下发 mqtt数据下发触发点
  • 内部mqtt客户端 上报消息的触发点
  • netty-mqtt 服务器 上报消息触发点
  • tcp服务器 上报消息触发点
  • 定时下发消息触发点
4.3 触发类型
  • 设备触发(属性,事件,功能,上下线)
  • 产品触发(属性,事件,功能,上下线)
  • 定时触发 定义cron规则来触发规则执行。
  • 自定义触发 一键触发, 触发条件不满足业务需求时。通过规则名称和初始化好的上下文对象来执行规则。

五、上下文对象

5.1 DefaultContext (默认上下文对象)

通过DefaultContext中的setData方法放入数据,通过getData方法获得数据

5.2 BaseContext (上下文对象超类)

用于存放业务规则常用的属性

5.3 MsgContext (规则脚本传递)

用于规则脚本执行过程的参数

5.4 SceneContext (场景联动传递)

用于场景联动执行过程的参数

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这里写自定义目录标题
  • 一、规则组件
    • 1.1 普通组件
    • 1.2 规则脚本节点
  • 二、el规则
  • 三、规则链
    • 3.1 规则名称
    • 3.2 规则请求参数
    • 3.3 规则请求Id
    • 3.3 规则传入的上下文对象
  • 四、触发点
    • 4.1 场景联动
    • 4.2 规则脚本
    • 4.3 触发类型
  • 五、上下文对象
    • 5.1 DefaultContext (默认上下文对象)
    • 5.2 BaseContext (上下文对象超类)
    • 5.3 MsgContext (规则脚本传递)
    • 5.4 SceneContext (场景联动传递)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档