什么是 ThingsBoard?
ThingsBoard 是一个开源的物联网平台,用于数据收集、处理、可视化和设备管理。 它支持 MQTT、CoAP、HTTP 等协议,适用于各类 IoT 场景。
为什么进行二次开发?
尽管 ThingsBoard 功能强大,但在实际项目中常需定制化:
- 添加企业专属业务逻辑
- 集成内部系统(如 ERP、CRM)
- 定制 UI/UX 界面
- 扩展规则引擎或设备通信协议
二次开发常见方式
1. 前端定制(UI 层)
修改或扩展 ThingsBoard 的前端界面,通常基于 Angular 框架。 可通过覆盖主题、新增 Widget 或重构 Dashboard 实现。
// 示例:自定义 Widget 的基本结构
export default class CustomWidgetController {
constructor($scope) {
// 初始化逻辑
}
}
2. 后端扩展(服务层)
ThingsBoard 后端基于 Spring Boot,可通过以下方式扩展:
- 实现自定义插件(Plugin)
- 扩展规则链节点(Rule Node)
- 重写 REST API 接口
3. 使用 REST API 与外部系统集成
ThingsBoard 提供完整的 RESTful API,可用于设备管理、告警查询、遥测数据读写等。
# 获取设备列表示例(需认证 Token)
GET /api/device?pageSize=10&page=0
Authorization: Bearer YOUR_JWT_TOKEN
开发建议
- 始终基于官方最新稳定版本进行开发
- 使用 Docker 快速搭建本地开发环境
- 保留原始代码备份,便于升级维护
- 关注社区文档与 GitHub Issues