blog.vyoralek.cz

Centrum chytré domácnosti – HomeAssistant (Hass.io) – 12 část – zobrazení senzorových dat pomocí InfluxDB a Grafany

Pomocí sensorů v HomeAssistentovi můžeme sbírat senzorová data z mnoha zdrojů. Samotné zobrazení historických dat pak není přímo v HomeAssistentovi úplně ideální a tak si ukážeme jak na to lépe.

Jedním z řešení zobrazení historických senzorových data je použítí kombinace time series databáze – samotný Homeassistant používá v základní konfiguraci souborovou databázi SQLite, která není úplně nejlepší volbou pro tato data – a webového rozhraní Grafana.

InfluxDB

InfluxDb je databázový systém, který je specializovaný na ukládání time series data, tj. dat které jsou přímo spojené s časem.

Instalace InfluxDB

Nejrychlejším řešením pokud máte Hass.io je opět použití addonu, který najdeme v sekci Hass.io -> Add-on store -> Community Hass.io Add-ons.

Addon InfluxDB v Hass.io
Addon InfluxDB v Hass.io
Addon InfluxDB v Hass.io

V základní konfiguraci není víceméně potřeba nic měnit, pouze pro první spuštění se může hodit nastavení Log levelu na Info.

{
  "log_level": "info",
  "auth": true,
  "ssl": false,
  "certfile": "fullchain.pem",
  "keyfile": "privkey.pem"
}

Addon má už několik verzí podporu Ingress integrace, tj. v nastavení si můžeme zapnout Show in sidebar a v hlavním menu HomeAssistenta se nám objeví nová položka InfluxDB.

Konfigurace InfluxDB

Na položku InfluxDB v menu HomeAssistenta klikneme a měli bychom být automaticky přihlášeni. V levém menu si najdeme předpoklední položku (symbol koruny), což je InfluxDB admin, kde přidáme novou databázi s názvem homeassistent.

Přidání databáze do InfluxDB
Přidání databáze do InfluxDB

Dalším krokem je pak přidání uživatele přes záložku Users. Můžeme přidat uživatele dva – jednoho použijeme pro přístup z HomeAssistentu, tj. ukládání dat a druhého pro čtení dat do Grafany.

Přidání uživatele do InfluxDB
Přidání uživatele do InfluxDB
Nastavení práv do databáze
Nastavení práv do databáze

Tím máme část InfluxDB hotovou a můžeme se podívat na nastavení HomeAssistenta pro zapisování hodnot senzorů.

Konfigurace HomeAsssistenta pro zapisování senzorových dat

Veškerou konfiguraci můžeme provést přímo v hlavním konfiguračním souboru configuration.yaml, kde přidáme nastavení s názvem influxdb.

Vyplníme následující

  • host – název serveru, kde běží influxdb – v našem případě pokud jsme influxdb instalovali přes addon Hass.io to bude vždy hodnota a0d7b954-influxdb
  • database – název databáze pro Homeassistent data, kterou jsme vytvořili výše
  • username / password – uživatelské jméno a heslo pro přístup do InfluxDB, které jsme vytvořili výše
  • include -> entities – tento parameter je nepovinný. Pokud ho nevyplníme budou zahrnuty automaticky všechny senzory. Já pro můj účel používám vlastnost include, která pak obsahuje seznam vše senzorů z kterých chceme data do InfluxDB ukládat. Můžeme použít i obrácený způsob, tj. Exclude a automaticky bude přidáno vše, kromě vyjmenovaných entit.

Konfigurace pak může vypadat například takto:

influxdb:
  host: a0d7b954-influxdb
  database: homeassistant
  username: !secret influxdb_username
  password: !secret influxdb_password
  include:
    entities:
      - sensor.pocasi_temperature
      - sensor.pocasi_humidity
      - sensor.pocasi_pressure
      - sensor.temperature_158d00025c0218
      - sensor.temperature_158d00025e949f
      - sensor.humidity_158d00025c0218
      - sensor.humidity_158d00025e949f
      - sensor.xiaomi_miio_device_temp
      - sensor.xiaomi_miio_device_humidity
      - sensor.xiaomi_miio_device_aqi
      - sensor.myroom_xiaomi_switch_battery_level
      - sensor.myroom_xiaomi_temp_battery_level

Grafana

Posledním dílkem do naší dnešní skládačky je Grafana – webové rozhraní pro analýzu a zobrazení dat nejen z InfluxDB.

Instalace Grafany

V případě Hass.io je instalace opět jednoduchá. V addonech si najdeme položky Grafana .

Addon Grafana v Hass.io
Addon Grafana v Hass.io

Konfiguraci můžeme opět nechat ve výchozím stavu. Pouze pro první spuštění nebo při problémech se může hodit nastavení Log Level na info.

{
  "log_level": "info",
  "ssl": false,
  "certfile": "fullchain.pem",
  "keyfile": "privkey.pem",
  "plugins": [],
  "env_vars": []
}

Grafana bohužel nemá zatím Ingress podporu pro Homeassistent a tak ji musíme buď do menu přidat ručně a nebo spoustit v nové záložce – výchozím portem je 3000.

Nastavení datového zdroje InfluxDB pro Grafanu

Po zadání správné adresy do prohlížeče bychom měli vidět přihlašovací obrazovku Grafany. Po výchozí instalaci použijeme tyto údaje: admin / hassio.

Přihlašovací obrazovka Grafana
Přihlašovací obrazovka Grafana

A průvodce na hlavní obrazovce bude rovnou posunutý na druhý krok – přidání datového zdroj – Add data source.

Kroky po instalaci Grafany
Kroky po instalaci Grafany

A vyplníme následující údaje:

  • Name – název zdroje dat, např. InfluxDB
  • HTTP -> URL – pokud jsme instalovali přes addon Hassio pak http://a0d7b954-influxdb:8086
  • InfluxDB Details -> Database – název InfluxDB, v našem případě homeassistant
  • InfluxDB Details -> User / Password – uživatelské jméno a heslo do influxDB – můžeme použít stejné jako pro Homeassistent a nebo speciální pro Grafanu
Nastavení datového zdroje Grafany z InfluxDB
Nastavení datového zdroje Grafany z InfluxDB

Přidání grafu na Dashboard

Dashboard je základním kamenem Grafany. Do Dashboardu pak přidáváme jednotlivé grafy, kterou jsou v tzv. panelech.

Přidání nového panelu Grafany
Přidání nového panelu Grafany

Každý panel má dvě části:

  1. Dotazovací část – zde definujeme, která data z datového zdroje chceme zobrazit
  2. Vizuální část – zde nastavíme, jak má vypadat následná grafická reprezentace dat z prvního kroku

V dotazovací části tak můžeme například vybrat, že chceme zobrazit údaj v stupních Celsia a omezit pouze na jednu entity, která odpovídá názvu entity v HomeAssistentovi.

Dotazovací část nastavení panelu Grafany
Dotazovací část nastavení panelu Grafany

Ve vizuální části pak určíme typ grafu, jak reprezentovat prázdná místa (časové oblasti pro která nemáme data) a také co se má zobrazit na jednotlivých osách a v legendě.

Vizuální část nastavení panelu Grafany
Vizuální část nastavení panelu Grafany

Výsledný graf pro tři senzory v jednom grafu pak může vypadat například takto:

Vizuální reprezentace senzorových data v Grafaně
Vizuální reprezentace senzorových data v Grafaně

Kontrola dat v InfluxDB

Můžete se dostat do situace, kdy si z jakéhokoliv důvodu nejste jisti zda jsou data správně z HomeAssistenta předávána do InfluxDB a potažmo pak zobrazena v Grafaně.

Nejrychlejší způsob jak to zkusit je spustit si administraci InfluxDB – pokud máte instalaci přes Hassio addon pak můžete přidat rychlou ikonku do levého menu – a v té pak vybere možnost Explore.

V dolním menu DB.RetentionPolicy vybereme položku homeassistant.autogen a podle jednotky sledované hodnoty – např. stupně celsia si můžeme zobrazit všechny entity, z kterým máme údaje. Pro zobrazení grafu si ještě v sekci Fields vybereme value a změníme filter grafu na Past 24h a měli bychom vidět např. graf teploty za posledních 24 hodin.

Zobrazení dat v InfluxDB

Pokud máte jakékoliv dotazy neváhejte se zeptat v komentářech. Možností použití těchto dvou technologií jsou poměrně obsáhle a já jsem se tak snažil ukázat jak na to v jednom konkrétním případě.

Kompletní série o HomeAsistantovi obsahuje následující články:

  • 1. část – Představení HomeAsisstent – tento článek
  • 2. částIntegrace Sonoff s firmware Sonoff-Tasmota
  • 3. částIntegrace Homekit
  • 4. částIntegrace Sonoff s firmware Sonoff-Tasmota – 2 část
  • 5. částIntegrace s Wemos D1 a senzory teploty
  • 6. částIntegrace Sonoff s firmware ESPHome
  • 7. částIntegrace Sonoff POW s firmware ESPHome
  • 8. částIntegrace LED Magic Home s firmware ESPHome
  • 9. částIntegrace Xiaomi Mijia a Aqara
  • 10. část – Integrace vlastní Zigbee gateway
  • 11. část – Vzdálený přístup do Hass.io z Internetu
  • 12. část – zobrazení senzorových data pomocí InfluxDB a Grafany
  • 13. část – Hass.io Add-ony, které používám
  • 14. část – Integrace Xiaomi Mi Flora
  • 15. část – Integrace Withings (Nokia)
  • 16. část – náhrada SQLite databází MySQL

7 komentářů

Napsat komentář

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • Malicka oprava: HA nepouziva LiteSQL, ale SQLite 😉 (SQLite je databaza, LiteSQL je C++ kniznica pre pracu s SQLite databazami)

  • Dobry den.
    Nasel jsem na aliexpresu termostat na ovladani kotle
    US $35.47 31% Off | Echo Alexa WiFi Thermostat Smart Programmable Water/Gas Boiler Heating Floor Winter Voice Control Room Temperature Controller
    https://s.click.aliexpress.com/e/0Dyhx88
    Sel by preprogramovat pro ovladani pres Home Asistant. Mam IOS a s variantu pro homekit jsem nenasel. Myslim, ze by to pro Vas mohlo byt zajimave tema.
    Dekuji za Vase skvele clanky a doufam, ze na toto tema napisete dalsi.
    S pozdravem Martin

    PS: nepodarilo se mi odeslat vam normalni email, pres Vas kontakt. Klidne tetno dotaz nezverejnujte je jen pro Vas

    • Taky se primlouvam za nejaky termostat propojeny s hassio aby se daly ovladat zigbee hlavice a spinac pro kotel.

  • Dobry den jsem zacatecnik a podle navodu se snazim nastavit influx db, HA a grafana. Mam sonoff TH s Tasmotou a Rpi3+ . vlastne vsechno probiha v pohode jen grafana, kdyz zadavam data source tak pise „Network Error: Bad Gateway(502)“ nejak se přes to nedokazu posunout. Nevite cim by to mohlo byt?

  • Zdravím, pokusil jsem se na základě Vašeho článku získat data z Xiaomi senzorů které mám v HA (zde vidím akturíl. teploty….) bohužel na grafaně nevidím nic – žádná data to netahá můžete mi nějak poradit?

    Můžeme se třeba propojit online a podívat se na to?
    díky

    • Omlouvám, se ale momentálně nejsem z časových důvodů vám schopen přímo online pomoct. Nicméně rozšířil jsem článek o nový odstavec – Kontrola dat v InfluxDB – zkuste se na něj prosím podívat, zda vám to nepomůže.

%d blogerům se to líbí: