De historische gegevens van Home Assistant domains zoals sensors, switches, lights, alarm_panel, etc… kunnen opgeslagen worden in een database die dan weer door Grafana gebruikt kan worden om er mooie grafische voorstellingen van te maken.

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 de Supervisor kunnen de volgende plug-ins 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
  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.

Grafana

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