tangbao-he-rule-energy-helper 1.0.8

智能规则引擎 Node-RED 节点,支持逻辑告警规则与联动控制规则的云端下发、本地执行

npm install tangbao-he-rule-energy-helper

tangbao-he-rule-energy-helper

智能规则引擎 Node-RED 节点集,支持云端规则下发、本地缓存、实时执行与可视化规则管理。

功能特性

  • 云端规则同步:通过 MQTT 接收云端下发的规则配置、生效时间、点类型映射,支持热更新
  • 规则本地缓存:规则、时间配置、点类型映射持久化到本地 JSON,Node-RED 重启不丢失
  • 点值实时触发:接收边缘端点值上报,自动匹配关联规则并执行规则链
  • 可视化规则管理:双击 rule-energy-manager 节点即可查看、删除当前所有规则、时间配置和映射
  • 规则链引擎:支持生效时间判断、设备条件计算、控制输出、告警输出、告警恢复
  • 安全表达式:基于 AST 解析实现公式计算,拒绝 eval
  • 延迟执行支持:设备条件支持延迟判断,满足延时后才触发后续动作
  • 告警状态管理:告警触发后自动缓存状态,条件恢复时自动输出恢复消息

安装

cd ~/.node-red
npm install tangbao-he-rule-energy-helper

或本地安装:

cd ~/.node-red
npm install /path/to/tangbao-he-rule-energy-helper

节点说明

rule-energy-manager(规则管理)

接收云端下发的配置报文,解析并持久化到本地缓存。支持在节点编辑面板中可视化查看和管理规则。

支持的 rulePubType

类型 说明
ruleAndPointInfo 创建/更新规则及点位信息
edgeRelativeTime 生效时间配置
pointTypeRuleMapping 点类型与规则映射
deleteRule 删除规则

可视化面板功能

  • 查看当前规则列表(规则链、ID、类型、来源、生效时间)
  • 查看生效时间配置(名称、类型、时间段)
  • 查看点类型规则映射(点类型ID → 关联规则链)
  • 查看规则/时间配置 JSON 详情
  • 删除规则/时间配置/映射(带二次确认)

rule-energy-engine(规则执行引擎)

接收点值上报,匹配规则,执行规则链,输出控制/告警/恢复消息。

规则链执行流程

点值上报 → 反查 pointTypeId → 查映射找到关联规则 → 加载规则链
    → 生效时间判断 (effectiveTimeCmp)
        → 设备条件计算 (deviceCalculateCmp) [支持延迟]
            → 控制输出 (controlCmp) / 告警输出 (alarmCmp)

HTTP Admin API

模块运行时提供以下 REST API(供节点编辑面板使用):

方法 路径 说明
GET /rule-energy-manager/:id/rules 获取所有规则摘要
GET /rule-energy-manager/:id/rule/:chainName 获取单条规则详情
DELETE /rule-energy-manager/:id/rule/:chainName 删除规则
GET /rule-energy-manager/:id/times 获取所有时间配置
GET /rule-energy-manager/:id/time/:timeName 获取单条时间配置
DELETE /rule-energy-manager/:id/time/:timeName 删除时间配置
GET /rule-energy-manager/:id/mappings 获取所有点类型映射
DELETE /rule-energy-manager/:id/mapping/:pointTypeId 删除映射
GET /rule-energy-manager/:id/status 获取缓存状态统计
GET /rule-energy-manager/:id/cache-data?type=xxx 查看内存缓存数据
GET /rule-energy-manager/:id/persist-data?type=xxx 查看持久化文件数据

cache-data 参数: type 可选值 all(默认)、rulestimesmappingsalarmStates

persist-data 参数: type 可选值 all(默认)、rulestimesmappingsalarmStates

persist-data 返回字段:

  • filePath — 文件绝对路径
  • size — 文件大小(字节)
  • lastModified — 最后修改时间
  • content — 文件解析后的 JSON 内容
  • exists — 文件是否存在(不存在时返回)

支持查看的持久化文件:

  • rules.json — 规则数据
  • times.json — 时间配置数据
  • mappings.json — 点类型映射数据
  • alarm-states.json — 告警状态数据

缓存文件位置

缓存文件存储在 ~/.node-red/rule-cache/ 目录下:

  • rules.json — 规则缓存
  • times.json — 时间配置缓存
  • mappings.json — 点类型映射缓存
  • delays.json — 延迟状态缓存
  • alarm-states.json — 告警状态缓存

示例流

examples/ 目录下的示例文件。

开发

npm test

许可证

MIT

Node Info

Version: 1.0.8
Updated 4 days ago
License: MIT
Rating: not yet rated

Categories

Actions

Rate:

Downloads

895 in the last week

Nodes

  • rule-energy-manager
  • rule-energy-engine

Keywords

  • node-red
  • rule-engine
  • alarm
  • linkage
  • iot

Maintainers