Mein Balkonkraftwerk mit Speicher in Home Assistant: Aufbau, Dashboard und die Sensor-Fallen
Nulleinspeisung mit ~5-kWh-Akku (MaxxiCharge CCU), zwei getrennte PV-Stränge – 98 % Eigenverbrauch. Der Dashboard-Aufbau und vier Sensor-Fallen, die die Autarkie sonst auf 0 % kleben.
Nulleinspeisung, ~5 kWh Akku, zwei getrennte PV-Stränge – und vier Stellen, an denen die Zahlen im Dashboard erst falsch waren.
TL;DR
Ein Balkonkraftwerk mit MaxxiCharge-CCU regelt die Wechselrichter-Ausgabe auf den Hausverbrauch und schiebt den Überschuss in einen ~5-kWh-Akku – Ziel: nichts einspeisen. Im laufenden Jahr: 1.324 kWh erzeugt, davon 1.301 kWh selbst verbraucht (98 %), nur 23 kWh ins Netz. Das Dashboard dazu ist schnell gebaut; die Arbeit steckt in vier Sensor-Details, die die Autarkie-Anzeige sonst auf 0 % kleben lassen.

Solar-View: oben die solar-card mit Energiefluss-Sankey und Top-Verbrauchern, darunter Verläufe, Momentanwerte, Live-Verteilung und Jahreswerte.Die Anlage
- MaxxiCharge CCU (maxxisun) als Regler. Sie liest über einen Tasmota-Lesekopf am Stromzähler die aktuelle Netz-Wirkleistung und moduliert die Wechselrichter-Ausgabe so, dass der Netzbezug nahe null bleibt. Überschuss lädt den Akku, abends entlädt er wieder.
- Akku rund 5 kWh (aus 322 Wh bei 6 % Restladung hochgerechnet).
- Zweiter PV-Strang „Solar Keller" – ein kleines Modul mit eigenem Tasmota-Messpunkt, das die CCU nicht kennt. Muss in der Gesamtrechnung von Hand mitgeführt werden.
- Betrieb aktuell im Sommermodus (
switch.balkonkraftwerk_winterbetrieb= off).
Die Regel-Parameter der CCU, direkt aus Home Assistant steuerbar:
| Parameter | Wert | Bedeutung |
|---|---|---|
| Reaktionstoleranz | 50 W | Totband auf die Zähler-Messung – darunter wird nicht nachgeregelt |
| Ausgabe korrigieren | kleiner Korrektur-Offset | gleicht Messabweichungen am Zähler aus |
| Offline-Ausgangsleistung | Fallback-Festwert | greift, wenn die Zähler-Verbindung abreißt |
| Minimale Entladung | 5 % | Akku wird nicht tiefer entladen |
| Maximale Akkuladung | 100 % | im Sommer voll laden erlaubt |
(Die eingestellte Leistungsobergrenze lasse ich hier bewusst weg – jeder betreibt seine Anlage im Rahmen der für ihn geltenden Vorgaben.)
Das Dashboard
Eine sections-View mit sechs Blöcken:
- Solar Übersicht – die
custom:solar-card. Sie bringt Erzeugung/Verbrauch, die Tages- und Jahres-Kacheln, den Energiefluss als Sankey (Batterie/Netz/PV → Home → Etagen → Räume → einzelne Geräte, inklusive „Nicht erfasster Verbrauch") und eine Reihe Top-Verbraucher als Badges mit. - Verläufe – sechs
mini-graph-Kacheln über 24 h: PV-Leistung, Stromzähler, Batterie-Ladestand, Netzbezug, Netzeinspeisung, PV-Produktion heute, CCU-Leistung. - Live-Verteilung –
custom:power-distribution-cardmit Hausbedarf, Solar-Erzeugung, Netzbezug, Akku und „Ins Netz", dazu zwei Balken: Autarkie und Anteil. Achtung: die Autarkie hier ist ein Momentanwert (im Screenshot 79 %) – nicht zu verwechseln mit der Jahres-Autarkie im Block „Jahreswerte" (~35 %). - Momentanwerte – drei Gauges: Leistung aus dem Akku, Akku-Ladestand, Zähler-Wirkleistung.
- Jahreswerte – zweite
power-distribution-card, aber mit den Jahres-Summen in kWh statt Live-Watt, plus zwei Euro-Kacheln (Einspeise-Verlust rot, Eigenverbrauchs-Ersparnis grün) – und der Jahres-Autarkie als Balken. - Balkonkraftwerk Einstellungen – die
number-Entitäten der CCU zum direkten Nachjustieren.
Die Zahlen, die zählen
Aus den eigenen „im Jahr"-Template-Sensoren:
| Kennzahl | Wert |
|---|---|
| Erzeugung im Jahr | 1.324 kWh |
| davon selbst verbraucht | 1.301 kWh (98 %) |
| ins Netz eingespeist | 23 kWh |
| „Verlust" durch Einspeisung (zu Einspeisevergütung) | 9,28 € |
| Ersparnis durch Eigenverbrauch (zu Arbeitspreis) | 520 € |
| Autarkie (Eigenverbrauch / Gesamtverbrauch) | ~35 % |
| Erzeugung seit 2023 gesamt | 3.931 kWh |
Ein typischer Sommermonat liefert für die kombinierte Anlage rund 240–270 kWh, also grob 8 kWh am Tag. Die Aussage des Dashboards ist eindeutig: Die Nulleinspeisungs-Strategie mit Akku funktioniert – es geht fast nichts verloren, und der Eigenverbrauch spart real dreistellig.
Die vier Sensor-Fallen
1. W vs. kWh, und die Autarkie-Bar, die auf 0 % klebt
Die selbstgebauten „im Jahr"-Sensoren (sensor.solar_im_jahr_watt, sensor.stromverbrauch_jahrlich_watt, sensor.solar_eigenverbrauch_im_jahr …) zählen Kilowattstunden, waren aber als device_class: power / unit_of_measurement: "W" deklariert – vermutlich, weil im Namen „Watt" steht. Folgen:
- Warnungen im Energie-Dashboard („Einheit hat sich geändert").
- Die Autarkie-Bar der
power-distribution-cardblieb stur auf 0 %. Die Karte rechnet den Autarkie-Anteil nur, wenn Producer- und Consumer-Entitäten konsistentenergy/kWhsind – bei Mismatch zeigt sie kommentarlos 0, keinen Fehler.
Fix: unit_of_measurement: "kWh" und device_class: energy an den betroffenen Template-Sensoren. Danach stand die Autarkie sofort bei ~35 %. Merksatz: Eine Ratio-/Prozent-Kachel, die auf 0 hängt, zuerst auf Einheiten- und device_class-Konsistenz der zugrunde liegenden Entitäten prüfen.
2. Baseline-Offset-Zähler statt total_increasing
Die „im Jahr"-Sensoren sind bewusst state_class: measurement mit einem Jahres-Offset, nicht total_increasing. Ein total_increasing mit hart gesetztem Jahres-Startwert zerschießt beim Jahreswechsel die Langzeitstatistik (Sprung nach unten → HA interpretiert einen Zählertausch). Der Offset-Ansatz ist unhübscher, aber stabil. Beim Umstellen der device_class in Falle 1 diese state_class nicht mitändern.
3. Tote Sensoren nach einem Integrationswechsel
sensor.produktion_der_600w_anlage steht auf unavailable – er ist ein Template-Sensor, der aus sensor.solarman_total_ac_output_power_active rechnet, und diese Entität existiert nicht mehr, seit die Solarman-Integration entfernt wurde. Ein Template-Sensor wird beim Entfernen seiner Quell-Integration nicht mit aufgeräumt; er bleibt als unavailable-Leiche im System und in jeder Karte, die ihn referenziert. Solche Reste nach jedem Integrations-Umbau aktiv suchen (Entwicklerwerkzeuge → Zustände, nach unavailable filtern) und den Template-Sensor löschen oder umschreiben.
4. Zweite Erzeugung, die der Regler nicht sieht
Die CCU bilanziert nur ihren eigenen Strang. Der „Solar Keller"-Strang läuft über einen separaten Tasmota-Messpunkt (sensor.tasmota_energy_power_2 / _today_2). Wer die gesamte Erzeugung will, muss beide Quellen im Template addieren – sonst fehlen im Jahr mehrere Prozent, und die Autarkie wird zu niedrig ausgewiesen.
Checkliste
- Nach jedem Integrations-Umbau:
Zuständenachunavailablefiltern, tote Template-Sensoren aufräumen - Energie-Template-Sensoren:
unit_of_measurementunddevice_classkonsistent (kWh/energy) – sonst schweigt die Autarkie-Karte - „Seit X"-/„im Jahr"-Zähler als
measurementmit Offset führen, nicht alstotal_increasing - Jede PV-Quelle, die der Hauptregler nicht kennt, explizit in die Gesamtsumme rechnen
- CCU-Parameter (Totband, Offset, Min-Entladung) als
number-Entitäten aufs Dashboard – dann muss man für eine Anpassung nicht in die Hersteller-App
Verwandte Notiz: Recorder-DB im Griff behalten. — Wie die „im Jahr"-Template-Sensoren aufgebaut sind und der komplette W→kWh-Umbau folgen als eigener Artikel.