一、组件概述

1.1 组件定位

Maxthings Rule-ECA 是面向物联网场景的事件驱动型ECA(Event-Condition-Action)规则引擎,为Maxthings AIoT平台原生核心组件。区别于通用Java编排框架(LiteFlow、Activiti)、通用业务规则引擎(Drools),本引擎专为物联网设备消息流、弱网/断网场景、云边协同自控设计

引擎核心能力:事件触发、条件过滤、智能判断、设备控制、数据流转、云边双端热执行、离线自愈,实现业务逻辑配置化、零代码/低代码落地,无需开发改代码即可实现设备自动化联动。

1.2 核心特性总览

  • 标准ECA模型:统一 事件(Trigger)-条件(Condition)-动作(Action) 闭环执行模型

  • 云边一体化:云端配置、一键下发边缘、断网本地独立执行、联网日志回传

  • 热更新无停机:规则新增/修改/删除实时生效,无需重启平台、无需重启网关

  • IoT专属算子:原生支持防抖、滞回、时间窗口、延时执行、状态锁存

  • 全链路可追溯:每条设备事件绑定唯一TraceID,执行节点、结果、耗时、异常全记录

  • 脚本安全隔离:内置JS沙箱,超时熔断、权限隔离,杜绝脚本阻塞服务

  • 高并发低延迟:基于MQTT事件驱动,非轮询,毫秒级响应,支持海量设备消息吞吐

1.3 适用业务场景

  • PAYGO设备:欠费自动锁机、缴费自动解锁、到期告警、分期风控

  • 光储充EMS:电池超温/过压保护、光伏富余充电、负载联动切除

  • 工业传感:温度/湿度/压力阈值告警、信号防抖、异常持续判定

  • 设备生命周期:上下线通知、离线超时告警、设备状态同步

  • AI视觉联动:AI识别事件触发设备开关、告警、录像

二、核心工作原理

2.1 核心执行模型(ECA标准模型)

引擎采用业界IoT标准 ECA三元闭环模型,所有规则统一遵循:事件触发 → 条件校验 → 动作执行,无事件不执行、条件不满足不动作。

  • Event事件(入口):规则的触发源,只有事件到达才会启动规则链路,彻底摆脱轮询开销

  • Condition条件(逻辑层):对事件数据、设备状态、时间窗口进行组合判断,过滤无效触发

  • Action动作(结果层):条件匹配成功后执行的设备控制、数据处理、告警、转发行为

2.2 底层调度架构(DAG有向无环图)

Rule-ECA 内部将每一条可视化规则编译为 DAG有向无环图 执行链路,而非线性脚本:

  • 支持串行、并行、分支判断、延时等待、循环统计、子规则嵌套

  • 节点独立可插拔,每一个条件/动作都是独立算子

  • 单节点异常熔断,不影响整条规则、不影响全局引擎

执行优先级:事件接收 → 上下文封装 → DAG拓扑排序 → 逐节点执行 → 结果归档

2.3 完整消息流转链路

设备上报/MQTT事件 → 平台消息总线 → 事件过滤器 → 规则匹配器 → 构建事件上下文 → DAG节点依次执行 → 条件通过执行动作 → 日志入库/边缘缓存 → 结束

2.4 云边协同核心原理(引擎最大差异化优势)

Maxthings Rule-ECA 原生支持一套规则、双端运行,是适配野外弱网、断网自控的核心能力:

  1. 云端角色:规则可视化编排、版本管理、启停控制、全局日志汇总、规则下发推送

  2. 边缘网关角色:内置轻量化ECA解析执行器,本地消费设备MQTT消息、本地DAG调度、本地设备控制

  3. 断网自愈:网关缓存完整规则与设备状态,断网后完全脱离云端独立运行,锁机、保护逻辑不中断

  4. 联网同步:网络恢复后,边缘批量回传离线执行日志、异常记录、设备状态,保证云端数据一致性

  5. 热更新同步:云端修改规则后,自动推送边缘网关,动态加载新DAG链路,零重启、零停机

三、关键技术点详解

3.1 事件驱动调度技术(区别于通用编排引擎)

不同于LiteFlow等通用框架需要业务层手动触发执行,Rule-ECA内置原生IoT事件总线

  • 原生监听MQTT设备遥测、设备上下线、Cron定时、Webhook、AI事件

  • 事件主题精准匹配、设备ID过滤、事件类型过滤,减少无效规则调度

  • 单事件独立上下文,多设备事件完全隔离,无并发串扰

3.2 IoT专用智能算子技术

针对物联网传感器抖动、临界值跳变、瞬时异常等痛点,内置行业专属算子,无需开发者手写逻辑:

  • 防抖滤波:过滤短时间瞬时抖动信号,避免频繁重复触发规则

  • 滞回控制:上下双阈值判定,解决临界值反复启停问题(电池电压、温度保护核心依赖)

  • 时间窗口统计:支持5s/10s/30s窗口内最大、最小、平均、持续异常判定

  • 延时执行/取消:条件满足后延时执行,延时期间条件失效自动取消动作

  • 状态锁存:异常状态锁定,人工复位前保持锁定状态

3.3 脚本沙箱隔离技术

支持JS自定义复杂逻辑计算,同时保障引擎稳定性:

  • 独立沙箱运行,禁止文件读写、非法网络请求、阻塞死循环

  • 脚本执行超时自动熔断(默认500ms),防止拖垮整条规则

  • 脚本异常单独捕获记录,不影响其他节点执行

3.4 规则热更新与版本管理技术

  • 规则JSON持久化存储,修改后自动重新编译DAG拓扑

  • 云端/边缘双端缓存刷新,毫秒级生效

  • 支持版本回滚、规则启停、灰度下发

3.5 全链路追踪技术

每一条设备上报事件生成全局唯一TraceID,完整记录:

  • 事件触发时间、设备信息、原始点位数据

  • 每一个条件节点的判断结果(成功/失败)

  • 动作执行结果、耗时、异常堆栈

  • 云端/边缘执行标识,可区分运行环境

四、完整使用手册

4.1 规则结构总览

一条完整的Maxthings ECA规则由三部分组成:触发器(Trigger) + 条件组(Condition) + 动作组(Action)

4.2 触发器配置(规则入口)

4.2.1 支持的触发器类型

  • 设备遥测上报:指定产品/设备的指定点位上报数据时触发(最常用)

  • 设备生命周期:设备上线、离线、注册、注销触发

  • 定时触发:支持Cron表达式、固定间隔时间,用于周期性巡检、统计

  • Webhook外部触发:接收第三方HTTP回调触发规则

  • 子规则触发:依赖其他规则执行结果联动触发

4.2.2 触发过滤条件

可配置设备白名单、点位过滤、时间范围过滤,精准控制规则触发范围。

4.3 条件节点配置(逻辑判断)

4.3.1 基础条件

  • 数值比较:大于、小于、等于、不等于、区间范围内/外

  • 状态判断:设备在线/离线、点位空值/非空

  • 逻辑组合:AND/OR/NOT 自由组合多条件

4.3.2 IoT高级条件(核心特色)

  • 防抖判定:持续N秒满足条件才触发,过滤瞬时异常

  • 滞回判定:设置上下阈值,防临界震荡

  • 时间窗口:固定时长内统计判定

  • JS表达式:自定义复杂计算公式、多点位联动判断

4.4 动作节点配置(执行结果)

4.4.1 设备控制动作

  • RPC指令下发:远程锁机、解锁、启停设备、参数配置

  • 设备属性修改:更新设备云端状态、标签

4.4.2 数据处理动作

  • 点位数据清洗、换算、偏移修正

  • 写入时序数据库、历史数据归档

  • MQTT消息转发、消息广播

4.4.3 业务联动动作

  • 生成设备告警记录、分级告警

  • HTTP回调业务后端,联动订单/计费/用户系统

  • 执行子规则、触发二次联动

4.5 云边部署配置

4.5.1 执行模式选择

  • 仅云端执行:适合联网稳定设备、纯云端统计、告警场景

  • 云边双端执行:默认推荐,云端管控、边缘离线兜底,适配野外PAYGO、光储充

4.5.2 规则下发操作

规则保存启用后,点击【下发边缘】,平台自动将规则DAG推送至指定网关,网关实时加载生效,无需重启。

4.6 规则启停与版本管理

  • 支持手动启用/禁用规则,禁用后不触发、不执行

  • 自动记录规则修改版本,支持一键回滚

  • 支持规则复制、批量导入导出、分组管理

4.7 日志与调试

  • 规则执行日志:可按设备、时间、执行结果筛选

  • Trace追踪:输入事件ID,可视化查看每一个节点执行详情

  • 实时调试模式:开启后可实时打印规则触发、条件判定、动作执行详情,快速排错

五、典型业务配置示例

5.1 示例1:PAYGO欠费自动锁机(云边离线可用)

触发器:设备上报欠费状态点位

条件:设备欠费=true AND 设备在线 AND 持续5s稳定

动作:下发RPC锁机指令、生成欠费告警、记录锁机日志

云边能力:断网后网关本地检测状态,自动执行锁机,杜绝欠费设备离线逃逸

5.2 示例2:电池超温保护(滞回防震荡)

触发器:电池温度点位上报

条件:温度≥55℃(触发阈值),滞回5℃,回落至50℃以下解除

动作:停止充电、推送高温告警、记录异常数据

六、性能与稳定性指标

  • 单规则调度耗时:<1ms

  • 单网关并发处理能力:1000+设备消息/秒

  • 规则热更新生效延迟:<1s

  • 异常隔离率:100%,单节点故障不影响全局

  • 断网执行可靠性:100%,弱网/离线场景逻辑零中断

七、常见问题FAQ

Q1:规则修改后是否需要重启服务?

不需要,引擎支持全自动热加载,云端、边缘均无需重启,实时生效。

Q2:边缘断网后规则会不会失效?

不会。边缘网关本地缓存完整规则与执行状态,断网后独立闭环执行,联网后自动同步日志。

Q3:传感器数据抖动导致规则频繁触发怎么解决?

使用引擎原生防抖、滞回、时间窗口算子,无需开发代码,一键配置即可解决。

Q4:和LiteFlow、JetLinks的区别?

LiteFlow是通用业务编排框架,无IoT事件、无云边、无设备能力;JetLinks是重型完整IoT平台,无法轻量化嵌入;Maxthings Rule-ECA是专为物联网设备自动化、云边离线自控设计的原生ECA引擎,轻量化、场景专属、开箱即用。

Q5:JS脚本执行卡死怎么办?

引擎内置沙箱超时熔断机制,脚本超时自动终止并记录异常,不会阻塞规则引擎。

八、总结

Maxthings Rule-ECA 是一套轻量化、高可靠、云边一体、面向IoT专属场景的成熟规则引擎。基于标准ECA+DAG调度模型,补齐了通用Java编排框架的物联网短板,同时规避了开源IoT引擎过重、耦合度高、无法私有化轻量化部署的问题。

引擎可完全支撑PAYGO风控、光储充EMS、工业设备自动化、AI联动等核心业务,实现配置化开发、零代码自动化、弱网高可靠的物联网智能化能力。

Logo

一站式 AI 云服务平台

更多推荐