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 angelegt 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

Sind die Attribute vorhanden, werden die Statistiktabellen bef√ľllt.

Historische Daten im Verlauf

Um die Langzeitstatistikdaten können am einfachsten im Verlauf angezeigt werden:  

Die aktuellen Daten der letzen 10 Tage werden im Verlauf etwas dunkler angezeigt, die Daten aus den History-Tabellen etwas heller.

In Home Assistant inkludiert: Statistikdiagramm

Ohne zus√§tzlicher Integration k√∂nnen historische Daten √ľber die Lovelance-Karte "Statistikdiagramm" visualisiert werden:

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. Bis es dazu weitere Verbesserungen in Home Assistant gibt, kann auf bestimmte Custom-Repositories, wie die Plotly Graph Card ¬†zur√ľckgegriffen werden. Plotly Graph erm√∂glicht ein interaktives Scrollen, Vergr√∂√üern und Verkleinern von Charts. Anfangs habe ich Plotly Graph nur f√ľr aktuelle Sensordaten eingesetzt, Plotly kann aber auch mit historischen Daten umgehen:

Plotly Graph

Die Option "period" in¬†Plotly Graph passt die Datenpunkte an den Zoom-Faktor an und verwendet mehr oder wengier Details aus den Statistik-Tabellen. Die Plotly Graph Card kann √ľber den Home Assistant Community Store (HACS) installiert werden.

 

F√ľr die Einstellung muss Ploty Graph im YAML-Editor angepasst werden.¬†Hier ein Beispiel f√ľr die Visualisierung eines Temperatursensors:

[+]
type: custom:plotly-graph
title: Temp
entities:
  - entity: sensor.aussen_temperature
    yaxis: y2
    showlegend: true
    show_value: true
    fill: tozeroy
    name: wwūüĆ°
    period: auto
    fillcolor: rgba(255, 255, 0, 0.1)
    line:
      color: orange
      smoothing: 0.5
      shape: spline
      width: 1
hours_to_show: 800
refresh_interval: auto
layout:
  xaxis:
    rangeselector:
      buttons:
        - count: 3
          step: hour
        - count: 12
          step: hour
        - count: 30
          step: day
        - count: 365
          step: day
  yaxis:
    zeroline: true
    fixedrange: true
  legend:
    'y': 1.05
  margin:
    l: 35
    r: 43

Ohne der Option "period" verwendet Plotly die aktuellen Statusdaten. Urspr√ľnglich habe ich hier zus√§tzlich die¬†History-Explorer-Card vorgestellt. Nachdem Home-Assistant mittlerweile √ľber dessen Verlauf auf die Statistikdaten zugreifen kann und mit Plotly Graph wesentlich flexiblere Cards zusammenstellt werden k√∂nnen, habe ich die Card nicht mehr in Verwendung und auch hier entfernt.

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. Wer damit leben kann, dass Daten √§lter als 10 Tage nur mehr st√ľndlich verf√ľgbar sind, findet mit Plotly Graph dennoch eine w√ľrdige Alternative.

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