ThingsBoard二次开发还是自研平台
要做储能、光伏或设备监控平台,用 ThingsBoard 二次开发还是完全自研?结合储能电站云平台项目,讲清两种方式适合的场景、不改核心代码的扩展做法、统计口径和策略下发要注意的地方。

本文目录
准备做设备平台的团队,十有八九会在某个阶段搜到 ThingsBoard。设备接入、遥测存储、规则链、告警、多租户、看板,开源版本里都有,部署起来也不难。问题通常出在第二个月:客户要按电站看收益,要峰谷电价,要给业主看的大屏,要按自己的格式导出报表,这些 ThingsBoard 都没有。
于是团队开始纠结:是在 ThingsBoard 上继续做,还是干脆自己写一套?
我们做过一个储能电站云平台,就是基于 ThingsBoard 二次开发的。下面按这个项目的经验,说说这两条路各自适合什么情况。如果你想先看完整做法,可以对照 ThingsBoard 二次开发服务 和 储能电站云平台案例。
先看需求和 ThingsBoard 的吻合度
判断标准其实很朴素:把需求逐条列出来,看有多少能用 ThingsBoard 原生能力配置出来。
通常能直接用的部分:
- 设备通过 MQTT、HTTP 或网关接入,遥测和属性存储
- 规则链做数据清洗、阈值告警、转发到外部服务
- 租户和客户两级隔离
- RPC 下发控制指令
- 给运维人员看的设备看板
通常要另外开发的部分:
- 行业统计,比如日充放电量、收益、能效
- 业务模板,比如电价时段、充放电策略
- 给客户和业主看的大屏和报表
- 和你自己的组织架构、审批流程、售后系统打通
如果前一类占了大头,二次开发会快很多。如果后一类才是主体,而且组织权限和 ThingsBoard 的"租户 - 客户"模型差别很大,自研反而省事,不用一直跟底座的数据模型较劲。
储能项目里我们怎么分工
那个储能项目,设备接入、遥测、告警和 RPC 都和 ThingsBoard 吻合,缺的是储能行业的业务功能。我们的分法是:
ThingsBoard 只做底座。设备数据、属性、告警、指令下发,全部走原生能力,不去改它的核心代码。
业务功能放到一个独立的 Spring Boot 服务。按设备、按日汇总充电量、放电量、电网取电量、负载用电量和收益;电价模板按尖峰平谷时段保存;充放电策略模板按时段配置充电、放电、待机和功率,可以按客户维护并下发。
前端在 ThingsBoard 的 Angular 工程里增加统计报表页面。导出报表时通过多数据源读底座的库,把租户、客户、设备的 ID 转成名称,业主拿到表格能直接看懂。
大屏单独集成了一个可视化设计器,支持 SQL、HTTP 和脚本数据集,做了单站大屏和监控大屏。常规的布局调整拖拽就能完成,不用每次都排前端。
这样分的好处很直接:ThingsBoard 以后要升级,业务服务基本不受影响。
为什么不建议直接改源码
直接改 ThingsBoard 源码,前期确实最快。加个实体、改个页面,照着官方代码抄一遍就行。
麻烦在后面。ThingsBoard 更新频率不低,每次升级都要把自己的改动重新合并进去,改动越多越痛苦。我们接触过一些团队,改到最后不敢升级,安全补丁也打不上,平台就停在某个老版本。
所以我们的原则是:能配置就配置,能用 API 和规则链解决就不碰核心代码,行业功能写在外面。
统计口径一定先写下来
储能平台最容易返工的地方,不是页面,而是数字对不上。
日充放电量按哪个时区算,一天从几点切,收益公式里有没有需量电费,电价时段改了以后历史数据要不要重算,这些都要先和客户写成文档确认,再开发报表。不然上线后业主拿自己的电表一核对,差一点就得全部重来。
策略下发要看设备回读
充放电策略、参数修改这类指令,平台显示"下发成功"只代表消息发出去了,不代表设备真的执行了。我们的做法是策略下发后等设备回读确认,界面以设备实际状态为准。这一点在 储能设备管理系统开发方案 里也有更多展开。
什么情况更适合自研
说了这么多二次开发的好处,也有几种情况我们会建议自研:
- 组织层级很深,比如厂家、经销商、门店、终端用户四五层,权限规则复杂
- 业务流程是主体,设备只是其中一环,比如工单、库存流转、售后结算
- 对界面风格和交互要求很高,ThingsBoard 的前端框架反而是负担
- 设备规模和数据量很大,需要针对性的存储和查询设计
我们做的 BMS 云平台 就属于自研的情况:电池从工厂到 PACK 厂、经销商再到终端用户,每层权限都不同,还要对接三类 OTA 和客户的 MES 系统,自研更合适。如果你也在做公有云和开源平台的比较,可以看看 阿里云IoT、腾讯云IoT、AWS IoT 对比。
拿不准的话,先做一次需求对照
最省时间的办法,是把需求清单、设备类型和预期规模整理出来,逐条标注"原生配置 / 扩展开发 / 不适合"。做完这一步,选哪条路基本就清楚了。
如果你已经部署了 ThingsBoard,或者还在评估,可以把版本、设备情况和缺的功能 发给我们,我们帮你做这次对照。
常见问题
ThingsBoard 社区版能用于商业项目吗?
社区版采用 Apache 2.0 许可,可以用于商业项目。白标、部分高级集成和集群相关特性需要专业版,具体要按你的品牌化和部署要求判断。
已经改过源码的 ThingsBoard 还能救吗?
可以先对照官方版本梳理改动范围,把能迁移的改动挪到独立服务,再决定是继续维护还是逐步重构。改动越早梳理,代价越小。
ThingsBoard 适合做手机 App 的后端吗?
可以。App 通过 ThingsBoard 的 REST API 和 WebSocket 获取设备数据和告警、下发控制,业务数据走独立服务的接口。
二次开发一般要多久?
取决于业务功能的数量和口径复杂度。储能这个项目从 2025 年 3 月到 5 月分阶段交付,包含统计、电价和策略模板、报表导出和大屏。