czwartek, 15 października 2020

Home Assistant, InfluxDB i Grafana. Ponownie na tapecie. Cześć druga.

Tekst jest kontynuacją artykułu: http://cezarowy.blogspot.com/2020/10/home-assistant-influxdb-i-grafana.html.

Dobra, dane już mamy. Pora je jakoś gdzieś pokazać. Do tego posłuży nam właśnie Grafana. Instalacja podobnie bezproblemowa jak w przypadku innych dodatków.



Pora dodać źródło danych, w naszym przypadku będzie to wcześniej skonfigurowana baza InfluxDB.



W konfiguracji BARDZO ważna sprawa - wszystkie te dodatki są osobnymi kontenerami Dockera, dlatego musimy się posłużyć specjalnym adresem URL aby skierować Grafana na nasz InfluxDB.

Ten adres to: http://a0d7b954-influxdb:8086


Później już standard, który skonfigurowaliśmy: 
- Database: home_assistant
- User: homeassistant
- Password: jak podawaliśmy przy konfiguracji bazy InfluxDB

WAŻNE po raz kolejny. Najpierw ustawiłem HTTP Method na GET, co jest raczej logiczne - w końcu pobieramy dane. Jednak po jednej z aktualizacji nie udało mi się pobrać danych. Zmieniłem za zaleceniem znalezionych sugestii w internecie na POST i zadziałało. Magia...


Skoro źródło mamy, to możemy dodać pierwszy Dashboard. Czyli pulpit na którym umieścimy nasze wykresy, dane, itp. 


Zwróćcie uwagę na opcję Convert to row - przyda nam się później.


Od razu pojawia nam się panel z możliwością wpisania kwerendy (Query - w języku SQL zapytanie do bazy danych, które ma zwrócić pożądane przez nas wyniki). W naszym przykładzie dodaliśmy dwa czujniki temperatury, nie jest więc niczym wielce niezwykłym, że na razie w miarach (czyli typie danych które chcemy pozyskać) jest wyłącznie stopień Celsjusza. Jeżeli dodacie kolejne, pojawi się ich więcej (wilgotność, %, Mbit/s, Watt, cm, kwh) - wszystko zależy od tego co mierzycie.


Świetnie, coś się pojawia. W prawym górnym rogu macie zasięg czasowy jaki nas interesuje (godzina, 24 godziny, dzień, miesiąc, miesiąc do teraz, poprzedni miesiąc, itp.), w prawym dolnym dość ważny parametr. Dane z czujników czasem są podawane w sposób ciągły (na przykład co kilka sekund), ale niektóre robią to przy zmianie ich wartości. Tak jest na przykład z czujnikami temperatury Xiaomi - jeżeli nie ma zmiany w odczycie, to aktualizują się bodajże co 15 minut. To by powodowało na wykresie 'dziury' - dlatego zaznaczcie 'connected'. Stworzy nam to sensowny wykres. 


Rozwińcie później strzałkę przy Legend i sprawdźcie sekcję Values - tam możecie wstawić na wykres pewne informacje dotyczące minimalnej, maksymalnej, średniej i aktualnej temperatury. Ja sobie lubię ją zrobić w formie tabeli, jak poniżej.


Takie panele można duplikować (najedźcie na panel, rozwińcie strzałką w dół -> More... -> Duplicate), dzięki temu możemy później w nie szybko wejść, zmodyfikować kwerendę o nazwę czujnika i wyklikać jak poniżej kilka z nich. Teraz czujecie moc? Nie zapomnijcie zapisywać Dashboardu.


No dobra, wykresy mamy. Do wielu zastosowań jednak przydają się zegary. W poprzednich wersjach Grafana robiło się to trochę inaczej, teraz po dodaniu panelu wybieramy Visualization i zmieniamy jak chcemy, na przykład na Gauge.


Podstawowo wygląda to jak poniżej. Jest pewna wartość, którą system interpretuje w formie 'prędkościomierza'. 


Aby ją trochę ubarwić i zrobić mniej monotonną, więcej znaczącą musicie przejść na zakładkę Fields i zdefiniować Thresholds, czyli zakresy w których mają się zmieniać kolory na podstawie danych.


Od -20 (w sumie to od -max) do 5 stopni - niebieski kolor, bo zimno, później zielony aż do 25, 25 w górę - czerwony. 

Jest tu mnóstwo opcji, możliwości - pokazałem Wam zaledwie mały zarys, można spędzić nad tym wiele godzin. Co jest fantastyczne - można te wykresy osadzić bezpośrednio w HA, ale o tym później. Wcześniej kilka dodatkowych sugestii.

Aby po wejściu w zakładkę Grafana od razu pojawił się Wasz piękny, stworzony w pocie czoła pulpit wejdźcie w Configuration -> Preferences i tam wybierzcie go z listy.


Kolejna sugestia - aby rozdzielić logicznie wykresy, zegary, dane o temperaturze, systemie, itp. - przy dodawaniu panelu wybierzcie Convert to row, o którym pisałem wcześniej. Dodacie sekcję, którą później możecie zwijać, rozwijać - jak Wam wygodnie. Bardzo ułatwia nawigację, gdy będziecie mieli kilkadziesiąt paneli.


Na wykres można oczywiście wrzucić więcej niż jedną serię danych (Download/Upload, Temperatura/Wilgotność), odpowiednią ją sformatować, itp. itd. Ale to już innym razem.


Powodzenia!

1 komentarz: