Local Energy Management System · 本地能源管理系统
面向分布式能源、微电网与储能柜场景的轻量级本地 EMS 运行平台
在线体验 · English README · 快速开始 · 界面预览 · 参与贡献
LEMS 是一套面向分布式能源、微电网、储能柜和边缘能源网关场景的本地能源管理系统。它把 PCS、BMS、电表、光伏、负荷、GPIO 等异构设备接入同一套运行时中,通过插件化的驱动、协议、策略和数据服务,完成设备接入、实时监控、告警处理、策略控制、自动化联动、电价管理以及对外数据集成。
它不是一个只看图表的“监控页面”,而是一套可以真实部署在边缘控制器、工业网关、工控机或现场服务器上的 EMS 运行平台。
在一个典型的分布式能源项目里,现场常常同时存在:
- 不同厂家的 PCS、BMS、电表、光伏、负荷等设备
- 不同通信方式和工业协议
- 不同控制逻辑、运行约束和策略目标
- 需要上送到上层平台的遥测、告警和运行数据
LEMS 解决的正是“设备多、协议杂、数据散、控制难”的问题。它把这些能力收敛到一套统一系统里:
- 向下对接设备:通过驱动和协议插件接入现场设备
- 向中统一模型:把设备点位、状态、告警、策略放到统一运行时
- 向上提供能力:通过 Web、MQTT、Modbus TCP、日志和统计接口对外服务
下图展示了储能场景下的本地 EMS 组网方式,可用于储能柜、多柜联机和边缘采集网关部署。
下图展示了微电网场景下风、光、储、荷与上层触控屏、云平台、APP 的协同接入方式。
柜级详情用于展示储能柜内部拓扑、运行状态与趋势图。
系统提供统一功能入口;实时数据页面向运维人员展示设备状态、子设备结构与关键测点。
告警页适合查看当前故障与历史问题,日志页适合定位通信、推送与运行过程中的细节。
统计分析页用于设备对比与趋势分析;远程管理页可管理 MQTT / Modbus 等对外服务。
这些页面体现了系统不仅能“看”,还能“配”“控”“管”。
系统页可查看 CPU、内存、磁盘、网络流量和运行时长等信息,适合部署后的运维巡检。
- 插件化驱动体系:便于扩展不同品牌、型号和物模型的现场设备
- 插件化协议体系:当前仓库已包含
Modbus(TCP/RTU)、CANBus、GPIO等能力 - 实时监控与告警:支持设备状态、功率、电量、SOC、时间戳、告警记录和历史日志查看
- 策略与自动化:支持微电网策略、储能策略、自动化任务和本地控制参数配置
- 电价与成本优化:支持时段电价配置,便于削峰填谷、峰谷套利和成本管理
- 对外集成能力:支持 MQTT 数据上送、Modbus TCP 数据导出和远程服务管理
- 边缘部署友好:适合部署在工业网关、工控机、边缘服务器等本地环境
- 内置 Web 管理界面:构建完成后可直接访问统一管理页面,并针对平板触控场景做了交互优化
- 储能柜 EMS:单柜运行、柜内设备联动、状态监控与功率控制
- 多柜联机 EMS:边缘网关统一管理多套储能系统
- 微电网 EMS:风、光、储、荷等设备统一接入和协调调度
- 集成网关:将现场异构设备数据整理后上送第三方平台
- 边缘运维平台:提供告警、日志、自动化任务、电价管理和系统状态查看
Pylon Tech US108BMSPylon Checkwatt储能相关驱动Elecod MACPCSStar Charge 100EPCSGPIO In/Out基础驱动Ammeter / PV / ESS / Load演示驱动
plugins/plug_protocols/p_modbusplugins/plug_protocols/p_canbusplugins/plug_protocols/p_gpiodservices/s_export_mqttservices/s_export_modbusservices/s_automationservices/s_priceservices/s_policy
当前仓库里的“算法”并不只是几条定时规则,而是由时段命中、策略参数模型、策略执行框架和预测算法接口共同组成。
- 时段与优先级命中:电价服务会先过滤启用配置,再按日期范围、时间范围和优先级选出当前生效的电价;跨天区间也能正确命中
- 本地策略参数模型:已暴露
SOC上下限、充放电效率、变压器容量、安全系数、需量控制、动态扩容等典型 EMS 决策参数 - 储能策略执行框架:支持日期范围、时间范围和按小时目标点位配置,执行时可结合设备列表、设备类型和当前状态进行控制分发
- 自动化联动机制:支持按时间和条件触发任务,将策略判断与现场动作联动起来
- 预测算法扩展接口:
@cpp/hexlib提供基于C++ / CGO的MPC + Kalman预测器接口,适合用于功率、负荷、发电量等时间序列预测
当前更准确的表述是:LEMS 已具备算法基础、策略框架和可扩展的预测能力,并为更复杂的微电网闭环优化和储能调度预留了扩展接口。
- 在线体验地址:https://lems.hexems.com/
- 管理员密码:
888888
建议使用平板横屏模式体验,当前项目的界面布局、触控操作和运维主流程已针对平板场景做了优化。
公开仓库克隆后,可以直接在 application/ 目录执行 go build。
- Go
1.25+ - 建议使用 Linux / macOS 开发环境
- 若启用 CGO 相关能力,建议安装
GCC或Clang
git clone git@github.com:OpenLoaf/OpenLEMS.git
cd OpenLEMSgo work synccd application
go build -o ./bin/lems .如果你想一次性校验整个 Go Workspace,可以在仓库根目录执行:
./script/build-workspace.shcd application
go run . --web=true --driver-path=resources/driver启动后默认可访问:
http://localhost:8000
cd application
go run . --web=true --demo=true --driver-path=resources/driver| 参数 | 简写 | 说明 |
|---|---|---|
--web |
-w |
启用 Web 服务 |
--demo |
- | 标记为演示模式 |
--driver-path |
-dp |
驱动文件目录 |
--device-name |
-d |
设备配置名称 |
--runtime-path |
-rp |
运行时数据库路径 |
--db-path |
-cp |
配置数据库路径 |
--language |
-l |
全局语言 |
--profile |
- | 配置环境,如 dev / prod |
--force |
- | 忽略 PID 检查强制启动 |
OpenLEMS/
├── application/ # 主程序入口、API、控制器、Web 服务
├── common/ # 通用接口、设备/协议基础类型、工具能力
├── plugins/
│ ├── plug_drivers/ # 设备驱动插件
│ ├── plug_protocols/ # 通信协议插件
│ ├── plug_policy/ # 策略插件
│ ├── plug_push/ # 推送插件
│ └── plug_storages/ # 存储插件
├── services/ # 服务编排层,如驱动、自动化、电价、远程导出
├── docs/ # 项目说明与截图资源
└── script/ # 工作区构建与校验脚本
./script/build-workspace.sh驱动采用插件模式组织。可以优先参考以下目录中的已有实现:
plugins/plug_drivers/bms/plugins/plug_drivers/pcs/plugins/plug_drivers/ess/plugins/plug_drivers/gpio/plugins/plug_drivers/demo/
如果你想扩展协议或数据对接能力,建议优先阅读:
plugins/plug_protocols/p_modbusplugins/plug_protocols/p_canbusservices/s_export_mqttservices/s_export_modbusservices/s_automationservices/s_price
欢迎提交 Issue 和 Pull Request。
提交前建议先阅读:
本地校验命令:
./script/build-workspace.sh
./script/test-workspace.sh- 合作邮箱:
zz@hexems.com
如需项目合作、方案咨询、私有化部署或技术交流,可通过邮箱联系,或扫码添加微信:
本项目采用 AGPL-3.0-only 许可证。


















