IoT开源平台Thingsboard二次开发研究

这篇博客详细介绍了如何进行ThingsBoard物联网平台的二次开发,包括团队的知识储备、目录结构、IDE插件选择、打包过程及运行步骤。在运行过程中可能会遇到npm安装问题和IDE警告,但提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ThingsBoard 二次开发指南

参考资料

TB官方文档(英文)
Protobuf的讲解

概述

    1 整个ThingsBoard的代码中,变量、方法命名规范;
    2 变量和方法的标识符,字面意思基本能表达整个方法或变量的功能或目的;
    3 TB采用了模块化开发来实现松耦合、高内聚。每个模块之间有一定的依赖;
    4 微服务集群的容器使用Docker,容器编排使用k8s;
    5 使用了Actors编程模型(AKKA框架)(纯异步)、事件驱动模型;

二开团队知识储备

    MQTT协议 & MQTT Broker(重要)
    CoAP协议
    HTTP协议(除get/post之外的动作)
    WebSocket协议
    RESTFUL 设计规范
    TCP/IP协议簇
    IoT Gateway
    规则引擎概念与设计
    Actors编程模型理论
    Google Protocol Buffer 原理与使用
    AKKA框架
    Netty
    kafka
    PostgreSQL数据库
    Nodejs
    Vue SPA套件(UI重制)

目录结构

application: 应用程序主目录,整体项目打包时也是这个Module
    src/main/java/org.thingsboard.server: app主目录
        actors: actor执行者目录
        config: 配置类目录
        
### ThingsBoard 平台二次开发指南 #### 自定义功能扩展概述 ThingsBoard 是一个强大的物联网平台,支持通过多种方式进行自定义和扩展。对于那些现有规则处理节点无法满足特定业务需求的情况,可以通过自定义规则节点来实现复杂的数据处理逻辑[^4]。 #### 创建自定义规则节点 为了增加新的功能模块到 ThingsBoard 中,通常会涉及到创建自定义规则节点。这允许开发者针对具体的应用场景编写个性化的处理流程。例如,当需要对收集来的传感器数据执行复杂的分析算法时,便可以利用此机制引入额外的计算能力。 ```java // 定义一个新的RuleNode类继承自BaseAbstractRuleNode public class MyCustomRuleNode extends BaseAbstractRuleNode<MyCustomRuleNodeConfiguration> { @Override public void init() { // 初始化工作可以在init方法内完成 } @Override protected void doProcess(TbContext ctx, TbMsg msg) throws Exception { // 实现具体的业务逻辑 } } ``` #### 配置与部署 一旦完成了代码级别的修改之后,则需按照官方文档指示将这些更改打包并上传至目标环境中。确保所有的依赖项都已妥善解决,并且遵循最佳实践来进行版本控制管理。 #### 使用低代码工具简化开发过程 除了传统的编码方式外,ThingsBoard 还提供了一套图形界面编辑器用于快速搭建应用程序的工作流。借助于直观的操作体验,即使是没有深厚编程背景的人也能轻松上手设计属于自己的解决方案[^1]。 #### 数据安全性和权限设置 值得注意的是,在进行任何类型的改动之前都应该充分考虑到系统的安全性问题。特别是涉及敏感信息的部分更应谨慎对待。ThingsBoard 提供了精细粒度的角色管理和访问策略设定选项,使得管理员能够灵活地调整不同用户的操作范围[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值