ThingsBoard二次开发还是自研平台

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

多爱普团队9 分钟阅读
ThingsBoard二次开发还是自研平台
本文目录
  1. 先看需求和 ThingsBoard 的吻合度
  2. 储能项目里我们怎么分工
  3. 为什么不建议直接改源码
  4. 统计口径一定先写下来
  5. 策略下发要看设备回读
  6. 什么情况更适合自研
  7. 拿不准的话,先做一次需求对照
  8. 常见问题
  9. ThingsBoard 社区版能用于商业项目吗?
  10. 已经改过源码的 ThingsBoard 还能救吗?
  11. ThingsBoard 适合做手机 App 的后端吗?
  12. 二次开发一般要多久?

准备做设备平台的团队,十有八九会在某个阶段搜到 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 月分阶段交付,包含统计、电价和策略模板、报表导出和大屏。

项目咨询

把项目情况发过来,先帮你理清下一步

发来设备类型、协议资料、样机状态和计划上线时间,我们会结合对应的服务和案例给出推进建议。

如果你暂时不方便填写完整信息,也可以直接前往 联系页面 获取电话、邮箱与微信方式。

提交项目需求

适用于 ThingsBoard二次开发还是自研平台 场景,提交后默认进入业务咨询通道。

微信、电话、邮箱至少填写一项

点击发送即表示您同意我们的隐私政策和服务条款