Die Zahl, die mich bei einer PV-Anlage wirklich interessiert, ist nicht, wie viel die Module produziert haben. Es ist, wie viel davon ich behalten habe. Das Cloud-Portal des Wechselrichters zeigt mir auf einem hübschen Dashboard einen Eigenverbrauchs- und einen Autarkie-Prozentsatz, und lange Zeit habe ich diese beiden Werte als Punktestand für das ganze Haus behandelt. Das Problem: Sie liegen in der Cloud von jemand anderem, ich kann ihre Historie nicht so auswerten, wie ich will, und ich kann keine Warnungen darauf setzen. Also habe ich sie in Home Assistant nachgebaut. Der Haken, mit dem ich nicht gerechnet hatte: Home Assistant liefert dir diese Zahlen ebenfalls nicht.
Das ist Teil 02 der Serie. Teil 01 hat Home Assistant per Docker zum Laufen gebracht und den Wechselrichter über Modbus angebunden. Jetzt, wo die rohen Zähler fließen, geht es in diesem Beitrag darum, sie in die vier gewünschten Kennzahlen zu verwandeln: Eigenverbrauch, Autarkie, Batterie-Wirkungsgrad und einen Wächter für die String-Asymmetrie.
Home Assistant liefert Zähler, keine Kennzahlen
Hier der ehrliche Teil. Home Assistant hat ein Energie-Dashboard, und es ist wirklich gut darin, ein Bild zu zeichnen: Produktion, Netzbezug, Netzeinspeisung, Batteriefluss. Was es nicht offenlegt, sind die abgeleiteten Prozentsätze. Es gibt keine sensor.self_consumption Entität. Es gibt keine sensor.autarky Entität. Das Energie-Dashboard berechnet dieses Bild intern und zeichnet es, gibt dir die Zahlen aber nie als Entitäten zurück, die du über ein Jahr auswerten oder für eine Automation nutzen kannst.
Mein Wechselrichter ist ein Huawei SUN2000, und selbst seine eigene Integration liefert nur die rohen Gesamt- und Tageszähler — Gesamtertrag, Netzeinspeisung, Netzbezug, Batterieladung, Batterieentladung. Alles andere, was ich will, ist Arithmetik darüber. Also habe ich die Kennzahlen selbst als Home-Assistant-Template-Sensoren gebaut, definiert in einer templates.yaml Datei. Diese Unterscheidung ist mir wichtig: Das sind keine Werte, die mir die Integration gegeben hat, sondern Werte, die ich abgeleitet habe — also entscheide ich genau, wie sie berechnet werden.
Eigenverbrauch und das Rekonstruktionsproblem
Eigenverbrauch ist der einfache Fall. Es ist der Anteil deiner Produktion, den du selbst genutzt statt eingespeist hast: Gesamtertrag minus Netzeinspeisung, geteilt durch Gesamtertrag. Mein Eigenverbrauchsquote Sensor macht genau das und landet bei rund 65,9% — und das deckt sich mit der Zahl im Cloud-Portal, was ein befriedigender Moment war, denn es hieß, ich hatte korrekt nachvollzogen, was die Cloud tut. Dieselbe Logik, nur lokal statt im Rechenzentrum von jemandem.
Bei der Autarkie wird es interessant, und hier sitzt der ehrliche technische Kern. Autarkie ist der Anteil deines Verbrauchs, der durch eigene Produktion gedeckt wird — eins minus (Netzbezug durch Verbrauch). Aber Home Assistant misst den Hausverbrauch nie direkt. Niemand tut das, außer du hast einen Zähler in die Hauptleitung gesetzt. Also rekonstruierst du ihn aus drei Zählern: Verbrauch ist gleich Ertrag, minus dem, was du eingespeist hast, plus dem, was du aus dem Netz gezogen hast. Dieser rekonstruierte Verbrauch landet im Nenner. Mein Autarkiegrad Sensor liegt bei rund 76,9%.
Mir ist wichtig, klarzustellen, dass das eine Rekonstruktion ist, keine Messung. Wenn deine Zähler driften, driftet deine Autarkie mit. Aber für einen Haushaltswert reichen drei Zähler und etwas Algebra für eine Zahl, die genau genug ist, um danach zu handeln — und es ist eine Zahl, die jetzt mir gehört, in meiner eigenen Historie lebt, nicht beim Wechselrichter-Hersteller.
Die Entitätsnamen sind deutsch, weil sie meine sind — Autarkiegrad, Eigenverbrauchsquote — und jedem habe ich ein passendes Icon gegeben, mdi:leaf für die Autarkie und mdi:home-lightning-bolt für den Eigenverbrauch. Kleinigkeit, aber ein Blatt neben deinem Autarkiewert im Dashboard motiviert auf eine leise Art.
Batteriegesundheit in zwei günstigen Sensoren
Die Batterie verdient eigene Kennzahlen, und das Schöne ist, dass sie aus Zählern fallen, die du schon hast. Der Wirkungsgrad ist einfach Energie raus durch Energie rein: Entladung durch Ladung. Mein Batterie Effizienz Sensor meldet 97,2%, was für eine Hausbatterie wirklich gesund ist, und weil es ein Sensor mit Historie ist, kann ich zusehen, wie diese Zahl über die Jahre langsam abfällt, statt es auf die harte Tour herauszufinden.
Der zweite ist eine Vollzyklen-Schätzung. Ich habe keinen echten Zyklenzähler, also nähere ich an: gesamte geladene kWh geteilt durch 10, unter der Annahme von rund 10 kWh nutzbarer Kapazität. Das ist ein Näherungswert, kein präziser Kilometerzähler, aber als Äquivalent-Vollzyklen-Zahl ist es eine völlig vernünftige Art, Verschleiß zu verfolgen. Günstig zu berechnen, nützlich auszuwerten.
Es gibt noch ein kleines Detail, das mir Freude macht. Meine Boilertemperatur kommt von einem Modbus-Register, das Zehntelgrad als rohe Ganzzahl meldet, also teilt ein Temperatur Boiler Präzise Sensor den Rohwert einfach durch 10. Nichts Cleveres, aber genau die Art Sache, die man nur durch Lesen der Registertabelle lernt — die Hardware spricht in Zehnteln, und du musst es selbst zurückskalieren.
Der Wächter: einen kranken String fangen, bevor die Cloud es täte
Mein Lieblingssensor in der ganzen Datei ist der String-Asymmetrie-Detektor. Eine PV-Anlage hat üblicherweise zwei Strings, und im gesunden Zustand laufen ihre Ströme eng zusammen. Wenn einer deutlich unter den anderen abfällt, stimmt etwas nicht — Verschattung, ein defektes Modul oder ein lockerer Stecker. Das Cloud-Portal versteckt diese Art Diagnose hinter eigener Logik; ich wollte sie lokal und sichtbar.
Der Sensor, PV String Differenz, berechnet die prozentuale Differenz zwischen den beiden String-Strömen. Der Haken — und das ist der Teil, den es zu zeigen lohnt — ist die Nacht. Nachts fallen beide String-Ströme nahe null, und eine naive Differenz, geteilt durch ein Maximum nahe null, explodiert zu bedeutungslosem Rauschen. Also rechnet das Template nur, wenn der größere Strom über 0,5 A liegt; darunter meldet es einfach 0.
Für sich allein ist das nur eine Zahl. Der Nutzen ist die Automation dahinter. PV String Anomalie Warnung löst aus, wenn die Differenz für anhaltende 30 Minuten über 30% bleibt — die Entprellung ist wichtig, denn eine vorüberziehende Wolke bringt die Strings kurz aus dem Gleichgewicht, und du willst nicht jedes Mal einen Fehlalarm. Sie ist außerdem so abgesichert, dass sie nur bei Tageslicht auslöst, wenn String 1 tatsächlich Strom über 1 A führt. Und die Nachricht, die sie mir schickt, nennt die wahrscheinlichen Ursachen buchstäblich beim Namen: Verschattung, ein defektes Modul oder ein lockerer Stecker. Das ist dieselbe Diagnose, die die Wechselrichter-Cloud für sich behält, nur dass es jetzt ein Push auf mein Handy ist und mir die Logik gehört.
Eine Zeile pro Tag, und warum sie sich lohnt
Die andere Automation ist weniger dramatisch, aber ich lese sie jeden Abend. PV Tagesbericht löst einmal täglich um 20:00 aus und quetscht den ganzen Punktestand in einen Push: Tagesertrag, Batterieladung und -entladung, Eigenverbrauchsquote, Autarkiegrad und Gesamtertrag in MWh. Der Gesamtwert kommt vom rohen Wattstunden-Zähler geteilt durch 1000 und auf zwei Nachkommastellen gerundet — noch ein kleines Skalierungsdetail, wie beim Boiler.
Ich pflege außerdem Tages-Spiegel — Eigenverbrauch Heute und Verbrauch Heute — die den heutigen Eigenverbrauch und Verbrauch aus Tagesertrag, Tageseinspeisung und Tagesnetzbezug neu berechnen, damit die Tageswerte dieselbe Arithmetik nutzen wie die Gesamtwerte. Prozente runden auf eine Stelle, Tages-kWh auf zwei, Zyklen auf null. Ordentlich genug, dass der Abend-Push sich wie ein sauberer Bericht liest und nicht wie ein Haufen Fließkommazahlen.
Das ist im Grunde der rote Faden dieser Serie: besitze deine Daten, hoste das Dashboard selbst. Die Wechselrichter-Cloud kann mir eine Eigenverbrauchs-Anzeige zeigen, aber sie kann mich nicht bei einem kranken String warnen, den Wirkungsgrad meiner Batterie über fünf Jahre auswerten oder mir eine einzige Abendzeile mit allem darin geben. Home Assistant liefert dir diese Kennzahlen nicht gratis — aber sobald du sie aus den rohen Zählern rekonstruiert hast, sind sie Sensoren wie alle anderen: auswertbar, alarmierbar und deine. Als Nächstes in der Serie verdrahte ich diese Zahlen so, dass mit dem Überschuss tatsächlich etwas passiert.



