简介
最近要求做一个小型的项目, 要求必须使用Thingsboard进行界面的可视化, 由于这个Thingsboard是一个基于Java开发的项目, 由于JVM的原因注定了这个项目比较重量级. 因此选择了一个树莓派4B 8GB作为部署的环境. 由于之前一直使用的是Home assistant来做智能家居内的传感器集成等, 在近两天体验了Thingsboard之后发现它对比于HA功能更加强大, 同时也更加复杂 (比HA复杂的多), 因此ThingBoard可能更适合复杂场景重量级的IOT控制等.
安装步骤
树莓派不愧是非常popular的设备, 很多开关的框架都对其支持很好, 可以直接在谷歌上搜索how to install thingsboard on raspberry pi
就可以进入到Thingboard的官方安装步骤.
1- 首先需要安装JDK17的支持
sudo apt update && sudo apt install openjdk-17-jdk
2- 如果你当前的环境中存在其他的JDK, 那么可以使用下方的命令将默认的JDK version切换到17
suo update-alternatives --config java
3- 如果你安装成功的话, 通过使用命令 Java -version便可以查看到当前的JDK版本
java -version
4- 之后便是下载Thingsboard的安装包, 因为使用的是社区板,它是免费且开源的
wget https://github.com/thingsboard/thingsboard/releases/download/v4.0.1/thingsboard-4.0.1.deb
5- 进行安装
sudo dpkg -i thingsboard-4.0.1.deb
6-对于Thingsboard 的持久化操作, thingsboard采用的是PostgreSQL, 在我们默认开始设置之前,需要先配置PostgreSQL
# install **wget** if not already installed: sudo apt install -y wget # import the repository signing key: wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - # add repository contents to your system: echo "deb https://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list # install and launch the postgresql service: sudo apt update sudo apt -y install postgresql sudo service postgresql start
7- 至此PostgreSQL已经安装完毕, 我们可以设置它的密码
sudo -u postgres psql -c "\password"
8-尝试连接postgresql
psql -U postgres -d postgres -h 127.0.0.1 -W
9- 然后创建Thingboard的数据库
CREATE DATABASE thingsboard;
10-编辑thingsboard 配置
sudo nano /etc/thingsboard/conf/thingsboard.conf
11- 修改数据库连接为上述自己设置的密码
# DB Configuration export DATABASE_TS_TYPE=sql export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingsboard export SPRING_DATASOURCE_USERNAME=postgres export SPRING_DATASOURCE_PASSWORD=PUT_YOUR_POSTGRESQL_PASSWORD_HERE # Specify partitioning size for timestamp key-value storage. Allowed values: DAYS, MONTHS, YEARS, INDEFINITE. export SQL_POSTGRES_TS_KV_PARTITIONING=MONTHS
12- 更换Thingsboard的启动JVM参数
sudo nano /etc/thingsboard/conf/thingsboard.conf
13- 稍微调整大一点, 在最下方额外增加即可
# Update ThingsBoard memory usage and restrict it to 2G in /etc/thingsboard/conf/thingsboard.conf export JAVA_OPTS="$JAVA_OPTS -Xms2G -Xmx2G"
14- 运行脚本, 从demo中安装thingsboard
# --loadDemo option will load demo data: users, devices, assets, rules, widgets. sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo
15- 启动thingsboard
sudo service thingsboard start
至此安装便是完成了, 其安装的步骤是较为复杂的,但是如果按照上述的步骤进行安装的话, 在树莓派上是绝对可以安装成功的. 取决于树莓派的配置在启动thingsboard的时候可能会出现等待时间比较长的问题, 一般在90S内即可成功启动成功. 需要注意的一点是, 不需要在树莓派上额外安装任何的MQTT服务, thingsboard内部集成了一个嵌入式的MQTT服务,其占用了1883端口. 所以如果你启动thingsboar的时候出现启动不成功的情况. 可以通过检查 /var/log/thingsboard/thingsboard.log 来确定错误的原因.
这个Thingsboard使用起来比较复杂, 经过短暂的体验我觉得它相对于HA不是很灵活. 目前还没有搞明白怎么能够通过内置的MQTT发布和进行订阅来控制其他的设备. (仅仅目前实现了将传感器数据集成到Thingsboard中), 我将逐渐研究逐渐和大家分享
安装好的Thingboard, 并且集成了传感器