blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
martinius96 (at) gmail.com
deadawp



Watmonitor - JSON endpoint integrácia
pridal deadawp 21.9. 2025 o 15:28 (naposledy upravené 28.9. 2025 o 17:32)

Watmonitor je webové rozhranie hladinomera (PHP aplikácia), ktorá umožňuje zbierať dáta zo senzorového uzla. ktorý vykonáva merania v kopanej, vŕtanej studni, či retenčnej nádrži, žumpe. Toto univerzálne webové rozhranie je vhodné aj pre meranie a vizualizáciu výšky sypkých materiálov. Dá sa použiť s akýmkoľvek DIY senzorom, alebo priemyselným riešením s vhodne nastaveným callbackom. Disponuje základnou vizualizáciou, avšak môže byť rozšírený o integrácie do iných platforiem, čo umožňuje pridať akcie, pokročilé vizualizácia, notifikácie, automatizáciu.

API Endpoint - JSON

Watmonitor má endpointy (json_output.php a json_output2.php). Prvý spomenutý vracia posledné namerané dáta a to výšku hladiny, objem, čas, názov webového rozhrania (niekto to používa aj pre názov senzorového uzla) v JSON formáte, čo je štandard pre výmenu dát (API). Tento endpoint je možné použiť pre periodické získavanie dát formou HTTPS GET requestu z Watmonitora a ich integráciu do 3rd party services, kde sa dajú vizualizovať inými prostriedkami, prípadne použiť aj automatizáciu formou smart home, actions...

Vzorové JSON dáta Watmonitora (json_output.php):
{
"name": "Studňa Poprad - záhrada",
"value": 265,
"volume": 1332.04,
"time": "16. Sep 20:25"
}

Priamo tento Endpoint používa aj AR vizualizácia, prípadne QR skener, ktorý je štandardne súčasťou Watmonitora. AR vizualizácia je výhradne na mieru a v základe nie je súčasťou. Druhý json_output2.php umožňuje vrátiť všetky namerané dáta, čo je vhodné pre timeseries vizualizácie, napríklad v Grafane, prípadne vie JSON vrátiť aj len dáta za preddefinované časové obdobie formou od - do zadaním GET parametrov (alebo aj všetko od, alebo všetko do s tým, že sa zavolá len jeden argument). Pri tomto endpointe je potrebné dbať nato, že dáta sú zapuzdrené v poli, teda index nie dát je [0], ale napríklad [0][0]. Príklad použitia: json_output2.php?from=2025-08-01&to=2025-09-20.



Vzorové JSON dáta Watmonitora (json_output2.php):
[
{ "value": 95,
"volume": 477.52,
"time": "2025-09-01 18:49:49"
},
{ "value": 123,
"volume": 618.27,
"time": "2025-09-01 18:57:29"},
{ "value": 133,
"volume": 668.53,
"time": "2025-09-01 19:02:31"
}
]

Google Sheets / Google Apps Script
Do Google Sheets je možné natiahnuť aj priamo JSON, ale Google Sheets sám o sebe to nevyparsuje, nato je potrebný Apps Script, kde si viete urobiť funkciu na parsovanie a následne iba zavoláte funkciu v Google Sheets. Vďaka tomu môžete mať samostatne dáta rozdelené do príslušných buniek (2D pole). Skrz Apps Script by ste mohli aj zapisovať dáta do jednotlivých stĺpcov a použiť tak Google Sheets ako databázu pre následnú vizualizáciu. Periodické volanie JSON API je možné urobiť skrz Trigger v Apps Scripte, kde je možné nastaviť aj interval, prípadne môže Apps Script spúšťať aj priamo Watmonitor samostatným CURL volaním, či už cez cron, alebo priamo z PHP súboru, ktorým senzorovým uzol zapisuje dáta do databázy..

Node-RED
Pri Node-RED využívate node s názvom HTTP request node, kde definujete GET metódu a nastavíte konkrétny URL. Samotné parsovanie je možné dosiahnuť cez Function node. Periodické volanie sa zabezpečí nastavením funkcie Repeat u Inject node s nastavením času.  Node-RED je možné použiť aj na vyhodnotenie získanej hodnoty a prípadne volanie webhookov, ktoré sú na konci článku. Node-RED dokáže posielať dáta aj po MQTT protokole na Broker, rozširuje možnosti integrácie Watmonitora aj na iné IoT platformy s podporou MQTT - ThingsBoard, Peakboard, AWS IoT Core... 

Home Assistant
Ak používate Home Assistant, JSON z Watmonitora je možné integrovať skrz configuration.yaml súbor, kde si definuejte REST senzor a získate hlavné dáta, v tomto prípade hodnotu hladiny a skrz template získame aj ďalšie samostatné hodnoty, ktoré vieme použiť ďalej vo vizualizácii.

Súbor configuration.yaml môže vyzerať napríklad takto (hlavne pre json_output.php):

sensor:
- platform: rest
resource: https://www.tvoj-server.sk/api/studna.php
name: Studna API
scan_interval: 300 # každých 5 minút
json_attributes:
- name
- value
- volume
- time
value_template: "{{ value_json.value }}"
unit_of_measurement: "cm"


- platform: template
sensors:
studna_name:
value_template: "{{ state_attr('sensor.studna_api', 'name') }}"
studna_volume:
value_template: "{{ state_attr('sensor.studna_api', 'volume') }}"
unit_of_measurement: "l"
studna_time:
value_template: "{{ state_attr('sensor.studna_api', 'time') }}"

Loxone
Pri smart home systémoch, ako napríklad Loxone môžete endpoint Watmonitora nastaviť vo Virtual Inputs a následne je možné mapovať (zadať cestu k hodnotám) JSON.

Power BI
Mnoho firiem využíva pre vizualizáciu dát Power BI v rámci balíka Office 365 E5, prípadne si ho predplácajú samostatne k nižším balíkom E3 a pod. Existuje v Desktop, i cloudovej verzii, ktorá má viac možností a nástrojov. Pre integráciu Watmonitora a jeho JSON endpointov do Power BI je nutné postupovať takto: V programe prejdeme na Get Data → Web, zadáme URL k endpointu s JSON dátami Watmonitora. Toto dáta získa, ale pre parsing musíme prejsť na Power Query, kde jednotlivé atribúty vyberieme, aby sme získali samostatné stĺpce atribútov s ktorými vieme ďalej pracovať.

Pod Transform záložkou môžeme pracovať aj s formátom času, ktorý je možné previesť na lepšie čitateľný / štandardizovaný, Watmonitor v JSON dátach formát d. M H:i, ktorým aj bežne vo webaplikácii Watmonitora vizualizuje časové značky. V tabuľke SQL databázy je časový formát YYYY-MM-DD HH:MM:SS, čo je štandardný SQL DATETIME formát, nie je to ISO formát. V Home záložke a výbere Scheduled Refresh môžete nastaviť časovú rutinu, ktorá bude tieto dáta z Watmonitora v pravidelných intervaloch získavať. Nakoľko senzorový uzol zapisuje dáta štandardne raz za 5 minút, mali by ste použiť minimálne takýto časový limit, prípadne väčší. V rámci Power BI môžete získané dáta aj vizualizovať či už formou KPI, alebo iných grafov.

SAP
Vytvorte HTTP Receiver Adapter alebo REST API Consumer v SAP CPI/PI. Zadajte URL na JSON endpoint Watmonitora s výberom metódy GET a Content-Type: application/json. Získané JSON dáta mapujte do SAP štruktúr pomocou mapping (napr. value → hladina, volume → objem, time → čas). Posielajte dáta do cieľového modulu (napr. Z-table, PM modul, alebo Custom table). V iFlow pridajte Timer Start Event (Trigger). Nastavte interval, napr.: Repeat every: 5 minút

Druhým spôsobom ako dostávať dáta zo SAPu je vytvorenie ABAP programu, ktorý JSON API volá skrz HTTP request s následným automatickým spúšťaním cez SAP Job Scheduling (SM36). Samotnú vizualizáciu môžete robiť v SAP Fiori / SAP GUI a automatizácie môžete vytvárať v PM module.

Grafana
Veľmi popuárny nástroj pre vizualizáciu IoT dát je Grafana. Používa sa najmä na timeseries dáta a je vhodná aj pre rýchlo meniacu sa telemetriu a štandardne využíva pre tento účel InfluxDB databázu. No má funkcie vhodné pre integráciu Watmonitora. Cez Configuration → Data Sources → Add data source vyberie JSON API, potrebujete však doinštalovať plugin marcusolsson-json-datasource.

V dashboarde si zvolíte napríklad Panel vizualizáciu a zvolíte si konkrétny datasource. Následne je možné nastaviť aj čas, kedy Grafana urobí nový request. Tento typ vizualizácie je vhodný pre aktuálne (posledné) dáta. Rovnako tak je možné integrovať aj druhý spomenutý endpoint, je to ale o niečo zložitejšie. Bude potrebné využiť JSONPath alebo Field mapping pre zachovanie vzťahu v grafe pre os X a Y, pričom v jednej osi sú časové údaje a v druhej hodnotové, ktoré prislúchajú danému času.

SCADA / MES
Watmonitor je možné skrz jeho JSON endpointy integrovať  aj do SCADA, či MES systémov. SCADA systémy ako Ignition, Wonderware, WinCC umožňujú načítanie dát z REST API cez skripty alebo zabudované konektory. Dáta sa môžu mapovať na interné premenné (tags) alebo databázové historické záznamy. Rovnako tak je možné použiť riešenie s middleware, kedy môže SCADA / MES systém čítať dáta priamo z SQL databázy. Scriptovacie riešenia bývajú najčastejšie postavené na Pythone, čo je hračka na integráciu v priebehu pár minút.

Webhooky
Webhooky umožňujú aplikáciám okamžite si navzájom posielať dáta pri určitej udalosti a môžu byť veľmi prospešné pri automatizácii procesov. V Node-RED môžete prijaté dáta vyhodnocovať a spúšťať ďalšie akcie s volaním webhookov. Napríklad pri poklese hladiny na nebezpečnú úroveň môžete cez webhook spustiť služby ako IFTTT alebo Zapier, ktoré následne umožnia: Poslať upozornenie na Slack, email alebo SMS. Spustiť sekundárne akcie na iné API, napríklad diaľkovo vypnúť zariadenie alebo získať dáta z iného zariadenia pre overenie skutočnosti.

Zapier podporuje integráciu s viac ako 7000 aplikáciami, čo uľahčuje prepojenie systému Watmonitor s rôznymi službami a zabezpečuje včasné upozornenia. Tieto aplikácie ale sami o sebe nemôžu získavať dát z Watmonitora, musí nasadiť napríklad Node-RED, prípadne vykonávať request z Watmonitora priamo, napríklad s využitím cronu (crontab), alebo CURL volania, ktoré sa spustí pri volaním php súboru senzorovým uzlom, ktorý zapisuje dáta do Watmonitora. Watmonitor ale už musí sám vyhodnotiť, čo chceme urobiť, napríklad poslať notifikáciu, vykonať akciu. Samotný Zapier / IFTTT nebude robiť overenie a vyhodnocovanie, ten spúšťa len konkrétnu preddefinovanú akciu so sledom úloh.

Watmonitor môžete zdarma vyskúšať s vašim hardvérom, alebo nájsť o ňom ďalšie zaujímavé informácie na: 
https://your-iot.github.io/Watmonitor/sk/


JSON API endpointy na vyskúšanie:
Posledné známe dáta - https://hladinomer.eu/json_output.php
Dáta za celé časové obdobie - https://hladinomer.eu/json_output2.php, prípadne s časovým ohraničením výsledkov: 
https://hladinomer.eu/json_output2.php?from=2025-08-01&to=2025-09-20

Na blogu sú v súčasnosti aj 2 články, ktoré detailne opisujú integráciu Watmonitora do platformy ThingsBoard. Jeden článok opisuje priamu integráciu skrz custom widget a Rule Chain na ThingsBoarde, druhý článok popisuje integráciu MQTT integráciu, pričom využíva middleware nástroj Node-RED.



Prístupov 664
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDUJETE
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
Integrácia Watmonitora do Node-RED skrz ...
[ 25.9.2025] (príspevkov 0)
Watmonitor - spustenie na Endora.cz
[ 23.9.2025] (príspevkov 0)
ThingsBoard - JSON endpoint Watmonitora
[ 23.9.2025] (príspevkov 0)
Watmonitor - JSON endpoint integrácia
[ 21.9.2025] (príspevkov 0)
Klonovanie projektu Watmonitor
[ 19.9.2025] (príspevkov 0)
GATT server s ESP32-C6
[ 12.9.2025] (príspevkov 0)
Tohtoročné výnosy obilia pod Tatrami
[ 31.8.2025] (príspevkov 0)
Odstávky elektriny - ePaper s ESP32
[ 30.8.2025] (príspevkov 0)
Dojmy: VIETCONG
[ 28.8.2025] (príspevkov 0)
433 MHz prijímač s Arduinom v roku 2025
[ 26.8.2025] (príspevkov 0)