InfluxDB – Grafana

De gebeurtenissen vanuit Home Assistant domains zoals sensors, switches, lights, alarm_panel, etc… kunnen opgeslagen worden in een database binnen HA maar dat is niet aanbevolen voor ‘long-term’ data.

Zeker op een Raspberry Pi installatie met een SD-card als storage is het beter om ‘long-term’ data op te slaan op een externe database om zodoende de schrijf-acties naar de SD-Card te verminderen waardoor deze een langere ‘levensduur’ heeft.

Via Instellingen -> Add-ons kunnen de volgende applicaties geïnstalleerd worden:

  • InfluxDB
  • Grafana

Mocht je de ‘core’ versie van HA gebruiken, InfluxDB en Grafana zijn ook als losse apps te installeren op een Raspberry Pi of in een VM.

InfluxDB

InfluxDB is een zogenaamde time-series database en zag het levenslicht in 2013. Time-series houdt in dat het ge-optimaliseerd is voor data waaraan een ‘timestamp‘ is toegevoegd. Voorbeelden van dit type data is o.a. CPU load, network speed, disk temperatuur of memory gebruik. Daarnaast dus ook uitermate geschikt voor historische gegevens van bv. sensors vanuit Home Assistant. InfluxDB is geschreven in Go, wat resulteert in een executable met zeer kleine ‘footprint’ waardoor het prima kan draaien op een Raspberry Pi.

Gebruik de volgende configuratie:

Na de installatie van InfluxDB is ‘Chronograf‘ bereikbaar via het menu van HA of via poort 8086 op de localhost. Nu kan een gebruiker aangemaakt worden via ‘InfluxDB Admin’ – ‘Users‘, bijvoorbeeld ha_user met ha_password:

Vervolgens kan een database gemaakt worden via ‘InfluxDB Admin’ -> ‘Databases‘, bijvoorbeeld ‘home_assistant’

Om deze te kunnen gebruiken in Home Assistant, wordt het volgende in configuration.yaml gezet met als voorbeeld het energie-verbruik:

influxdb:
  host: 192.168.1.86
  database: home_assistant
  username: !secret influx_user
  password: !secret influx_password
  default_measurement: state
  include:
    entities:
      - sensor.gas_usage_today
      - sensor.energy_usage_today

Uiteraard dienen hier de entities gebruikt te worden die in jouw Home Assistant gebruikt worden. De default_measurement: state wordt gebruikt voor de sensors die geen ‘unit of measurement’ hebben zoals switches, e.d.

  • Restart HA.

InfluxDB Explore

Om data te zien binnen InfluxDB is er de Explore optie. Hier kunnen door middel van queries de data grafisch inzichtelijk worden gemaakt en eventueel opgeslagen worden in een Dashboard. Via ‘Add query’ verschijnt een leeg scherm en hier kan de data gekozen worden. Voor Home Assistant is dat de ‘homeassistant.autogen‘ met daarin de diverse sensors die via de configuratie ingesteld zijn.

Na het selecteren van een getoonde entiteit, zal er een query en een grafiek getoond worden:

rechtsboven kan dan gekozen worden om de grafiek in een Dashboard te plaatsen.

Grafana

Met Grafana kunnen ook dashboard gemaakt worden aan de hand van de data vanuit influxDB en deze dashboards kunnen dan weer in een Home Assistant pagina worden getoond.

Gebruik de volgende configuratie voor Grafana.

Hierna start Grafana en is bereikbaar via het HA-menu of op de localhost via poort 3000.

Er dient nu een data source aangemaakt te worden om InfluxDB te koppelen aan Grafana. Via Config -> Data Source

Vul de gegevens in bij HTTP:

en bij Database:

en gebruik ‘Save & Test’.

Grafana Dashboard

In Grafana wordt nu een Dashboard met een Graph gemaakt. Gebruik de volgende query-instelling als voorbeeld:

Als we dit uitbreiden met een tweede (B) en derde (C) query voor andere sensors, bijvoorbeeld

dan resulteerd dat in een grafiek die er zo uit gaat zien:

Via de share link optie kan de URL van deze graph gekopieerd worden en in een Lovelace dashboard van Home Assistant getoond worden als Web-pagina. Voor een auto-refresh van 5 minuten en een history van het afgelopen uur, voeg het volgende toe aan de URL:

&from=now-1h&to=now&refresh=5m&theme=light