Instalasi ThingsBoard IoT Gateway di Ubuntu 20.04

Arsitektur Thingsboard IoT Gateway

Instalasi ThingsBoard IoT Gateway di Ubuntu 20.04

Ada beberapa cara instalasi ThingsBoard IoT Gateway:

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

Thingsboard IoT gateway Telemetry

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

Referensi

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.