Home Assistant, Grafana i InfluxDB — wizualizacja danych na przykładzie MEW-01

Grafana to narzędzie, które pozwala wizualizację danych. Zobacz jak to zrobić w Home Assistant z użyciem bazy InfluxDB.

Grafana w Home Assistant

Grafana to bardzo dobre narzędzie do przygotowywania czytelnych wykresów wszystkich danych pomiarowych dostępnych w Home Assistant. W tym wpisie przedstawię jak krok po kroku skonfigurować Grafanę w HA i prezentować dane zaciągane do bazy InfluxDB.

Instalacja InfluxDB oraz Grafana

Na samym początku zaczniemy od instalacji bazy danych InfluxDB, która będzie rejestrować wartości sensorów z Home Assistant. Następnie, zainstalujemy Grafanę.

1. Przechodzimy do zakładki Supervisor w wcześniej skonfigurowanym Home Assistant.

Supervisor - Home Assistant
Supervisor – Home Asistant

2. W zakładce Sklep z dodatkami wyszukujemy: InfluxDB oraz Grafana.

Instalujemy InfluxDB i Grafana w Home Assistant
Instalujemy InfluxDB i Grafana w Home Assistant

3. Każdy z tych dodatków musimy zainstalować a nastepnie go uruchomić. Po instalacji dodałem każdy z nich do bocznego paska oraz ustawiłem uruchamianie po starcie Home Assistant. Przyda się to na pewno w momencie restartu naszej maszyny gdzie mamy zainstalowany Home Assistant.

Instalacja InfluxDB w Home Assistant
Instalacja InfluxDB w Home Assistant

4. Po instalacji InfluxDB. Możemy uruchomić ten dodatek. Naciskamy przycisk Uruchom.

Uruchamiamy InfluxDB w Home Assistant
Uruchamiamy InfluxDB w Home Assistant

5. Teraz czas na Grafana. Przechodzimy do instalacji.

Instalacja Grafana w Home Assistant
Instalacja Grafana w Home Assistant

6. Po chwili dodatek się zainstaluje. Uruchamiamy go oraz dodajemy do paska bocznego i zaznaczamy uruchamianie przy starcie.

Uruchamiamy Grafana w Home Assistant
Uruchamiamy Grafana w Home Assistant

7. Po uruchomieniu dodatków chwilę musimy odczekać. Załadowanie może potrwać do kilku minut. Wszystko zależy, od parametrów naszej maszyny, na której jest zainstalowany Home Assistant.

Konfiguracja InfluxDB

Na samym początku zajmiemy się konfiguracją InfluxDB. W tym etapie stworzymy naszą bazę danych oraz użytkownika. Baza danych, będzie przechowywać dane pomiarowe rejestrowane w Home Assistant np. temperatura, wilgotność itp.. U mnie przedstawię rejestrację danych z urządzenia MEW-01 (monitor energii elektrycznej).

  1. Z paska bocznego wybieramy InfluxDB i czekamy na załadowanie się tego dodatku.
Pierwsze uruchomienie InfluxDB w Home Assistant
Pierwsze uruchomienie InfluxDB w Home Assistant

2. Przechodzimy do zakładki InfluxDB Admin. Zobaczymy okno z wszystkimi dostępnymi bazami danych.

InfluxDB Admin
InfluxDB Admin

3. Tworzymy bazę danych, która będzie przechowywać parametry naszych sensorów dostępnych w Home Assistant. Wybieramy opcję Create Database.

InfluxDB Admin - tworzymy bazę danych
InfluxDB Admin – tworzymy bazę danych

4. Ustawiamy nazwę naszej bazy. Przykładowo homeassistant.

InfluxDB Admin - tworzymy bazę danych i zatwierdzamy wybór
InfluxDB Admin – tworzymy bazę danych i zatwierdzamy wybór

5. Po stworzeniu bazy. Pojawi się na liście jak poniżej.

InfluxDB Admin - nowa baza danych homeassistant
InfluxDB Admin – nowa baza danych homeassistant

UWAGA!
Czasami Home Assistant nie chce wysyłać danych do bazy InfluxDB. Odczytując logi, zauważyłem, że mój Home Assistant odwołuje się do bazy o nazwie home_assistant. Dlaczego? Nie odnalazłem na to pytanie odpowiedzi. Musiałem stworzyć nową bazę o nazwie home_assistant i wszystko zaczęło działać poprawnie.

InfluxDB Admin - nowa baza danych home_assistant
InfluxDB Admin – nowa baza danych home_assistant

6. Teraz czas na założenie użytkownika naszej bazy. Wybieramy zakładkę User, a następnie przycisk Create User.

InfluxDB Admin - tworzymy użytkownika
InfluxDB Admin – tworzymy użytkownika

7. Ustalamy hasło.. Należy je zapisać. Będzie nam potrzebne w konfiguracji Home Assistant.

InfluxDB Admin - tworzymy użytkownika i zatwierdzamy wybór
InfluxDB Admin – tworzymy użytkownika i zatwierdzamy wybór

8. Nowemu użytkownikowi nadajemy wszystkie uprawnienia. Wybieramy ALL, a następnie Apply.

InfluxDB Admin - przydzielamy użytkownikowi uprawnienia
InfluxDB Admin – przydzielamy użytkownikowi uprawnienia

9. Nowy użytkownik pojawi się na liście jak poniżej.

InfluxDB Admin - użytkownicy
InfluxDB Admin – użytkownicy

10. Czas na konfigurację Home Assistant. Wchodzimy do pliku configuration.yaml (najprościej użyć dodatku File editor. Napisałem o tym dodatku w moim poprzednim wpisie: Konfiguracja Supla dla Home Assistant przez MQTT) i dopisujemy kod influxdb.

Home Assistant - konfiguracja pliku configuration.yaml do współpracy z InfluxDB
Home Assistant – konfiguracja pliku configuration.yaml do współpracy z InfluxDB

W linijce kodu jak poniżej używamy naszego hasła, które użyliśmy przy zakładaniu nowego użytkownika bazy danych InfluxDB. Poniżej kod, który możemy skopiować. Wystarczy podmienić dane.

influxdb:
username: homeassistant
password: MojeHaslo
max_retries: 3
default_measurement: state

Uwaga!
Może się zdarzyć, że Home Assistant nie połączy się z InfluxDB. Powodem może być brakujący host. O to, zmodyfikowany kod:

influxdb:
host: NaszaNazwaHosta (np. a0u75994-influxdb)
port: 8086
username: homeassistant
password: MojeHaslo
max_retries: 3
default_measurement: state

Nazwę naszego hosta poznamy w szczegółach dodatku InfluxDB w zakładce Supervisor.

InfluxDB Admin - nazwa hosta
InfluxDB Admin – nazwa hosta

11. Po zapisaniu pliku configuration.yaml restartujemy Home Assistant. Po ponownym uruchomieniu powinniśmy w InfuxDB zobaczyć wszystkie nasze dane pomiarowe z sensorów dostępnych w HA. Przykładowe dane z urządzenia MEW-01 poniżej.

Home Assistant wysyła dane do InfluxDB
Home Assistant wysyła dane do InfluxDB

Konfiguracja Grafana

  1. Czas zająć się najprzyjemniejszą częścią. Przechodzimy do naszej Grafany. Dodamy naszą pierwszą bazę danych. W tym celu wybieramy przycisk Add your first data source.
Grafana - dodajemy bazę danych
Grafana – dodajemy bazę danych

2. Wyświetli się nam lista dostępnych baz. Wybieramy InfluxDB.

Grafana - wybieramy bazę InfluxDB
Grafana – wybieramy bazę InfluxDB

3. W tym kroku podajemy adres naszej bazy danych. Może to być http://localhost:8086 lub adres IP, na którym stoi nasz Home Assistant. W moim wypadku był to adres 192.168.1.249:8086.

Grafana - konfiguracja InfluxDB - adres IP
Grafana – konfiguracja InfluxDB – adres IP

4. Teraz czas na podanie danych związanych z bazą: nazwa, użytkownik i hasło. HTTP Method ustawiamy na GET.

Grafana - konfiguracja InfluxDB - nazwa bazy, nazwa użytkownika i hasło
Grafana – konfiguracja InfluxDB – nazwa bazy, nazwa użytkownika i hasło

5. Po wypełnieniu danych naciskamy przycisk Save & Test. Jeśli dane są poprawne to zobaczymy komunikat:

Grafana - baza danych poprawnie skonfigurowana
Grafana – baza danych poprawnie skonfigurowana

6. Teraz czas na stworzenie pierwszego wykresu. Wybieramy plusik i tworzymy naszą nową tablicę.

Grafana - dodajemy pierwszy panel
Grafana – dodajemy pierwszy panel

7. Naciskamy przycisk Add an empty panel i przechodzimy do okna konfiguracji pierwszego wykresu.

Grafana - dodajemy panel
Grafana – dodajemy panel

8. W zapytaniu ustawiamy skąd mają być pobierane dane i jaką z zmiennych chcielibyśmy wyświetlić.

Grafana - prezentacja przykładowych danych na wykresie
Grafana – prezentacja przykładowych danych na wykresie

9. Wybrałem zmienną: napięcie z fazy L1 urządzenia MEW-01 i ustaliłem jej nazwę. Dodatkowo, możemy ustawić takie parametry jak np. jednostkę, liczbę miejsc po przecinku itp.. W tym artykule nie będę tak szczegółowo to przedstawiać.

Grafana - prezentacja napięcia z MEW-01 na wykresie
Grafana – prezentacja napięcia z MEW-01 na wykresie

10. Zatwierdzamy ustawienia przyciskiem Apply. Po zapisie, zobaczymy nasz pierwszy wykres.

Grafana - przykładowy wykres napięcia z MEW-01
Grafana – przykładowy wykres napięcia z MEW-01

11. U mnie w domu poświęciłem trochę czasu i stworzyłem taki przykładowy panel. Film na YouTube. W jaki sposób to zrobiłem? To temat na osobny artykuł. 🙂

MEW-01 i Grafana w Home Assistant
MEW-01 i Grafana w Home Assistant

To tyle na dziś. Dziękuję za przeczytanie tego wpisu do samego końca.


Pełna jawność. Jako pracownik firmy ZAMEL, opisuję w moim blogu produkty tej firmy. Chcę podkreślić, że jest to moja prywatna inicjatywa. Niektórzy mogą zobaczyć w tym wpisie promocję marki ZAMEL i mają do tego pełne prawo.


Jeżeli cenisz moją pracę i chciałbyś dać wyraz swojego wsparcia, rozważ postawienie kawy. Dziękuję 🚀🤗

Postaw mi kawę na buycoffee.to