SteVe:13年开源充电桩管理系统获OCA认证

一个持续13年的开源坚持
在软件世界里,13年是一段极为漫长的时间。大多数开源项目在最初的热情消退后便逐渐停止维护,而 SteVe 却走出了一条罕见的长青之路——从2013年一位博士生的个人小项目,成长为如今 OCA(Open Charge Alliance)认证充电平台的开源核心。
近日,SteVe 的作者在 Reddit 的 r/selfhosted 社区分享了这一里程碑。对于不熟悉电动汽车充电领域的读者来说,充电桩需要连接后端软件来完成用户授权、记录充电会话、远程控制充电桩以及管理电力消耗等功能。这些通信依赖一个行业标准协议——OCPP(Open Charge Point Protocol),而 SteVe 正是为这一协议提供的自托管、开源服务器实现。
OCPP 由 Open Charge Alliance 制定和维护,定义了充电桩(Charge Point)与中央管理系统(Central System/CSMS)之间的标准通信方式。该协议经历了从 OCPP 1.2、1.5、1.6 到 2.0.1 的多次迭代。其中 OCPP 1.6 是目前全球部署最广泛的版本,支持基于 SOAP 和基于 WebSocket 的 JSON 两种传输格式。协议涵盖的功能场景极为丰富,包括远程启停充电(RemoteStartTransaction/RemoteStopTransaction)、心跳保活(Heartbeat)、固件升级(FirmwareUpdate)、计量值上报(MeterValues)、预约管理(ReserveNow)等数十种消息类型。正是这一协议的开放性和标准化,使得不同厂商的充电桩能够与不同的后端管理系统实现互联互通,而 SteVe 则为开发者和小型运营商提供了一个无需依赖商业供应商的实现选择。

SteVe 的定位:从个人需求到充电网络基础设施
作者回忆,SteVe 从第一天起就是自托管的:这是一套你可以下载、部署并在自有基础设施上运行的充电桩管理软件,充电数据始终掌握在使用者自己手中。这一理念在项目诞生之初便已确立,至今未变。
意料之外的社区成长
最初的项目范围相当有限。作者坦言,他并未预期 SteVe 会超出自己的使用场景太多。但事情的发展往往出人意料——人们开始使用它、报告问题、贡献改进,甚至用它来运营真实的充电网络。
如今,SteVe 在 GitHub 上拥有超过 1000 个 Star,成为 EV 充电这一细分领域中最受欢迎的开源项目之一。虽然 1000 这个数字在通用开发工具领域并不算惊人,但在电动汽车充电这样一个高度垂直、专业门槛极高的领域,它意味着 SteVe 已经成为事实上的社区标准之一。这个领域的参与者多为硬件制造商、能源公司和充电网络运营商,他们对软件可靠性和协议合规性的要求远高于一般应用场景,因此每一个 Star 背后往往代表着真实的生产环境部署。
开源内核与商业服务的分层模式
这段经历最终催生了 Powerfill——一个围绕 SteVe 构建的商业 SaaS 平台。Powerfill 将 SteVe 作为其 OCPP 核心,并在此基础上增加了托管运营能力以及面向充电网络运营企业的功能。
值得强调的是,SteVe 依然是一个独立的、采用 GPL 许可证的开源项目,任何人都可以自行托管。GPL(GNU General Public License)是一种强 copyleft 许可证,要求任何基于 GPL 代码的衍生作品在分发时必须同样以 GPL 许可证开源。对于 Powerfill 这样的 SaaS 服务而言,由于用户通过网络访问而非直接获得软件副本,在 GPL v2 下并不触发分发条款,这使得基于 GPL 代码构建商业托管服务成为一种合规的商业模式。
这种"开源内核 + 商业增值服务"的分层模式在业界有诸多成功先例:GitLab 以 MIT 许可证发布社区版并提供企业级托管服务;WordPress 以 GPL 授权核心代码,同时通过 WordPress.com 提供商业托管;Redis、MongoDB 等项目也曾探索类似路径(尽管后来因云服务商的"搭便车"问题而修改了许可证策略)。SteVe/Powerfill 的模式较为纯粹——开源项目保持完整独立,商业服务在此基础上叠加运维、技术支持和企业级功能,两者共生而不冲突。
OCA 认证对 OCPP 实现的验证意义
此次分享的核心里程碑,是 Powerfill 正式获得了 Open Charge Alliance(OCPP 协议背后的组织)颁发的 OCPP 1.6 认证。测试覆盖了充电桩基础通信、智能充电(Smart Charging)以及高级安全(Advanced Security)等关键领域。
OCA 认证是一个严格的合规性测试流程,旨在验证 OCPP 实现是否正确遵循协议规范。测试通常由 OCA 授权的测试实验室执行,使用标准化的测试用例集,覆盖协议规定的各种消息交互场景和异常处理逻辑。认证按功能模块分为不同的 Profile:Core Profile 验证基础的启停充电、状态上报等核心功能;Smart Charging Profile 验证动态功率管理能力;Advanced Security Profile 则验证 TLS 加密、证书管理等安全机制。通过认证意味着该实现能够与其他已认证设备实现可靠的互操作性,这对于商业部署至关重要——充电网络运营商通常需要同时接入来自 ABB、Schneider、Wallbox 等不同制造商的充电桩,如果后端系统未经认证,兼容性风险将难以评估。
其中,智能充电(Smart Charging)功能尤其值得关注。它允许中央管理系统通过下发充电配置文件(Charging Profile)来动态调整充电桩的功率输出,支持按时间段设置不同的最大功率限制。这一机制对电网负荷管理至关重要——当一栋办公楼停车场中数十个充电桩同时运行时,如果不加以协调,总功率可能瞬间超过建筑配电变压器的容量上限。智能充电还能与可再生能源发电预测和动态电价信号相结合,实现需求响应(Demand Response):在光伏发电高峰或电价谷值时段增加充电功率,在用电高峰时段降低或暂停充电,从而同时降低运营成本并支持电网稳定。
认证的边界与含义
作者对认证的适用范围表述得非常严谨:认证证书适用于经过测试的 Powerfill 产品,而非作为独立开源发行版的 SteVe。但由于 Powerfill 的 OCPP 实现依赖 SteVe,因此这实际上是对 SteVe 协议实现与行为的间接验证。
这种严谨态度本身就值得称道。在开源社区中,夸大认证范围、模糊商业产品与开源项目边界的现象并不罕见。SteVe 作者的做法既保护了开源项目的声誉,也如实反映了商业产品的合规成果。
对自托管充电桩管理的启示
SteVe 的故事对整个自托管和开源社区都有借鉴意义:
-
充电数据主权的价值:从设计之初就坚持自托管,让充电数据始终由运营者掌控。在数据合规日益重要的今天,这种理念更显前瞻性。充电会话数据包含用户身份信息、地理位置、充电时间分布和能耗记录等敏感信息,在欧盟 GDPR、中国《数据安全法》和《个人信息保护法》等法规框架下,数据的存储位置和控制权具有明确的法律意义。许多商业充电管理平台将数据托管于第三方云服务,运营商对数据的实际控制权有限且存在供应商锁定风险。自托管方案让运营者完全掌控数据的存储、访问、备份和销毁全流程,这对企业内部充电设施、涉及员工通勤隐私的场景,或对数据主权有严格要求的政府机构和关键基础设施运营商而言尤为重要。
-
长期主义的回报:一个不起眼的学生项目,经过13年的持续维护,最终成为作者职业生涯的重要组成部分。这提醒我们,持续性往往比初期规模更重要。在开源世界中,项目的长期维护记录本身就是一种信任资本——用户和贡献者选择依赖一个项目时,其可持续性是核心考量因素之一。
-
垂直领域的开源机会:并非只有通用工具才能形成社区,电动汽车充电等专业垂直领域同样存在开源标准化的巨大空间。随着全球电动汽车保有量的快速增长(截至2024年已超过4000万辆),充电基础设施的规模也在急剧扩张。这个市场中存在大量中小型运营商——物业公司、停车场运营商、企业园区等——它们需要可靠但成本可控的充电管理方案,而非大型商业平台的高额订阅费用。SteVe 填补的正是这一生态位。
结语
作者用一句略带感慨的话总结:"看到一个起步于小项目的东西,成为一个已认证商业平台的开源基础,是一种奇妙而有回报的感觉。"
从博士生的实验代码到 OCA 认证平台的核心,SteVe 的历程印证了开源软件最动人的一面——一份真诚的技术分享,可能在多年后长成远超预期的生态。对于关注 EV 充电、OCPP 协议或自托管充电桩管理的开发者而言,SteVe 无疑是一个值得研究的范本。
项目地址:SteVe on GitHub
相关推荐

17岁少年用C++从零构建深度学习框架Forge,精确复现GPT-2
17岁开发者从零用C++构建深度学习框架Forge,自研张量引擎、自动微分、BPE分词器等核心组件,加载GPT-2权重后实现与HuggingFace逐token精确一致的输出,展示了对Transformer底层机制的深度理解。

LayerProof Matte 3.0评测:一次批量生成50篇品牌社交内容
深度解析LayerProof Matte 3.0如何通过自动品牌套件构建,一次批量生成50篇符合品牌调性的社交媒体帖子、轮播和故事,覆盖SaaS、快消、餐饮等行业的内容需求。

用Claude为Windows专属打印机写macOS驱动:AI逆向工程实战
一位开发者利用Claude成功为只有Windows驱动的HP打印机编写macOS驱动程序。本文深入分析AI在硬件逆向工程中的角色,探讨LLM如何降低驱动开发门槛,为老旧设备续命。