Batteriespeicher mit Home Assistant einbinden — so geht's

Du bindest deinen Speicher in Home Assistant über eine von drei Wegen ein: eine fertige Integration deines Herstellers, Modbus/TCP direkt zum Wechselrichter oder MQTT über ein Zwischen-Gateway. Welcher Weg für dich passt, hängt allein davon ab, welche Schnittstelle dein Gerät lokal freigibt.
1) Fertige Integration: Viele Hersteller (SMA, Fronius, Victron, Huawei/SUN2000, Kostal, Solax) haben eine Integration entweder direkt in Home Assistant oder über HACS. Das ist der schnellste Weg — du gibst IP oder Cloud-Login ein, fertig. 2) Modbus/TCP: Fast jeder Hybrid-Wechselrichter spricht Modbus, oft nach dem SunSpec-Standard. Du trägst Register-Adressen selbst in die configuration.yaml ein. Mehr Arbeit, dafür rein lokal und unabhängig vom Hersteller-Server. 3) MQTT: Wenn ein Gateway (z. B. ein ESP-basiertes Lesegerät oder ein eigener Poller) die Daten schon aufbereitet, abonniert Home Assistant sie einfach als Topics.

Zuerst gibst du dem Wechselrichter im Router eine feste IP — sonst reißt die Verbindung nach jedem Neustart ab. Dann aktivierst du am Gerät die lokale Schnittstelle (bei vielen Herstellern heißt das "Modbus TCP" oder "Drittanbieter-Zugriff" und ist ab Werk aus). In Home Assistant gehst du auf Einstellungen → Geräte & Dienste → Integration hinzufügen und suchst deinen Hersteller. Findest du ihn nicht, installierst du HACS und schaust dort — viele Speicher-Integrationen sind Community-Projekte. Nach dem Einrichten prüfst du unter Entwicklerwerkzeuge → Zustände, ob die Entitäten plausible Werte liefern.

Du brauchst die Register-Liste deines Herstellers — die steht im Modbus- oder SunSpec-Handbuch zum Gerät. Darin findest du je Messwert die Adresse, den Datentyp (meist uint16, uint32 oder int32) und den Skalierungsfaktor. In der configuration.yaml legst du unter `modbus:` den Host (IP des Wechselrichters), Port (meist 502) und die einzelnen Sensoren an. Wichtig: Der Skalierungsfaktor entscheidet, ob am Ende 5,2 kW oder 52.000 irgendwas rauskommt — falsche Werte sind hier fast immer ein Skalierungs- oder Datentyp-Fehler, keine defekte Verbindung.

Für ein sinnvolles Setup reichen vier Werte: Ladestand in Prozent (device_class: battery), Lade- und Entladeleistung in Watt (device_class: power), sowie die kumulierten Energiezähler für Laden und Entladen in kWh. Die Leistung ist bei vielen Geräten ein einziger Wert mit Vorzeichen — positiv beim Entladen, negativ beim Laden. Wenn du getrennte Sensoren brauchst, trennst du das über einen Template-Sensor auf. Für die Energiezähler setzt du device_class: energy und state_class: total_increasing, sonst nimmt das Energie-Dashboard sie nicht an.

Unter Einstellungen → Dashboards → Energie gibt es den Abschnitt "Batteriespeicher". Dort trägst du zwei kumulierte kWh-Zähler ein: einen für die Energie in den Speicher hinein, einen für die Energie heraus. Momentanwerte in Watt funktionieren hier nicht — das Dashboard rechnet ausschließlich mit steigenden Zählern. Liefert dein Gerät nur Leistung, baust du dir mit der Riemann-Sum-Integration (integration:) aus Watt einen kWh-Zähler und nutzt den. Danach zeigt dir das Dashboard, wie viel deines Speicher-Stroms wirklich aus der PV kam und wie viel aus dem Netz.
Modbus-Verbindungen brechen ab, wenn mehrere Clients gleichzeitig auf den Wechselrichter zugreifen — viele Geräte erlauben nur eine Handvoll paralleler Verbindungen. Läuft daneben noch ein Hersteller-Datenlogger oder ein zweites Poll-Skript, tauchen sporadisch "unavailable"-Zustände auf. Zweitens: Ein Abfrageintervall von einer Sekunde bringt dir bei einem Speicher fast nichts, belastet aber das Gerät; 10 bis 30 Sekunden reichen für alles außer echter Regelung. Drittens: Cloud-basierte Integrationen sind bequem, aber deine Automatisierungen stehen still, sobald der Hersteller-Server oder deine Internetleitung weg ist. Für Steuerung nimmst du den lokalen Weg.