blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
Vitajte na mojom blogu
deadawp



MQTT-to-HTTPS router cez ThingsBoard
pridal deadawp 5.4. 2026 o 20:16 (naposledy upravené 6.4. 2026 o 23:04)

Ak využijete hotový hardvér pre monitorovanie výšky hladiny vody, či výšky sypkých materiálov, ktorý by ste chceli prepojiť s webaplikáciou Watmonitor pre vizualizáciu dát, môžete naraziť na limitácie, ktoré bránia priamej integrácii. To môže byť napríklad z dôvodu nepodpory HTTPS protokolu, čo je jediný komunikačný protokol Watmonitora, keďže ide o serverovú aplikáciu na klient-server architektúre komunikácie.

Samotná nepodpora nemusí znamenať, že by to samotný hardvér neumožňoval implementovať, ale častokrát má zariadenie uzavretý firmvér a ako používateľ viete pristupovať iba do konfiguračného rozhrania, kde si zvolíte jednu z podporovaných možností, ktoré sú otestované a meníte prakticky iba premenné, s ktorými program pracuje.


Dragino PS-NB s tlakovými snímačom

Typickým príkladom je mnoho NB-IoT zariadení, napríklad od Dragina (DDS75-NB - ultrazvukový snímač hladiny vody, LDS25-NB - LiDAR ToF snímač, PS-NB - tlakový snímač, MDS200-NB - mikrovĺnny radar), ktoré podporujú protokoly MQTT, MQTTS, UDP, TCP, COAP, pod ktoré HTTP / HTTPS nespadá a tak nie je možné poslať dáta priamo, aby ich webové rozhranie Watmonitora spracovalo. Obdobne to spadá aj pre iné zariadenia, napríklad od Ellenexu (rady PTX2, DUX2 - X označuje široké modely rady), ktoré podporujú UDP, LwM2M, MQTT, NIDD. Musíme preto do komunikácie pridať prostredníka, ktorý dáta prepošle na rozhranie Watmonitor po ich prijatí cez podporované rozhranie.

Ellenex DUS2-N - ultrazvukový snímač vzdialenosti

Ako najuniverzálnejší podporovaný protokol medzi týmito zariadeniami je MQTT. Budeme tak potrebovať MQTT Broker, spolu s backendom, ktorý bude fungovať 24/7 a spoľahlivo dáta spracuje a pushne na Watmonitor rozhranie. Ako vhodný kandidát prichádza platforma ThingsBoard, ktorá umožní implementovať túto logiku skrz Rule Chain, má non-stop dostupný MQTT Broker, ktorý je s platformou priamo prepojený. ThingsBoard je vhodný aj pre zariadenia, ktoré nepodporujú šifrované spojenie s Brokerom a ten je dostupný aj na štandardnom MQTT protokole 1883, ale tiež je plne podporovaný aj s TLS na porte 8883.


Bloková schéma riešenia, routing MQTT paketov na HTTP POST request

Implementácia MQTT routra na ThingsBoarde
V menu vyberieme Rule Chains, vytvoríme nový Rule Chain. Vzorovo si ho pomenujeme MQTT_router. Pred vytvorením samotného flowu zreťazených blokov logiky musíme plne chápať, ako funguje, resp. aké dáta prijímeme. Samotný blok input, ktorý sa automaticky v každom Rule Chaine nachádza má výstup, ktorý použijeme. Na tomto výstupe sa objavia dáta, ktoré príjdu na MQTT Broker od koncového zariadenia - klienta. Okrem dát ale obsahujú aj ďalšie meta informácie, ktoré určujú od ktorého validného klienta dáta sú. Pri pushi dát na MQTT Broker Thingsboardu štandardne klient používa token, ktorým push autorizuje. Nemôžeme využiť priamo node REST API call z dôvodu, že k hodnote musíme pridať aj token, ktorý vyžaduje Watmonitor platforma.

Watmonitor štandardne očakáva:

  • URL: https://hladinomer.eu/data.php (alebo iný podľa inštancie)
  • Typ requestu: POST
  • POST parameter: hladina
  • POST parameter: token (štandardne 123456789, ak nie je v inštancii nastavený iný)

Preto budeme musieť použiť node script z Transformation, ktorým si dáta payloadu pripravíme a to vrátane kľúčov (POST parametrov), tak aj hodnôt, ktoré k nim prislúchajú. Rule Chain navrhneme tak, že bude očakávať JSON kľúč "value" v ktorej bude uložená rozdielová, či celková výšky hladiny vody, ktorú snímač zaznamenal, teda celé číslo - integer.

Script node - nastavenie
Do tela scriptu (TBEL - ThingsBoard Environment Language) vložíme nasledujúci krátky kód:
var token = 123456789;
var hodnota = msg.value;
msg = "hodnota=" + hodnota + "&token=" + token;
return {msg: msg, metadata: metadata, msgType: msgType};

Tento script vytvorí premennú msg, ktorej priradí hodnotu získanú z value JSON kľúča, ktorý obsahoval hodnotu výšky hladiny vody, ktorý chceme dostať do Watmonitora. Tento script v podstate urobí takýto výstup do JSON kľúča msg (pre 123 value z JSON payloadu priradený do value):
"msg": "hodnota=123&token=123456789"


Detail transformačného scriptu

REST API Call - nastavenie

  • Endpoint URL pattern: https://hladinomer.eu/data.php
  • Request method: POST
  • Parse to plain text - ZAŠKRTNÚŤ
  • V Headers: Content-Type - application/x-www-form-urlencoded



REST API CALL node - detail nastavení

Zaškrnutie možnosti Parse to plain text je prakticky najkritickejšie nastavenie, bez ktorého nebudú správne prevedené JSON kľúče s hodnotami do POST atribútov requestu, ktorý bude REST API Call realizovať priamo na inštanciu Watmonitora. Aj keby ste mali všetky ostatné nastavenia správne, payload by bez Parse to plain text nebol v správnom formáte. Dbajte aj nato, aby ste mali nody script a REST API CALL prepojené skrz Success label pre úspešné preposlanie dát a fungujúcu automatizáciu


Zostavený flow v Rule Chain

Vytvorenie profilu zariadenia, zariadenie
V ďalšom kroku si vytvoríme nový profil zariadenia v sekcii Profiles --> Device Profiles, pomenovali sme ho MQTT_profile_router. Na tento nový profil nastavíme už vytvorený a uložený Rule Chain MQTT_router. V sekcii Entities --> Devices vytvoríme nové zariadenia, ktoré pomenujeme device a nastavíme mu Device Profil MQTT_profile_router, čím zabezpečíme, že dáta prichádzajúce od tohto autorizovaného zariadenia spustia príslušný Rule Chain s názvom MQTT_router, ktorý dáta pushne priamo do Watmonitora skrz HTTPS POST request.


Vytvorený device profil s priradeným Rule Chainom - MQTT_router

Vytvorené zariadenie s priradeným profilom MQTT_profile_router

Otestovanie nanečisto
Po úspešnom uložení Rule Chainu, profilu aj samotného zariadenia môžeme prejsť na prvý test, ktorý overí, či dáta ThingsBoard spracuje, ale najmä, či ich dostane aj Watmonitor a uvidíme ich aj priamo v jeho dashboarde. Pre prvý test môžeme použiť Windows aplikáciu MQTTX Client.

Nastavenie MQTT údajov pre ThingsBoard:

  • Server: mqtt.thingsboard.cloud
  • Topic: v1/devices/me/telemetry
  • Client-ID: ľubovoľné
  • Username: Access token z ThingsBoardu (v detaile zariadenia)
  • Password: prázdne
  • Payload (JSON): {value: 123}

Nastavenie pripojenia - Do Username dávame Access token, ktorý zistíme v detaile zariadenia. Do Client-ID môžeme zvoliť čokoľvek (pozor ale nato, že ide o verejný MQTT Broker). Ak zvolíte rovnaký Client-ID ako používa iný používateľ, budete sa striedavo odpájať z Brokera. Zadáme tiež URL MQTT Brokera (pozor, skutočne v URL je mqtt. nejde teda o mqtt://, URL je tak v podstate mqtt://mqtt.thingsboard-cloud.

Po nadviazaní pripojenia s automaticky vloženým Client-ID a používateľským menom z uloženého Connection sa môžeme na Broker pripojiť a odoslať dáta na prednastavený topic - v1/devices/me/telemetry s JSON payloadom, vzorovo {value:123}.

Samotné úspešné pripojenie (aj pred samotným Publishom dát na topic) uvidíte aj na ThingsBoarde, kde v Entities --> Devices uvidíte aktívne zariadenie, keďže sme sa na Broker pripojili priamo cez token tohto zariadenia.


Keďže sme mali správne nastavený script pre transformáciu payloadu a tiež aj node pre API CALL, dáta sa úspešne odoslali na Watmonitor vo formáte, ktorý očakáva t.j. HTTPS POST. Backend Watmonitora tak dáta spracoval, uložil do MySQL databázy a následne vizualizoval aj vo svojej webaplikácii, či v AR vizualizácii, ako môžeme vidieť.

 

 


AR vizualizácia IoT dát vo Watmonitore, úspešne preroutované cez ThingsBoard


Vizualizácia dát v dashboarde Watmonitora. Prijaté dáta z ThingsBoardu, Rule Chain automatizácie

JSON súbory pre rýchly import a použitie profilu zariadenia a Rule Chainu do ThingsBoardu nájdete na: 

https://github.com/martinius96/hladinomer-studna-scripty/tree/master/examples/Tools_Integrations/ThingsBoard Keďže sú tu obsiahnuté aj iné integrácie s ThingsBoardom, zvoľte si správne JSON súbory. 

  • Rule_Chain_mqtt_router.json pre Rule Chain
  • mqtt_profile_router.json pre profil zariadenia.

Samotné zariadenie nemá .json súbor, ani možnosť exportu, musíte si ho vytvoriť manuálne. Je jedno, aké mu nastavíte meno, Rule Chain je spúšťaný na základe profilu priradeného k zariadeniu. Pri odosielaní dát ste limitovaní Watmonitorom, ktorý prijíma dáta max. raz za 200 sekúnd (ale štandardne až raz za 5 minút). Vo všetkých importovaných entitách môžete upraviť aj inštanciu Watmonitora na vašu bez nutnosti používať verejné testovacie webové rozhranie Watmonitora, ktoré bolo ukážkovo použité.



Prístupov 245
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
MQTT-to-HTTPS router cez ThingsBoard
[ 5.4.2026] (príspevkov 0)
Zvuková analýza videa II. - benzín, LPG
[ 2.4.2026] (príspevkov 0)
AR Watmonitor s triggerom cez NFC / RFID...
[ 31.3.2026] (príspevkov 0)
Zvuková analýza videa - 101 vs 95 oktán ...
[ 11.3.2026] (príspevkov 0)
Watmonitor LiTe - open-source do vrecka
[ 9.2.2026] (príspevkov 0)
TTN LoRaWAN brána / LoRaWAN node za 8€
[ 31.1.2026] (príspevkov 0)
Zväčšenie fotografie = strata kvality?
[ 25.12.2025] (príspevkov 0)
Výber 12V gélovej batérie pre zálohu obe...
[ 17.12.2025] (príspevkov 0)
Ako zostaviť DIY kit RFID DOMINATOR 2.0?
[ 17.11.2025] (príspevkov 0)
ThingsBoard - generátor dát, HTTP reques...
[ 13.11.2025] (príspevkov 0)