做储能集成的人常会撞上同一件事:储能一体机的 Modbus TCP 只肯吐 20 个地址,剩下三百多个是空的。你要每串电芯的温度、要 BMS 的告警位、要累计充放电量,地址表上都没有。厂商回复也很统一:文档没写,就是不支持。
那就只能一页一页啃手册:偏移量、数据类型、大小端、缩放系数。20 个寄存器能读出电压、电流、有功功率、SOC,够在面板上画四条曲线。够不够做策略?不够。
同一天里,GitHub 上还摆着另外两个数字。home-assistant/core 91,977 star,apache/plc4x 1,774,e2nIEE/pandapower 1,316。
最高的那个 91,977,和最低的 1,316,差近 70 倍。差的那部分不叫热度,叫门槛。
star 数衡量的是有多少人想动手,不是有多少事只有你能做。前者是需求,后者是位置。
真正抵得住技能贬值的,是协议驱动层和算法工具层——这两层 star 最少、门槛最高、中文内容最少。下面把这三层摊开。
一、star 数很准,只是它数的不是你以为的那件事
先别急着说 star 数不准——它一直很准,只是它数的东西,和你想数的不是同一件。
误会一:star 数等于项目分量。
KiCad 的 GitHub 仓库 kicad-source-mirror 是 3,112 star、775 fork。但官方主仓在 GitLab,GitHub 只是镜像。拿镜像的 star 去评价 KiCad 的分量,从方法上就是错的——它数的是“路过点了个 star 的人”,不是“用它画出板子的人”。
pandapower 1,316 star。这个数字在“新能源接入”类论文里出现的频率,比很多几万星的项目高得多。写论文的人不 star,他们引用。
误会二:开源等于免费商用。
这是唯一一个会真的让人赔钱的误会。许可证不是“开源/闭源”两分法,中间还有一层叫“源码可见但商用受限”,最典型的是 Business Source License。
误会三:开源替代商用卡在界面。
界面是最容易复刻的部分——两三个人排两周版式就出来了。真正卡住替代的是协议驱动:西门子、罗克韦尔、倍福,每家的寄存器布局、功能码、字节序都不一样;有的型号同一功能有三个地址,有的型号要握手才能读。plc4x 1,774 star 做的就是这件事,因为界面能抄,驱动只能一台一台试。
star 数记录的是有多少人想动手,门槛记录的是有多少人能动手。前者可以刷,后者刷不出来。
横轴是 star(对数),纵轴是上手门槛。左上一簇人少而难替代,右下一簇人多而先被消化。
下表只列许可需要留意的 5 个;不在表里的 home-assistant 与 node-red 为 Apache-2.0,pandapower 为 BSD-3-Clause,KiCad 为 GPL-3.0,均无附加商业限制。
| 项目 | star | 许可证 | 是否 OSI 认可开源许可 | 商用前必须先确认什么 |
|---|---|---|---|---|
| thingsboard | 22,639 | BUSL 1.1 | 否 | 商用 100 台/1 台服务器,须申领免费 key 并保留品牌;教育/非营利 1,000 台、服务器不限 |
| evcc | 7,519 | MIT,赞助专属组件除外 | 是,但有例外 | 分清哪部分是哪部分 |
| esphome | 12,015 | GPL-3.0(运行时)+ MIT(Python 侧) | 是 | 双许可边界 |
| openems | 1,614 | AGPL-3.0 | 是 | 对外分发或提供网络服务即触发开源;许可文件路径异常需确认版本 |
| plc4x | 1,774 | Apache-2.0 | 是 | 最省心,仍要核对依赖树 |
这张表不是法律意见,是把“免费”和“能商用”这两件事拆开看的第一步。
三层不是排版技巧,是这篇文章的判断载体:越往下,交付物越难被复核,也越难被替代。
二、入口层:谁都能上手,所以最先被吃掉
把这三层摊开,最上面那一层热闹得像集市——也正好是最先收摊的那一层。
入口层的共同点:交付物是一块屏幕。
home-assistant/core|91,977 star / 39,200 fork|Python|Apache-2.0|2026.11.0(11-04)发布:38 个新集成、5,827 个 PR、557 位贡献者
价值:把逆变器、电表、储能、充电桩、热泵接进同一面板,并按电价与发电量自动决策。
坑:中文内容还停在“装个灯”,实际上它已经是家庭能源操作面板;内置小米 miio、Aqara、涂鸦,但你得先有一块可读的电表。
替掉了什么:替掉“六个 App 各看一遍”。替不掉什么:你家电表到底能不能本地读数。
这组数字来自这次发布。它说明“接一个新品牌”已经被拆成流水线工序,任何人可以领一道去做。工序化的另一面就是可替换。 当一个项目的合并量大到这个程度,它对你的要求是“能领一道工序”,不是“能定一套架构”。
node-red/node-red|23,815 star / 4,022 fork|JavaScript|Apache-2.0|5.0.9(10-21)|现属 OpenJS Foundation,起源于 IBM
价值:拖拽模块,把 Modbus 电表、MQTT、HTTP、数据库串成采集流水线。
坑:它吃掉的是小型上位机软件里最简单的单点采集;时序存储与告警管理仍要自己补;这个话题已经被写尽。
替掉了什么:替掉“为一个点位写一段 C#”。替不掉什么:历史数据怎么存、点位掉线怎么判定、告警升级给谁。
thingsboard/thingsboard|22,639 star / 6,553 fork|Java|Business Source License 1.1(非 OSI 开源)|4.4.0.2(10-30)
价值:上千台电表、传感器、逆变器接进来,做看板、告警、规则联动。
坑:根许可是 BUSL 1.1,商业使用有附加限制,中文圈几乎没人提。4.4 起免费生产使用的上限是商用 100 台设备、1 台生产服务器;非商业用途(教育机构、非营利组织)是 1,000 台、服务器数量不限。免费额度不是配了就生效,投产前要在许可门户领一把免费 key;不领 key 的测试模式累计只有 30 天。超出额度、或者要去掉界面上的品牌标识,需要商业许可。每个版本发布 4 年后自动转 Apache-2.0。
替掉了什么:替掉自己写设备管理、规则引擎和看板。替不掉什么:许可合规这件事本身。
这一层的共同特征是:交付物是一块屏幕。而屏幕背后是谁算的,看屏幕的人不知道,也不关心。
入口层的天花板不在技术,在“这件事还需要人做多久”。
三、第二层 协议与设备层:卡脖子的地方,star 都不高
热闹到这里就断了:往下走一层,star 数掉一个数量级,而设备到底能不能接上,只在这一层决定。
这一层不卖界面,卖的是“能不能读出来”。
apache/plc4x|1,774 star / 514 fork|Java|Apache-2.0|11-04 仍有提交,Apache 顶级项目
价值:一套接口读西门子、罗克韦尔、倍福等不同品牌的 PLC,不必每家写一套驱动。
坑:驱动覆盖不齐,各品牌型号差异大,别指望开箱即用。三菱系走的是 SLMP 驱动,官方标的是部分实现——只覆盖 D、W、R 字设备,位设备和完整指令集还没做。同一个“支持”,能读的东西差很远。
替掉了什么:替掉“每接一个品牌就写一套协议栈”。替不掉什么:这一家的这个型号到底支持哪些功能码——那只能查手册、上机试。
esphome/esphome|12,015 star / 5,788 fork|C++(用户写 YAML)|双许可:运行时 GPL-3.0 + Python 侧 MIT|2026.10.2,11 月版在测
价值:把十几块钱的 ESP32 变成读电表、控继电器、接温度探头的采集器,不写一行 C。
坑:双许可的边界极少被讲清,商业硬件厂商集成时会犹豫;买板子之前先确认型号在支持列表里。
替掉了什么:替掉“为一块板子写固件”。替不掉什么:这一块板子的引脚定义、电平转换、供电怎么走。
注意一个反直觉的现象:这一层内部 star 也不均匀,esphome 12,015 是 plc4x 的六倍多。原因不在难度,在距离——esphome 离消费级硬件近,有人拿它点灯带;plc4x 离产线近,没人拿它做玩具。同一层里,谁离消费级近谁 star 多,谁离产线近谁 star 少。而产线上那部分,才是真正难替换的。
thiagoralves/OpenPLC_v3|1,577 star / 614 fork|C++|GPL-3.0|最后提交 2026-04-04,近 7 个月无更新
价值:把树莓派或普通 PC 变成能跑梯形图的 PLC,顶掉入门级工业控制器。
坑:教学可用,产线慎用;没有企业级背书,功能安全无从谈起。
替掉了什么:替掉“为了做实验买一台入门级控制器”。替不掉什么:停机窗口内的确定性。
怎么判断一个驱动到底通没通,不看 README 的品牌列表,看三件事:一,仓库里有没有针对该型号的用例,哪怕是仿真器跑的;二,issue 里搜这个型号,最近一次“成功读到”的报告是多久之前;三,驱动目录里这个型号的字段表,有没有注明依据哪一版手册。三条都过,叫通;只过第一条,叫“写了”;一条都不过,叫“在研”。
这一层学不到“通用技能”,只能学到“某台设备”。这听着像缺点,其实是这一层唯一的护城河——协议层没有“上手”这回事,只有“接通过”和“还没接通”。
四、第三层 算法与工具层:慢、冷、但抗贬值
接上设备只是把设备的话听懂;能不能替别人算出结论,是下一层的事——那一层的 star 更少。
这一层的四个项目方向完全不同,但交付物都不容易被外行复核。
e2nIEE/pandapower|1,316 star / 626 fork|Python|BSD-3-Clause(卡塞尔大学 + Fraunhofer IEE)|11-03 仍有提交,累计万余次提交
价值:几十行 Python 搭一张电网,做稳态分布与短路电流计算,替掉一部分手工建模。
坑:不是点一下出结果的软件,要先会建模;文档是学术语汇,工程口径得自己换算。
替掉了什么:替掉 Excel 里那张手算表。替不掉什么:你的模型对不对——这件事没人能替你负责。
站内此前写过它的用法:从装环境到算一次潮流,再到把短路电流换算成一张定值单。这三篇加起来,就是这一层“能交付”的样子。
evcc-io/evcc|7,519 star / 1,615 fork|Go|MIT(README 注明赞助专属组件不在 MIT 范围)|0.318.2(11-01)
价值:实时盯电表与逆变器,把光伏余电动态塞进电动车,全程局域网,不经过厂商云。
坑:MIT 之外有赞助专属组件;它解决的不是“充电”,是发电与用电之间的时间差套利。
替掉了什么:替掉厂商云那套固定时段充电策略。替不掉什么:你家的电价结构和你自己的作息。
算一笔账(以下电价为算例假设,不是任何地区的实际价格):10 kWp 屋顶,午间余电 4 小时约 20 kWh。直接上网按 0.4 元/kWh,约 8 元;充进车里替掉晚间同等电量,按晚间电价 0.6 元/kWh,约 12 元。一天差 4 元,一年 1,460 元。
这个数字不大。 这也正是这一层的特征:单点收益看起来很薄。但薄不等于不值——技能的价值不在单次收益,在复用次数,一件能用十次的东西,单次薄一点没关系。它是一段可以搬走的逻辑:同一套判断,换个对象就能用在储能柜和热泵上。搬得走的才叫资产。
OpenEMS/openems|1,614 star / 699 fork|Java|AGPL-3.0(许可文件未按常规路径命名,引用前必须确认版本)|2026.11.0(10-31)新增 3 款墙盒与动态电价多供应商支持
价值:给储能柜、光伏、充电桩、热泵配一个站点级能量大脑,算法跑在本地边缘盒子上,云端只做聚合。
坑:AGPL-3.0:改动后对外分发、或通过网络对外提供服务,就要开源你的修改;纯内部改动不触发。集成商因此在商业交付时会犹豫。
替掉了什么:替掉自己写站点级调度逻辑。替不掉什么:这一站的电价合同、负荷曲线和并网约束。
KiCad/kicad-source-mirror|3,112 star / 775 fork|C++|GPL-3.0(元件库 CC-BY-SA 4.0)|10.0.7(10-07)|官方主仓在 GitLab,GitHub 只是镜像
价值:画原理图、布 PCB、出 Gerber 的全流程免费 EDA,文件能直接送厂打样。
坑:元件库与代码是两套许可,不能混着写。
替掉了什么:替掉一套按年订阅的 EDA。替不掉什么:首板能不能过 EMC 的经验。
入口层让你看起来会做,这一层让你真的能交付。
这一层的交付物有同一个特点:别人复核不了。一张分布图、一段调度逻辑、一块板子——不懂的人只能看结论,不能看过程。这就是门槛的形状。
五、对号入座:三类人该往哪层投
所以真正的问题不是“哪个项目值得学”,而是“以你现在的身份,该从哪一层切进去”。
空心圈是多数人停留的位置,实心点是两周内该切进去的位置。
在校生(电气/自动化/计算机)。 大概率停在入口层:跑过面板、拖过流程。
该往算法与工具层补。两周动作是用 pandapower 搭 5 节点网络,改一个负荷,看电压怎么变。
交付物:一张分布图,加一段说清因果的文字。
应届 / 非科班转行。 大概率停在入口层,卡在“看不懂设备”。
该往协议与设备层补。两周动作是用 ESP32 + ESPHome 读到一块 Modbus 电表的 3 个寄存器,并接进面板。
交付物:面板截图、接线说明、支持型号的确认记录。
1–8 年在职工程师。 大概率停在平台层或协议层:公司已有系统,只会用不会改。
该往协议层深水区补,兼补算法层。两周动作是用 plc4x 连一台真实 PLC 或仿真器,读出 20 个变量。
交付物:一页品牌驱动差异记录。
选层不看难易,看这一层能不能产出别人复核不了的东西。
三个动作看着不同,判据是同一条:两周结束时,你手上得有一个能发给别人看的文件。不是“我大致懂了”,是一张图、一段记录、一页说明。
两周做不出一个能给别人看的结果,说明层选错了,不是你不努力。
那做不出来之后怎么办,只有三条路,别原地加时间。一,把交付物砍小:5 节点降到 2 节点,20 个变量降到 3 个,先要一个能贴出来的结果。二,换对象不换层:同一层换个设备、换个算例,卡点常常在那一个型号上,不在这层。三,承认这一层暂时切不进去,退回上一层补一次工具熟练度,两周后再切。三条的共同点是都不延长总时长——延长时间是最贵的做法,也是唯一不产生信息量的做法。
顺带说一句,这三个动作都有明显的失败点,而且失败点都在“你以为自己懂了”之后:pandapower 的失败点是建模口径换算错,图上看着正常,数值全偏;ESPHome 的失败点是买到不在支持列表里的板子;plc4x 的失败点是驱动没覆盖这台型号。三个失败点都不是能力问题,是选择问题。
六、四句话、一道判断题、一个问题
最后四句话,给还在犹豫要不要换层的人。
1. 先看许可,再看 star。许可证能把一个项目从“能用”变成“不能商用”,star 不能。
2. 先看有没有人留下过现场记录,再看有没有人写过教程。教程能批量生产,接线记录不能。
3. 项目 star 少不等于不值得学,只等于没人替你写教程——而没人写教程这件事,本身就是定价。
4. 判断一个项目值不值得投,问一句:它替掉的是一块软件,还是一个人的判断。替软件的会被下一个软件替掉,替判断的不会。
一道判断题:
一个项目 star 很高、教程很多、两周能出成果,但它的核心能力是“把别人的能力接起来”——你愿意把它当主业,还是当工具?
这道题没有标准答案,只有代价差别:当主业,你的位置取决于被接的那一方愿不愿意继续开放;当工具,你得另外找一件别人接不走的事。
你现在在哪一层?留言写一句你最近接不通的那台设备。下期先写哪一层,按评论区票数排。
热度会退,接口不会。
延伸阅读
站内同系列写过几个同类项目,可以连起来看:React 25 万星、n8n 把 AI Agent 搬上画布、yt-dlp 20 万星的命令行工具、OpenClaw 把 AI 助理装进自己的机器。它们都在这篇文章说的入口层——热闹,也最先被下一代工具替掉。
数据说明
本文所有 star / fork / 版本号数据抓取于 2026-11-05,来自各项目 GitHub 仓库页与 REST API;star 数会变化,你复看时数值可能不同。文中许可证描述基于各仓库根目录 LICENSE 文件(thingsboard 的 BUSL 1.1 条款与 esphome 的双许可说明另核对了项目官方许可页与 README),不构成法律意见。配图为本文自绘示意图与 AI 生成封面,不含任何厂商商标。
默认评论
Halo系统提供的评论