====== InfluxDB a Grafana ======
InfluxDB je databáze speciálně navržená pro time series. Je ideální pro IOT, protože dokáže sbírat a efektivně komprimovat velké množství dat v čase. Grafana zase umí vytvářet grafy a má už připravené konektory právě pro InfluxDB. Krásným úvodem do této problematiky poslouží video:
{{youtube>Ukokzz34P3Y?}}
Ve videu je několik užitečných pointů:
* projekt [[https://github.com/hardwario/bch-mqtt2influxdb|MQTT to InfluxDB]], který stačí nakonfigurovat pomocí yaml souboru. Po spuštění pak ukládá data z mqtt do influxdb.
* dále je jsou tam užitečné informace, jak měřit teplotu zdí, vypočítat rosný bod a možnost zjištění, kdy začíná voda na zdi kondenzovat a tím pádem dochází dříve nebo později ke vzniku plísní
===== InfluxDB =====
root@cd4f015bfcc6:/# influx
Connected to http://localhost:8086 version 1.8.10
InfluxDB shell version: 1.8.10
> show databases
name: databases
name
----
> create database mojeinfluxdb;
> show databases;
name: databases
name
----
mojeinfluxdb
> show measurements;
name: measurements
name
----
sensors
> select * from sensors where time > now()-50s;
Dále v propojení s NodeRED vycházím z tohoto návodu:
{{youtube>yHTWzFpgCuk?}}
Pro nastavení práv v influxdb pomůže návod: https://sensorsiot.github.io/IOTstack/Containers/InfluxDB/#authentication
Záznam v InfluxDB se skládá ze 4 částí:
* measurements -> ekvivalent názvu tabulky. Říká o jaké jde měření.
* tags -> tagy umožňují popsat naměřené údaje metadaty.
* fields -> obsahují naměřené hodnoty
* time -> doplní se automaticky, pokud nic nezadám
Příklady:
* sensors, location=brno room=kitchen, temperature=15.5 humidity=55
* sensors, location=liberec room=livingroom, temperature=21.5
==== Užitečné příkazy v InfluxDB ====
Tento příkaz vypíše datové typy jednotlivých "sloupců" v measurments:
show field keys;
===== InfluxDB2 =====
{{youtube>FFACAHGtIZo?}}
===== Grafana =====
Video, jak natáhnout grafy z Grafany do NodeRed UI. Dále může být užitečná [[it:server:monitoring:grafana|instalace v dockeru a konfigurace Apache]].
{{youtube>wbhREeTIzS8?}}
Po instalaci je přihlašovací jméno **admin** a přihlašovací heslo **admin**.
==== Animace ====
Zazujal mě vizualizace typu Canvas. Díval jsem se do dokumentace a tohle video vypadalo velmi atraktivně:
{{youtube>_Wt2flpuXW0?}}
Když jsem pročítal fóra, tak jsem zjistil, že byla použita vizualizace Canvas. Podle videa jsem očekával, že budu moct prvky rozhýbat. Ale realita je trochu jinde.
Jediný užitečný a nastavitelný prvek je [[https://github.com/grafana/grafana/blob/5797fbc0b2475352a9d080e1433cb9f92bb6c9de/public/app/features/canvas/elements/windTurbine.tsx|WindTurbine]]. V Grafaně je nachystaná animace, kde mohu nastavovat otáčky a podle toho se větrná turbína vizuálně otáčí.
Když jsem hledal informaci o solární elektrárně z videa, tak jsem [[https://community.openhab.org/t/grafana-9-2-new-canvas-plugin-allows-data-driven-free-layout-dynamic-panels/140695/2|zjistil]], že animace toku energie je pouze [[https://www.sunnova.com/-/media/Marketing-Components/Infographic/Solar-Storage-For-Non-Export-Markets/Solar-Storage-Export-Outage-Day.ashx|gif obrázek]], do kterého jsou vloženy hodnoty z Grafany.
Pak jsem objevil video s pluginem [[https://github.com/algenty/grafana-flowcharting|flowcharting]], který se musí do Grafany doinstalovat.
{{youtube>n7-F_TpIV_M?}}
Podle videa to vypadá, že by šlo hezky vytvořit grafiku v [[https://app.diagrams.net|diagrams.net]] a následně ji rozpohybovat a vytvořit reakce na data.
Jako vzor může posloužit ukázkový [[https://play.grafana.org/d/Kcic5xeWz/flowcharting-events-and-animations?orgId=1|výstup z Grafany]]. Jednotlivé elementy se mění podle náhodně načtených čiselných hodnot v nich.
K dalšímu návodu poslouží [[https://algenty.github.io/flowcharting-repository/|dokumentace]] a [[https://algenty.github.io/flowcharting-repository/STARTED.html|getting started]].