Instalasi ThingsBoard IoT Gateway di Ubuntu 20.04
Instalasi ThingsBoard IoT Gateway di Ubuntu 20.04
Ada beberapa cara instalasi ThingsBoard IoT Gateway:
- DEB untuk Ubuntu
- RPM untuk CentOS dan Red Hat
- DEB untuk Raspberry Pi
- Docker untuk Windows
- Docker untuk Linux / Mac OSX
- PIP untuk Python
Daftar Isi
Instalasi ThingsBoard
Pada tulisan ini akan diuraikan proses instalasi menggunakan PIP (Python) di Ubuntu 20.04.4
Pertama-tama update dan upgrade Ubuntu ke versi terbaru
sudo apt update && apt upgrade
Selanjutnya lakukan instalasi library di Ubuntu
sudo apt install python3-dev python3-pip libglib2.0-dev
Selanjutnya instal ThingsBoard Gateway dengan pip:
sudo pip3 install thingsboard-gateway
Download contoh file konfigurasi dan buat folder log
wget https://github.com/thingsboard/thingsboard-gateway/releases/download/2.0/configs.tar.gz
Buat direktori untuk file-file konfigurasi
sudo mkdir /etc/thingsboard-gateway
Buat direktori untuk file log
sudo mkdir /var/log/thingsboard-gateway
Buka file-file konfigurasi
sudo tar -xvzf configs.tar.gz -C /etc/thingsboard-gateway
Jalankan thingsboard gateway dengan perintah berikut
thingsboard-gateway
Akan timbul pesan kesalahan seperti di bawah ini, karena belum dikonfigurasi
[STREAM ONLY] 2022-05-12 00:54:46,314 - ERROR - [mqtt_connector.py] - mqtt_connector - 142 - 'attributeRequests' section missing from configuration
[STREAM ONLY] 2022-05-12 00:54:46,315 - ERROR - [mqtt_connector.py] - mqtt_connector - 207 - [Errno 111] Connection refused
[STREAM ONLY] 2022-05-12 00:54:46,938 - ERROR - [tb_device_mqtt.py] - tb_device_mqtt - 146 - connection FAIL with error 3 server unavailable
[STREAM ONLY] 2022-05-12 00:54:46,939 - DEBUG - [tb_device_mqtt.py] - tb_device_mqtt - 123 - Disconnected client: <paho.mqtt.client.Client object at 0x7fb426ddc490>, user data: None, result code: 0
nano /etc/thingsboard-gateway/config/tb_gateway.yaml
Konfigurasi Dasar
Buat device Iot Gateway di ThingsBoard. Caranya:
- Masuk ke ThingsBoard web interface (misal alamatnya http://192.168.0.90:8080)
- Klik di “Devices”
- Klik di tanda “+”, kemudian “Add new device” untuk membuat device baru
- Masukkan nama device. Misal “iot-gateway-93”
- Klik di checkbutton “is gateway” untuk menandakan bahwa device yang dibuat adalah IoT gateway
- Klik “Add”. Maka pembuatan Device IoT Gateway selesai.
Selanjutnya adalah mengambil Access Token.
- Klik di menu “Devices”. Akan muncul daftar devices yang ada
- Klik di device IoT gateway yang baru dibuat
- Klik di “Copy access token”, maka access token akan tersimpan di clipboard Windows.
- selanjutnya masuk ke console Ubuntu untuk mengedit file konfigurasi ThingsBoard Gateway.
- edit file /etc/thingsboard-gateway/config/tb_gateway.yaml dengan teks editor editor, misalnya dengan ‘nano’.
- Ganti “host” dengan alamat dari server ThingsBoard. Defaultnya adalah demo.thingsboard.io. Misal pada contoh ini alamat server ThingsBoard adalah 192.168.0.90, sehingga alamat host diganti menjadi 192.168.0.90
- port tetap di 1883 (MQTT) . Umumnya tidak ada perubahan.
- Ganti string PUT_YOUR_GW_ACCESS_TOKEN_HERE dengan access token yang dicopy di atas. Misal access token adalah KbllULqUCAj1PWt1pvCQ
thingsboard:
host: demo.thingsboard.io
port: 1883
security:
accessToken: PUT_YOUR_GW_ACCESS_TOKEN_HERE
Maka file akan berubah seperti berikut ini:
thingsboard:
host: 192.168.0.90
port: 1883
security:
accessToken: KbllULqUCAj1PWt1pvCQ
Untuk sementara bagian lain dari file konfigurasi belum perlu diubah.
Hentikan thingsboard gateway dengan menekan CTRL-C di console Ubuntu.
Selanjutnya jalankan lagi thingsboard gateway dari console Ubuntu untuk melihat apakah ada perubahan
thingsboard-gateway
Akan muncul pesan seperti berikut ini:
[STREAM ONLY] 2022-05-12 01:19:55,467 - ERROR - [mqtt_connector.py] - mqtt_connector - 142 - 'attributeRequests' section missing from configuration
[STREAM ONLY] 2022-05-12 01:19:55,468 - ERROR - [mqtt_connector.py] - mqtt_connector - 207 - [Errno 111] Connection refused
Pesan itu normal, karena memang MQTT belum dikonfigurasi.
Selanjutnya lihat di web interface ThingsBoard untuk melihat apakah sudah ada koneksi dari thingsboard gateway.
Caranya:
- Masuk ke daftar devices dengan cara klik “Devices” di menu web ThingsBoard
- Klik di IoT gateway yang baru dibuat, misal tadi namanya adalah “iot-gateway-93”
- Klik di “Latest telemetry”. Seharusnya akan muncul beberapa key berikut ini, dengan “last update time” sesuai dengan waktu start thingsboard gateway di console Ubuntu
- eventsProduced
- eventsSent
- LOGS
- mqttbrokerconnectorEventsProduced
- mqttbrokerconnectorEventsSent
Jika muncul data telemetry seperti di atas, maka artinya ThingsBoard gateway sudah berhasil berkomunikasi dengan ThingsBoard Server.
Tahap selanjutnya adalah melakukan konfigurasi connector di ThingsBoard Gateway supaya dapat menerima / mengirim data ke devices yang ada. Contohnya untuk REST API dapat dilihat di artikel “Koneksi REST API ke ThingsBoard IoT Gateway“
Pada contoh ikni script thingsboard-gateway perlu dijalankan secara manual. Jika ingin dijalankan secara otomatis, dapat dibuat menjadi service atau ditambahkan ke crontab ataupun etc/rc.local
Konfigurasi File Log
Pada contoh file konfigurasi yang diberikan, file log disimpan di “./log”, jadi relatif terhadap dari mana kita menjalankan thingsboard-gateway. Supaya rapi, file log disimpan di /var/log/thingsboard-gateway. Untuk itu edit file /etc/thingsboard-gateway/config/logs.conf untuk mengubah lokasi file log sesuai keinginan.
Berikut ini bagian dari file logs.conf yang mengatur lokasi file log
[handler_connectorHandler]
level=DEBUG
class=logging.handlers.TimedRotatingFileHandler
formatter=LogFormatter
args=(“/var/log/thingsboard-gateway/connector.log”, ‘d’, 1, 7,)[handler_storageHandler]
level=DEBUG
class=logging.handlers.TimedRotatingFileHandler
formatter=LogFormatter
args=(“/var/log/thingsboard-gateway/storage.log”, ‘d’, 1, 7,)[handler_serviceHandler]
level=DEBUG
class=logging.handlers.TimedRotatingFileHandler
formatter=LogFormatter
args=(“/var/log/thingsboard-gateway/service.log”, ‘d’, 1, 7,)[handler_converterHandler]
level=DEBUG
class=logging.handlers.TimedRotatingFileHandler
formatter=LogFormatter
args=(“/var/log/thingsboard-gateway/converter.log”, ‘d’, 1, 3,)[handler_extensionHandler]
level=DEBUG
class=logging.handlers.TimedRotatingFileHandler
formatter=LogFormatter
args=(“/var/log/thingsboard-gateway/extension.log”, ‘d’, 1, 3,)[handler_tb_connectionHandler]
level=DEBUG
class=logging.handlers.TimedRotatingFileHandler
formatter=LogFormatter
args=(“/var/log/thingsboard-gateway/tb_connection.log”, ‘d’, 1, 3,)
Daftar Artikel Tentang ThingsBoard IoT Gateway
- ThingsBoard Iot Gateway Homepage
- What is ThingsBoard IoT Gateway
- ThingsBoard IoT Gateway Roadmap
-
- Getting Started Provides an overview of the gateway functionality and classical “Hello World” guide.
-
- Installation guide Covers ThingsBoard IoT Gateway installation on various platforms.
-
- ThingsBoard IoT Gateway installation options
- Install ThingsBoard IoT Gateway as package (Ubuntu)
- Install ThingsBoard IoT Gateway as package ( RPM di CentOS dan Red Hat)
- Install ThingsBoard IoT Gateway as package (Raspberry Pi 3)
- Install ThingsBoard IoT Gateway using Docker (Windows)
- Install ThingsBoard IoT Gateway using Docker (Linux / Mac OSX)
- IoT Gateway Pip Installation
- ThingsBoard IoT Gateway installation options
-
- Configuration Describes configuration of the core gateway services and various extensions.
-
- Connector Configuration
- MQTT connector to control, configure and collect data from IoT devices that are connected to external MQTT brokers using existing protocols.
- OPC-UA connector to collect data from IoT devices that are connected to OPC-UA servers.
- Modbus connector to collect data from IoT devices that are connected through Modbus protocol.
- BLE connector to collect data from IoT devices that are connected using Bluetooth Low Energy.
- Request connector to collect data from IoT devices that are have HTTP(S) API endpoints.
- CAN connector to collect data from IoT devices that are connected through CAN protocol.
- BACnet connector to collect data from IoT devices that are connected throughBACnet protocol.
- ODBC connector to collect data from ODBC databases.
- REST connector to create endpoints and collect data from incoming HTTP requests.
- SNMP connector to collect data from SNMP managers.
- FTP connector to collect data from FTP server
- Custom connector to collect data from IoT devices that are connected by different protocols.
- How to enable remote shell feature on ThingsBoard IoT Gateway
- ThingsBoard IoT Gateway Features
- How to use RPC in Modbus connector
Referensi
- Install ThingsBoard IoT Gateway as package (Ubuntu)
- Install ThingsBoard IoT Gateway as package ( RPM di CentOS dan Red Hat)
- Install ThingsBoard IoT Gateway as package (Raspberry Pi 3)
- Install ThingsBoard IoT Gateway using Docker (Windows)
- Install ThingsBoard IoT Gateway using Docker (Linux / Mac OSX)
- IoT Gateway Pip Installation
- Koneksi REST API ke ThingsBoard IoT Gateway