Energie, die einen Neustart von Home Assistant übersteht: warum Statistiken Stunden verlieren und wie die Lücke gefüllt wird

  • Getestet mit Firmware v1.2.1
  • Erste Schritte

Home Assistant fällt für zwanzig Minuten aus — ein Update, ein Neustart, ein Stromausfall. Dann läuft es wieder, und im Energie-Dashboard klafft entweder ein Loch an der Stelle des Abends oder eine Spitze in der Stunde der Rückkehr, die niemand verbraucht hat.

Das Muster ist so vertraut, dass die Leute es in einem Satz wiedererkennen:

"Es addiert einfach die ganze Energie, die Sie verpasst haben, auf die Stunde, in der das System wieder eingeschaltet wurde." — anon11644107, Home-Assistant-Forum, Thread 965144

Und die andere Form, wenn stattdessen ein Gerät neu startet:

"Dadurch starten unsere Shelly 3EMs neu, und HA verzeichnet eine große Spitze von 1000's kWh Verbrauch." — msa, Thread 479362

Warum es passiert und warum es nicht an Ihrer Konfiguration liegt

Zwei Mechanismen, beide gewöhnlich.

Der Zähler holt alles auf einmal nach. Ihr Zähler hat weitergezählt, während Home Assistant nicht zuhörte. Wenn es wiederkommt und den Zähler erneut liest, trifft der ganze Unterschied in einem einzigen Messwert ein — und landet in der Stunde des Neustarts, weil genau dann aufgezeichnet wurde. Die Energie ist echt. Die Stunde nicht.

Oder der Zähler läuft rückwärts. Ein Gerät, das die Stromversorgung verliert, kann bei null wieder starten. Ein kumulativer Sensor liest das als Zählerrücksetzung, und danach folgt entweder eine verschwundene Summe oder eine erfundene:

"Dadurch springt Ihre Energie von 4445 kWh auf 0 kWh" — anon11644107, Thread 386521

"Immer wenn der Sensor ausfiel und wieder da war, wurde sein Wert zum Energiezähler addiert" — TimoVerbrugghe, Thread 1010856

Keines davon ist ein Fehler in Ihrem Aufbau, und genau deshalb kostet es so viele Abende — Sie suchen einen Fehler an einer Stelle, an der keiner ist. Home Assistant speichert Energie als stündliche Langzeitstatistik, und ein kumulativer Zähler, der neu startet, passt nicht sauber in dieses Modell. Beide Hälften sind für sich genommen vernünftig.

Von Hand zu korrigieren funktioniert, hält aber nicht

Die Antwort, die die Leute weiterreichen, lautet Developer Tools → Statistics, wo Sie eine Zeile korrigieren können, oder eine direkte Bearbeitung der Statistiktabelle. Sie funktioniert tatsächlich — innerhalb ihrer Grenzen: Sie können eine falsche Stunde anpassen, aber keine Stunden erzeugen, die nie aufgezeichnet wurden. Und sie skaliert nicht auf die Größe einer echten Lücke:

"Ich habe eine Lücke von 2 Tagen in meiner Energiestatistik, weil mein Wechselrichter offline war." — ConfusedTA, Thread 803010

"Das wird oft angesprochen, und ich bin ihm auch begegnet, ohne eine einfache Lösung zu finden." — VaReTaS, Thread 803010

"Ich würde gern, dass das irgendwie normalisiert wird. Aber ich weiß nicht einmal, wo ich anfangen soll." — 104mapo, Thread 965144

Zwei Tage sind etwa fünfzig Zeilen. Drei Wochen sind etwa fünfhundert. Und die Korrektur setzt am Symptom an, nicht an der Ursache, also beginnt die Arbeit beim nächsten Neustart wieder von vorn.

Was sich ändert, wenn die Aufzeichnung im Zähler liegt

Das Loch existiert, weil die einzige Kopie der Aufzeichnung in Home Assistant lag, und Home Assistant lief nicht.

Ein RBgrid-Hub führt sein eigenes Buch: Er misst, schließt jede 15-Minuten-Periode ab, bewertet sie mit dem Preis (price), der zu diesem Moment gilt, und schreibt das Ergebnis in seinen eigenen Flash-Speicher. Nichts davon hängt davon ab, dass Home Assistant läuft. Wenn der Hub es ist, der aufzeichnet, ist ein Neustart von Home Assistant eine Unterbrechung der Ansicht, nicht des Messens.

Jede gespeicherte Stunde trägt außerdem ihren eigenen Qualitätshinweis, damit eine ungewöhnliche Aufzeichnung das auch sagt, statt normal auszusehen. Eine Stunde, die Energie aus einer Messunterbrechung aufgenommen hat, ist als Ausfall gekennzeichnet, und die Seite History zeigt diesen Hinweis neben dem Wert — die Zahl wird nicht stillschweigend so dargestellt, als wäre nichts passiert.

Das betrifft die Aufzeichnung des Hubs, nicht die von Home Assistant. Hier ändert sich nichts daran, was Home Assistant speichert oder wie. Der nächste Abschnitt handelt von dem Teil, der Home Assistant tatsächlich erreicht.

Der stündliche Import und die Einstellung, die bestimmt, was Sie sehen

Die RBgrid-Integration gehört zu einer der beiden Arten, den Hub zu betreiben: der Hub, geflasht als ESPHome-Gerät. Wenn Ihrer die Standalone-Firmware nutzt und über MQTT mit Home Assistant spricht, gibt es keinen Import einzuschalten, und der Wechsel zwischen beiden ist ein erneutes Flashen statt einer Einstellung — daher wird das zu Beginn gewählt, nicht später umgestellt.

Auf diesem Weg bleibt das Buch des Hubs nicht im Hub. Jede Stunde fragt die Integration es ab und schreibt es als zweiten Satz Zeilen in die eigenen Langzeitstatistiken von Home Assistant, neben die, die Home Assistant für Ihre Live-Sensoren ohnehin führt — eine Zeile pro Stunde, mit der Energie und den Kosten, die der Hub für diese Stunde aufgezeichnet hat, nicht für die Stunde, in der der Messwert ankam. Der Import setzt dort fort, wo er aufgehört hat, daher wird eine Pause von mehreren Tagen Stunde für Stunde gefüllt statt in einen Block gekippt. Der erste Import, der noch nichts hat, woran er anknüpfen kann, greift stattdessen zurück: bis zu 30 Tage des stündlichen Buchs des Hubs gehen in einem einzigen Durchlauf in die Statistik. Dazu kommen zwei Grenzen, und beide wiegen schwerer als die Zahl: Stunden, in denen der Hub ohne Strom war, stehen nicht in seinem Buch, daher kann sie nichts füllen; und der Import fügt seine eigenen Zeilen hinzu, ohne die bereits vorhandenen anzutasten.

Der Import läuft von selbst, einmal pro Stunde. Der Button Import into HA statistics auf dem Reiter History des Panels führt denselben Durchlauf sofort aus — es ist ein Mechanismus mit einem manuellen Auslöser, nicht zwei. In den eigenen Auswahlfeldern von Home Assistant — den Quelleneinstellungen des Energie-Dashboards, einer Statistikkarte — erscheinen die Zeilen unter Namen wie RBgrid Hub Main energy in und … cost. Eine importierte Stunde kann mit ihrer Energie, aber ohne ihre Kosten auftauchen und die Kosten bei einem späteren Durchlauf nachtragen; das liegt daran, dass die Währung des Tarifplans (tariff plan) zum Zeitpunkt des Imports nicht bekannt ist, nicht daran, dass Geld verschwindet.

⚠️ Standardmäßig zeigt Ihnen das Energie-Dashboard diese Zeilen nicht an. Der Einrichtungsassistent der Integration verbindet das Dashboard mit den Live-Zählern, und dort erzeugt ein Neustart weiterhin den bekannten Sprung in der Stunde, in der Home Assistant zurückkam. Die importierten Zeilen, die keine Lücke haben, sind in den Quelleneinstellungen des Energie-Dashboards verfügbar — Sie müssen sie auswählen.

Es gibt also drei verschiedene Dinge, und sie zu verwechseln ist der Grund, warum Leute enttäuscht werden:

Hat nach einem Neustart eine Lücke?
Die eigene Aufzeichnung des Hubs Nein — er hat nie aufgehört zu messen
Die importierten Statistikzeilen in Home Assistant Nein — sie sind eine Kopie dieser Aufzeichnung, Stunde für Stunde
Die Live-Zähler, die das Dashboard standardmäßig nutzt Ja — derselbe Sprung wie zuvor, in der Stunde, in der HA zurückkam

Auf dem MQTT-Weg gibt es gar keinen Import: Der Hub veröffentlicht Live-Werte, und die Statistiken von Home Assistant verhalten sich genau so wie immer. Die eigene Aufzeichnung des Hubs bleibt trotzdem intakt, und sie ist der Ort, an dem Sie nachsehen, wenn ein Wert zweifelhaft ist.

Prüfen statt vertrauen

  • Im Hub: Öffnen Sie die eigene Seite History des Hubs für den betreffenden Tag. Eine Stunde, die Energie aus einer Unterbrechung aufgenommen hat, sagt das in ihrem Qualitätshinweis, sodass Sie eine seltsam aussehende Stunde von einer falschen unterscheiden können.
  • In Home Assistant: Vergleichen Sie die Quelle der Live-Zähler mit den importierten Zeilen RBgrid Hub … für denselben Tag. Wenn sie sich unterscheiden, ist der Unterschied die Lücke — und die importierten Zeilen sind diejenigen, in denen die Stunden an ihrem richtigen Platz stehen.
  • Gegen Ihre Rechnung: Das Protokoll der angewandten Preise des Hubs behält 40 Tage als CSV, eine Zeile pro abgeschlossener 15-Minuten-Periode, mit der Quelle jedes Preises.

Was das nicht tut

  • Es repariert die bestehende Historie von Home Assistant nicht. Zeilen, die schon falsch waren, bleiben falsch; der Import fügt seine eigenen Zeilen aus dem eigenen Buch des Hubs hinzu und schreibt Ihre nicht um.
  • Es ändert die Standardquelle des Dashboards nicht. Diese Wahl treffen Sie selbst in den Einstellungen des Energie-Dashboards, und dieser Artikel sagt nicht voraus, dass sie sich ändern wird.
  • Es gibt Home Assistant keine 15-Minuten-Auflösung. Die Perioden des Hubs gehören dem Hub; was Home Assistant erreicht, ist stündlich, wie es immer war.
  • Es verhindert nicht, dass Ihre Sensoren ausfallen. Es beseitigt die Folge für die Aufzeichnung, nicht die Ursache in Ihrem Netzwerk.

Weiterlesen

Zitate stammen aus öffentlichen Forenthreads von Home Assistant und GitHub-Issues, mit Autor und Threadnummer angegeben, damit Sie jeden Thread vollständig nachlesen können.