HA Verlauf: mehr als 10 Tage? Long Time Statistic (LTS)

 

Der Verlauf in Home-Assistant zeigt standardmĂ€ĂŸig die StatusĂ€nderungen der letzten 10 Tage und ergĂ€nzt Ă€ltere Daten fĂŒr bestimmte EntitĂ€ten von der Langzeitstatistik: Long Time Statistic (LTS). Welche EntitĂ€ten das sind und wie die Daten in Home Assistant gespeichert werden, erfĂ€hrst du in diesem Artikel.

FĂŒr das Speichern von historischen Werten besitzt Home Assistant eigene Datenbank-Tabellen, wodurch als Beispiel das Energiedashboard auch Daten Ă€lter als 10 Tage anzeigen kann. Aber nicht nur das Energie-Dashboard kann die Langzeitstatistikdaten verwenden.

EntitÀten mit Langzeitstatistik (LTS)

Voraussetzung fĂŒr das Aufzeichnen der Langzeit-Statistikdaten (Long-term statistics = LTS) ist das Attribute "state_class" mit einer der Eigenschaften: "measurement", "total" oder "total_increasing".

Ein Blick in die Entwicklertools / ZustÀnde verrÀt uns, ob eine EntitÀt zusÀtzlich zu den StatusÀnderungen auch LTS-Daten aufzeichnet.

Sollten die Attribute fehlen, können diese ĂŒber die Datei customize.yaml hinzugefĂŒgt werden. Als Beispiel habe ich die Eigenschaften fĂŒr einen Riemann Summenintegralsensor zur Langzeitstatistik hinzugefĂŒgt, indem ich den Sensor nach dem Anlegen zusĂ€tzlich in der customize.yaml-Datei hinzugefĂŒgt habe: 

In der customize.yaml kann der Sensor mit dessen ID angesprochen werden, hier "sensor.heating_energy" und mit den Eigenschaften "state_class" und "device_class" ergÀnzt werden:

sensor.heating_energy:
  state_class : total_increasing
  device_class: energy
  last_reset: "2000-01-01T00:00:00+00:00"
  unit_of_measurement: kWh

Um die Langzeitstatistikdaten mit Bordmitteln, also ohne zusÀtzlicher Integration anzeigen zu können, bietet Home Assistant die Lovelance-Karte "Statistikdiagramm":

Hier ein Beispiel fĂŒr die PV-Produktion meines Balkonkraftwerks: tĂ€glich und monatlich:

Anders als beim Energiedashboard können der Zeitraum oder die anzuzeigenden Tagen derzeit noch nicht im Frontend angepasst werden: Die Werte sind in der Karte fixiert. Durch das Dezember 2023-Update kann der Verlauf jetzt auch auf die LTS-Daten zurĂŒckgreifen, daher vermute ich, dass in diese Richtung sicherlich weitere Verbesserungen folgen. Bis es so weit ist, kann auf bestimmte Custom-Repositories, wie die history-explorer-card zurĂŒckgegriffen werden.

Statistik-Daten im Dashboard interaktiv erforschen: History-Explorer-Card 

Siehe: github.com/alexarch21/history-explorer-card

Was steckt hinter der LTS-Funktion?

Intern verwendet Home-Assistant verschiedene Datenbank-Tabellen fĂŒr das Speichern der Daten. Die Tabelle "states" speichert sĂ€mtliche StatusĂ€nderungen, was ĂŒber einen lĂ€ngeren Zeitraum nicht nur eine hohe Datenmenge produziert, sondern dadurch die Performance von Home-Assistant beeinflussen wĂŒrde. Aus diesem Grund löscht Home Assistant Daten die Ă€lter als 10 Tage sind. Verantwortlich fĂŒr das AufrĂ€umen der Statusdaten ist die Einstellung: purge_keep_days, diese rĂ€umt Daten Ă€lter 10 Tage auf und löscht diese, siehe: www.home-assistant.io/integrations/recorder/. Das Ändern dieser Einstellung ist aber nicht unbedingt eine gute Idee, da ein lĂ€ngerer Zeitraum mehr Daten produziert und Home-Assistant bei einem zu hohen Wert ausgebremst wird.

Um dennoch auf Daten die Ă€lter als 10 Tage sind zugreifen zu können, ermittelt Home-Assistant fĂŒr die Sensoren Durchschnitts-, Minimal- und Maximalwert und schreibt diese in eigene Tabellen:

In die Tabelle "statistics_short_term" werden alle 5 Minuten Durchschnitts-, Minimal- und Maximalwert abgelegt. Auch die Tabelle statistics_short_term verwirft Daten die Ă€lter als 10 Tage sind, genau wie dessen Ursprungstabelle "states". Anders bei der Tabelle "statistics", diese speichert die Statistik-Daten Durchschnitts-, Minimal- und Maximalwert fĂŒr jede Stunde und löscht diese nicht. Ein Blick in die SQLite-Datenbank zeigt uns die Daten:

Als Format fĂŒr Datum und Uhrzeit verwendet Home Assistant Unix-Timestamps:

Um den Unix-Timestamp auf ein lesbares Datum umzuwandeln, habe ich ein kleines JavaScript-Tool auf dieser Seite veröffentlicht: Datum umwandeln: Unix Timestamp

Die interne Datenbankstruktur von Home-Assistant kann auch anhand des folgenden Beispiels vermutet werden: Versuche ich in der Statistik-Karte als Zeitraum 5 Minuten einzustellen, kann diese nur bis zu 10 Tage anzeigen. WĂŒrde ich einen 11ten Tag auswĂ€hlen, zeigt die Karte nichts mehr an:

Wechsle ich hingegen auf "Stunde", verwendet die Karte offensichtlich die Tabelle "statistics" und zeigt auch Daten die Àlter als 10 Tage sind an: 

Fazit

Das Verhalten von Home-Assistant beim Speichern der Sensor-Daten ist mehr oder weniger ein Kompromiss aus den gespeicherten Details und dem Alter der Daten: FĂŒr die letzten 10 Tage sind sĂ€mtliche StatusĂ€nderungen verfĂŒgbar, darĂŒber hinaus kann nur mehr im Stundenintervall auf die Statistik-Tabelle zugegriffen werden. Funktionell hat sich in Home-Assistant hier in der Vergangenheit einiges getan, dennoch kann Home Assistant beim Speichern von historischen Daten nicht mit einer Timeseries - Datenbank wie InfluxDB und beim Visualisieren mit einer Lösung wie Grafana mithalten.

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE fĂŒr deine Bewertung!

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details