ThingsBoard文档

ThingsBoard平台使用文档。

贡献指南

我们一直在寻找社区中有关如何改进ThingsBoard的反馈。 如果你有想法或要考虑一些新功能,请在ThingsBoard GitHub问题页面新建一个问题。 请确保问题列表中没有相同的问题(或类似问题)。

在开始任何实施之前,请等待ThingsBoard团队对你的票进行评论。我们将尽快与你联系。

必备工具

要构建和运行ThingsBoard实例,请确保已在系统上安装了JavaMaven

请参考从源代码构建部分,其中JavaMaven安装过程进行了描述。

分支并构建ThingsBoard代码库

完成所需工具的安装后,请克隆正式的ThingsBoard代码库分支。

现在你可以克隆分支项目的源代码。

注意: 我们稍后将以 ${TB_WORK_DIR} 指代你已经克隆的代码库文件夹。

如果是首次在Windows上构建,则可能需要运行以下命令以确保所需的npm依赖项可用:

npm install -g cross-env 
npm install -g webpack 

在将项目导入IDE之前请使用Maven工具从根文件夹中进行构建:

cd ${TB_WORK_DIR}
mvn clean install -DskipTests

使用IDE编译application模块时会生成必须的protobuf文件。

接下来,将该项目作为Maven项目导入到你最喜欢的IDE中。
请参阅IDEAEclipse

注意: 如果你使用的是Eclipse,则在将maven项目导入到IDE之后,建议你在ui项目上禁用Maven项目构建器。这将极大地提高Eclipse性能,因为它将避免Eclipse Maven构建生成node_modules目录(这是不必要的,只会导致Eclipse挂起)。为此,右键单击ui项目,转到Properties-> Builders,然后取消选中Maven Project Builder”复选框,然后单击确定

数据库

默认情况下,ThingsBoard使用嵌入式HSQLDB实例,这对于评估或开发目的非常方便。

另外,你可以配置平台以使用可伸缩的Cassandra数据库集群或各种SQL数据库。 如果你更喜欢使用SQL数据库,建议使用PostgreSQL。

[可选] SQL数据库:PostgreSQL

注意: 这是一个可选步骤。 仅用于生产用途时才需要。 您可以使用嵌入式HSQLDB进行平台评估或开发

请使用此链接获得PostgreSQL安装说明。

一旦安装了PostgreSQL,你可能想要创建一个新用户或设置主要用户的密码。

然后,按“Ctrl+D”返回主用户控制台并连接到数据库以创建Thingsboard DB:

psql -U postgres -d postgres -h 127.0.0.1 -W
CREATE DATABASE thingsboard;
\q
[可选] NoSQL数据库:时间序列数据库Cassandra

请参考适当的部分,在其中找到有关如何安装cassandra的说明:

[可选]配置ThingsBoard以使用外部数据库

注意: 这是一个可选步骤。 仅用于生产用途时才需要。 您可以使用嵌入式HSQLDB进行平台评估或开发

编辑ThingsBoard配置文件:

/application/src/main/resources/thingsboard.yml

注释‘# HSQLDB DAO配置’代码片断。

# HSQLDB DAO Configuration
#spring:
#  data:
#    jpa:
#      repositories:
#        enabled: "true"
#  jpa:
#    hibernate:
#      ddl-auto: "validate"
#    database-platform: "org.hibernate.dialect.HSQLDialect"
#  datasource:
#    driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.hsqldb.jdbc.JDBCDriver}"
#    url: "${SPRING_DATASOURCE_URL:jdbc:hsqldb:file:${SQL_DATA_FOLDER:/tmp}/thingsboardDb;sql.enforce_size=false}"
#    username: "${SPRING_DATASOURCE_USERNAME:sa}"
#    password: "${SPRING_DATASOURCE_PASSWORD:}"

对于PostgreSQL

取消注释‘#PostgreSQL DAO配置’代码片断。确保在该块的底部两行中更新postgres数据库的用户名和密码(如图所示,它们均为“ postgres”)。

# PostgreSQL DAO Configuration
spring:
  data:
    jpa:
      repositories:
        enabled: "true"
  jpa:
    hibernate:
      ddl-auto: "validate"
    database-platform: "org.hibernate.dialect.PostgreSQLDialect"
  datasource:
    driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}"
    url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}"
    username: "${SPRING_DATASOURCE_USERNAME:postgres}"
    password: "${SPRING_DATASOURCE_PASSWORD:postgres}"

对于Cassandra DB

找到并将数据库类型配置参数设置为‘cassandra’。

database:
  ts:
    type: "${DATABASE_TS_TYPE:cassandra}" # cassandra OR sql (for hybrid mode, only this value should be cassandra)

注意: 如果你的Cassandra服务器已安装在远程计算机上,或者已绑定到自定义接口/端口,则还需要在Thingsboard.yml中进行指定。 请转至配置指南以获取thingsboard.yml文件的详细说明以及用于cassandra连接配置的属性。

Thingsboard.yml文件更新后,请重新编译应用程序模块,以便将更新后的Thingsboard.yml值生效:

cd ${TB_WORK_DIR}/application
mvn clean install -DskipTests
创建数据库结构并生成演示数据

为了创建数据库表请执行以下命令:

Linux:

cd ${TB_WORK_DIR}/application/target/bin/install
chmod +x install_dev_db.sh
./install_dev_db.sh

Windows:

cd %TB_WORK_DIR%\application\target\windows
install_dev_db.bat

运行开发环境

在热部署模式下运行UI容器。

默认情况下ThingsBoard UI通过8080使用端口。但是你可能要在热重新部署模式下运行UI。

注意: 此步骤是可选的仅当你要更改UI时才需要。

要以热部署模式启动UI容器,你需要先安装 node.js。安装node.js后,你可以通过执行下一个命令来启动容器:

cd ${TB_WORK_DIR}/ui-ngx
mvn clean install -P npm-start

这将启动一个特殊的服务器,该服务器将侦听4200端口。所有REST API和websocket请求都将转发到8080端口。

运行服务器端容器

要启动服务器端容器,你可以使用几个选项。

首先,你可以运行IDEapplication模块中的org.thingsboard.server.ThingsboardServerApplication类的main方法。

其次是,你可以从命令行使用Spring boot启动应用程序服务器:

cd ${TB_WORK_DIR}
java -jar application/target/thingsboard-${VERSION}-boot.jar
运行

导航到http://localhost:4200/或http://localhost:8080/ 并使用演示数据凭据登录ThingsBoard:

  • 用户名 tenant@thingsboard.org
  • 密码 tenant

确保你能够登录并且一切都已正确启动。

代码更改

现在你准备开始对代码库进行一些更改。 更新服务端或UI代码。 从用户角度验证所做的更改是否满足你的要求和期望。

生成验证

在将更改提交到远程存储库之前,请使用Maven运行测试以在本地进行构建:

mvn clean install

确保构建正常并且所有测试均成功。

将更改推送到你的分支

完成代码更改后,提交并使用一些有意义的注释将其推送到你的分支代码库中:

git commit -m '有意义的说明'
git push origin master
创建请求请求

请默认将拉取请求创建到master分支中(如果需要,在github问题讨论的初始阶段将提供其他branch名称)。

如果由于提交前新事物已进入ThingsBoard master分支而发生冲突,请解决这些冲突以继续。

签署贡献许可协议(CLA),并验证远程构建是否成功。使用github CLA机器人对CLA进行了签名。

image

请耐心等待,拉取请求可能需要几天的时间进行审核。

了解更多

下一步

  • 入门指南 - 这些指南提供了ThingsBoard主要功能的快速概述。

  • 安装指南 - 了解如何在各种操作系统上安装ThingsBoard。

  • 设备连接 - 了解如何根据您的连接方式或解决方案连接设备。

  • 数据看板 - 这些指南包含有关如何配置复杂的ThingsBoard仪表板的说明。

  • 数据处理 - 了解如何使用ThingsBoard规则引擎。

  • 数据分析 - 了解如何使用规则引擎执行基本的分析任务。

  • 硬件样品 - 了解如何将各种硬件平台连接到ThingsBoard。

  • 高级功能 - 了解高级ThingsBoard功能。