====== 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]].