Lewati ke konten

Gateway dan bridge Mosquitto

Pola umum di lapangan: node sensor tidak punya kredensial Celestian. Mereka berbicara ke Mosquitto lokal di gateway, dan hanya gateway yang tersambung ke Celestian lewat bridge.

  1. Buat channel (misalnya route telemetri-gudang).
  2. Buat device dengan Mode gateway menyala, dan simpan device key (tampil sekali).
  3. Hubungkan gateway ke channel dengan tipe publish. Tambahkan subscribe bila gateway perlu menerima perintah, konfigurasi, atau rules.
  4. Pasang rule penyimpanan untuk channel itu (tombol cepat di halaman channel).
  5. Daftarkan node sebagai device biasa dengan Serial = MAC node bila ingin Telemetri dan status per node (Gateways).

Contoh mosquitto.conf di gateway (ID, key, workspace, dan channel sesuai milik Anda):

connection celestian
address celestian.contoh.id:1883 # MQTT 3.1.1; atau :1884 untuk MQTT 5
clientid <ID-gateway> # produksi: harus diawali ID device gateway (boleh <ID>-bridge)
remote_username <ID-gateway>
remote_password <device-key-gateway>
bridge_protocol_version mqttv311
try_private false # broker Celestian bukan Mosquitto
cleansession false # store & forward saat WAN putus
notifications false # topik notifikasi bridge bukan topik channel
keepalive_interval 30
# Awalan "node/" lokal menjadi subtopik channel:
# node/ruang-a1/telemetry → m/<workspace>/c/<channel>/node/ruang-a1/telemetry
topic node/# out 1 "" m/<workspace>/c/<channel>/
# Perintah dan konfigurasi ke node (butuh koneksi subscribe)
topic +/config in 1 m/<workspace>/c/<channel>/ ""
topic +/cmd in 1 m/<workspace>/c/<channel>/ ""

Catatan:

  • <workspace> dan <channel> boleh route atau UUID. Pakai bentuk yang sama dengan yang dipakai widget kontrol dan halaman Setelan perangkat.
  • Dengan kebijakan client_id berawalan ID device, clientid bebas ditolak.
  • notifications true harus dimatikan: topik notifikasi bridge bukan topik channel dan ditolak.
  • cleansession false membuat Mosquitto dan broker Celestian mengantre pesan selama koneksi WAN putus. Antrean di Celestian berlaku sekitar satu jam.
  • allow_anonymous true pada listener lokal aman selama hanya terjangkau di LAN.
  • Konfigurasi dan rules yang dikirim ke node memakai pesan retained, sehingga node yang menyala belakangan tetap menerimanya. Pastikan persistence true di Mosquitto.

Node (atau gateway) mengirim SenML atau SenFlat agar nilai terakhir, agregasi, dan dashboard bekerja. bn atau id = MAC node tanpa pemisah, huruf kecil. Lihat Format payload dan SenFlat v2 untuk riwayat.