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

发布时间:2026/5/27 15:43:59

【开源物联网平台】规则可视化改造方案 这里写自定义目录标题一、规则组件1.1 普通组件1.2 规则脚本节点二、el规则三、规则链3.1 规则名称3.2 规则请求参数3.3 规则请求Id3.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可进行IFWHILEBREAK这类判断下使用。继承NodeForComponent作为次数循环组件返回的是一个int值的循环次数可对一段表达式进行固定次数的循环操作。业务组件一般继承NodeComponent这个类处理固定的逻辑业务对返回值无要求1.2 规则脚本节点可灵活修改业务逻辑动态传递上下文对象的值二、el规则规则表达式。一切复杂的流程在LiteFlow表达式的加持下都异常丝滑简便。三、规则链最小的执行单位通过el规则编排多个逻辑组件和业务组件形成一条规则链。3.1 规则名称作为规则存储的key值执行时使用该值来从map中获取对应的规则并执行。3.2 规则请求参数为了简化执行该值不使用通过初始化上下文对象来传递初始值。3.3 规则请求IdrequestId/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 (场景联动传递)用于场景联动执行过程的参数

相关新闻