Kennst du das? Die Sonne knallt mittags auf die Module, der Akku ist längst voll, und trotzdem wandert der Überschuss für ein paar Cent ins öffentliche Netz – während dein Warmwasserspeicher am Abend mit teurem Netzstrom nachheizt. Genau dieses Missverhältnis wollte ich lösen – mit SG-Ready und einer cleveren Home-Assistant-Automation, ohne dafür ständig selbst eingreifen zu müssen.
Die Lösung: Meine Wärmepumpe (Daikin Altherma 3 H HT) unterstützt SG-Ready – eine Schnittstelle, über die sich der Betrieb per Signal von außen beeinflussen lässt. Statt das manuell zu steuern, übernimmt bei mir Home Assistant. Die Automation greift genau dann ein, wenn wirklich genug PV-Überschuss vorhanden ist, und lässt sich dabei auch nicht von kurzen Wolkenlücken oder einzelnen Leistungsspitzen aus der Ruhe bringen.
In diesem Artikel zeige ich dir die komplette Automation: von der Grundidee über die einzelnen Bedingungen bis zum fertigen YAML-Code, den du für dein eigenes Setup anpassen kannst.
Hinweis: Mit * gekennzeichnete Links sind Affiliate-Links bzw. bezahlte Links. Wenn du darüber etwas kaufst, erhalte ich ggf. eine Provision. Für dich bleibt der Preis unverändert. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.
Was ist SG-Ready?
SG-Ready steht für „Smart Grid Ready“ und ist eine Schnittstelle des Bundesverbands Wärmepumpe (BWP), die viele moderne Wärmepumpen mitbringen – unter anderem auch die Daikin Altherma, die in meinem Setup zum Einsatz kommt. Damit lässt sich die Wärmepumpe über externe Signale beeinflussen und beispielsweise gezielt bei vorhandenem PV-Überschuss ansteuern.
Technisch funktioniert SG-Ready über zwei potentialfreie Kontakte, die vier Betriebszustände abbilden:
- Zustand 1 (Sperre): Wärmepumpe pausiert
- Zustand 2 (Normalbetrieb): normaler Betrieb
- Zustand 3 (verstärkter Betrieb): Die Wärmepumpe darf zusätzliche Energie aufnehmen, beispielsweise um das Warmwasser auf eine höhere Zieltemperatur zu bringen.
- Zustand 4: Betriebszustand für eine stärkere bzw. erzwungene Anforderung entsprechend der jeweiligen Wärmepumpenkonfiguration.
Welche konkrete Reaktion die Wärmepumpe auf die einzelnen SG-Ready-Zustände zeigt, hängt von Hersteller und Konfiguration ab. Für meine Automation nutze ich die beiden Smart-Grid-Eingänge der Daikin, um bei ausreichendem PV-Überschuss den gewünschten Warmwasserbetrieb anzufordern.
Praktische Umsetzung: SG-Ready per Shelly 1 ansteuern
SG-Ready wird bei meiner Altherma über zwei potentialfreie Relaiskontakte angesteuert, die als „Smart Grid 1“ und „Smart Grid 2“ bezeichnet werden. Statt eines speziellen SG-Ready-Moduls habe ich dafür Shelly-Relais verwendet.
- Shelly 1 Nr. 1 → Smart Grid 1
- Shelly 1 Nr. 2 → Smart Grid 2
Entscheidend ist dabei der potentialfreie Kontakt. Die Relais speisen keine Spannung in die SG-Ready-Eingänge ein, sondern schließen bzw. öffnen lediglich den jeweiligen Kontakt, den die Wärmepumpe überwacht.
In Home Assistant erscheinen beide als separate switch-Entitäten. Für meine Automation habe ich sie zu switch.smart_grid_1_2 zusammengefasst, sodass beide Kontakte mit einem einzigen Befehl geschaltet werden können.
Den von mir für diese Ansteuerung verwendeten Shelly findest du hier: Shelly 1 bei Amazon ansehen*
Der Vorteil dieser Lösung: Ich benötige kein spezielles SG-Ready-Steuermodul, sondern kann Hardware verwenden, die sich ohnehin gut in Home Assistant integrieren lässt.
Wichtig: Arbeiten an der Wärmepumpe und ihrer elektrischen Installation sollten nur entsprechend der Herstellervorgaben und durch Personen mit den dafür erforderlichen Fachkenntnissen durchgeführt werden. Prüfe insbesondere die Dokumentation deiner eigenen Wärmepumpe, bevor du externe Kontakte anschließt.
Funktioniert das auch mit EEBus-Anbindung ans Smart-Meter-Gateway?
Falls deine Wärmepumpe zusätzlich über einen Homehub oder Energy-Manager per EEBus an den Netzbetreiber angebunden ist, beispielsweise im Rahmen von § 14a EnWG als steuerbare Verbrauchseinrichtung, schließen sich beide Systeme grundsätzlich nicht automatisch gegenseitig aus.
EEBus bzw. die Steuerung durch den Netzbetreiber und meine lokale SG-Ready-Automation erfüllen unterschiedliche Aufgaben: Die eine Seite betrifft die netzseitige Steuerung, die andere meine eigene Optimierung des PV-Eigenverbrauchs.
Wird die Leistung der Wärmepumpe netzseitig begrenzt, kann eine lokale SG-Ready-Anforderung diese Vorgabe nicht einfach außer Kraft setzen. Wie sich die Wärmepumpe in diesem Fall konkret verhält, hängt von Gerät, Konfiguration und Anbindung ab.
SG-Ready mit Home Assistant: Die Grundidee der Automation
Im Kern verfolgt die Automation ein einfaches Prinzip: Solange genug PV-Überschuss vorhanden ist, heizt die Wärmepumpe das Warmwasser höher auf als im normalen Betrieb. Der Warmwasserspeicher wird damit gewissermaßen zum zusätzlichen thermischen Speicher für Solarstrom, der ansonsten ins Netz eingespeist würde.
- Normalbetrieb: Warmwasserspeicher wird auf 47 °C gehalten
- Bei ausreichendem Überschuss: SG-Ready wird aktiviert und die Wärmepumpe darf das Warmwasser auf die konfigurierte Boost-Temperatur erwärmen
- Wenn der Überschuss sinkt oder das Ziel erreicht ist: Boost wird beendet und die Anlage kehrt in den Normalbetrieb zurück
Wichtig ist dabei, nicht auf jede kurzfristige Leistungsspitze zu reagieren. Eine einfache Logik nach dem Muster „Einspeisung größer X = Boost an“ würde bei wechselnder Bewölkung schnell zu unnötigem Ein- und Ausschalten führen. Deshalb müssen bei mir mehrere Bedingungen gleichzeitig erfüllt sein.
Der Aufbau ist deshalb: Trigger → Bedingungen → Aktionen. Ausgelöst wird entweder durch ausreichend hohe Einspeisung oder durch einen regelmäßigen Check. Anschließend prüft Home Assistant unter anderem Warmwassertemperatur, Einspeiseleistung, Akkustand und PV-Prognose. Erst wenn alles zusammenpasst, startet der Boost.
Die Einschaltbedingungen im Detail
Warmwassertemperatur unter 47 °C
Damit verhindere ich, dass nach einem abgeschlossenen Boost schon bei einem kleinen Temperaturverlust direkt der nächste vollständige Boost gestartet wird.
Einspeiseleistung über 1.375 W für mindestens drei Minuten
Die Poolpumpe verbraucht in meinem Setup rund 425 W und wird beim Start des Warmwasser-Boosts abgeschaltet. Für die Wärmepumpe kalkuliere ich in dieser Situation mit rund 950 W. Daraus ergibt sich meine Einschaltschwelle von 1.375 W.
Die drei Minuten Mindestdauer sorgen dafür, dass eine kurze Leistungsspitze nicht sofort einen Boost auslöst.
Akkuladestand mindestens 75 %
Mein Stromspeicher hat Vorrang vor dem Warmwasser-Boost. Erst wenn der Akku bereits gut gefüllt ist, soll zusätzlicher Überschuss gezielt in Wärme umgewandelt werden.
Solcast bestätigt ausreichend PV-Leistung
Die aktuelle Einspeisung ist immer nur eine Momentaufnahme. Deshalb beziehe ich zusätzlich meine PV-Prognose für die kommende Stunde ein. Dadurch vermeide ich beispielsweise einen Boost kurz vor einem absehbaren deutlichen Leistungsabfall.
SG-Ready darf noch nicht aktiv sein
Diese einfache Bedingung verhindert, dass der Boost bei jedem periodischen Check erneut ausgelöst wird, obwohl er bereits läuft.
Was beim Start passiert: Poolpumpe wird kurz zurückgestellt
Sobald alle Bedingungen erfüllt sind, schaltet die Automation zunächst meine Poolpumpe ab. Für mich hat die Wärmepumpe in diesem Moment die höhere Priorität. Die rund 425 W der Poolpumpe stehen dadurch zusätzlich zur Verfügung, statt dass beide Verbraucher um denselben PV-Überschuss konkurrieren.
- action: switch.turn_off
target:
entity_id: switch.poolpumpe
- delay: '00:00:05'
- action: switch.turn_on
target:
entity_id: switch.smart_grid_1_2Code-Sprache: JavaScript (javascript)
Die kurze Verzögerung von fünf Sekunden sorgt dafür, dass die freigewordene Leistung zunächst tatsächlich zur Verfügung steht, bevor die Wärmepumpe angefordert wird.
Das Prinzip dahinter ist für meine gesamte PV-Steuerung wichtig: Verbraucher werden nicht isoliert betrachtet, sondern bekommen eine Priorität. Wenn der Überschuss nicht für alles gleichzeitig reicht, entscheidet die Automation, welcher Verbraucher zuerst versorgt werden soll.
Wie der Boost wieder beendet wird
Ende bei erreichter Zieltemperatur
Eine separate Automation deaktiviert SG-Ready, sobald der Speicher die von mir konfigurierte Boost-Zieltemperatur erreicht. Start- und Stopp-Logik bleiben dadurch voneinander getrennt und die einzelnen Automationen übersichtlich.
Abbruch bei anhaltendem Überschussverlust
Eine weitere Automation überwacht die Einspeiseleistung. Fällt diese für 15 Minuten ununterbrochen unter 200 W, wird der Boost vorzeitig beendet.
Die Wartezeit ist bewusst großzügig gewählt. Eine einzelne Wolke oder ein kurzer Leistungseinbruch soll nicht dazu führen, dass die Wärmepumpe sofort wieder in den Normalbetrieb wechselt.
Der Akku als zusätzlicher Puffer
Hier zahlt sich die 75-%-Bedingung ein zweites Mal aus. Da der Boost nur startet, wenn der Stromspeicher bereits gut gefüllt ist, kann der Akku kurze Wolkenphasen abfangen und die Wärmepumpe vorübergehend mitversorgen.
Bei meinem Setup reicht dieser Puffer erfahrungsgemäß aus, um kurze Einbrüche zu überbrücken. Genau deshalb kann ich beim Abbruch eine vergleichsweise großzügige Wartezeit von 15 Minuten verwenden.
SG-Ready Home Assistant: Die komplette Automation zum Nachbauen
alias: Warmwasser PV-Überschuss – SmartGrid einschalten
description: >-
Aktiviert das SG-Ready-Signal (Smart Grid 1+2) der Wärmepumpe bei
ausreichendem PV-Überschuss. Dadurch wird das Warmwasser bei ausreichend
verfügbarer PV-Leistung über den normalen Sollwert hinaus erwärmt.
triggers:
- trigger: numeric_state
entity_id: sensor.einspeiseleistung
for: '00:03:00'
id: surplus_start
above: 1375
- trigger: time_pattern
minutes: /5
id: periodic_check
conditions:
- condition: state
entity_id: switch.smart_grid_1_2
state: 'off'
- condition: numeric_state
entity_id: sensor.ww_tanktemperatur
below: 47
- condition: numeric_state
entity_id: sensor.einspeiseleistung
above: 1375
- condition: numeric_state
entity_id: sensor.akku_ladestand
above: 75
- condition: numeric_state
entity_id: sensor.pv_prognose_1h
above: 2000
actions:
- action: switch.turn_off
target:
entity_id: switch.poolpumpe
- delay: '00:00:05'
- action: switch.turn_on
target:
entity_id: switch.smart_grid_1_2
- action: notify.mobile_app_dein_handy
data:
title: 🔥 Warmwasser-PV-Boost gestartet
message: >-
Die Wärmepumpe startet jetzt den Warmwasser-PV-Boost.
🌡️ WW-Temperatur: {{ states('sensor.ww_tanktemperatur') | float(0) | round(1) }} °C
☀️ Einspeisung: {{ states('sensor.einspeiseleistung') | float(0) | round(0) }} W
🔋 Akku: {{ states('sensor.akku_ladestand') | float(0) | round(0) }} %
📈 PV-Prognose +1h: {{ states('sensor.pv_prognose_1h') | float(0) | round(0) }} W
mode: singleCode-Sprache: PHP (php)
Was du für dein Setup anpassen musst
| Platzhalter | Ersetzen durch |
|---|---|
sensor.einspeiseleistung |
Deine aktuelle Einspeiseleistung |
switch.smart_grid_1_2 |
Deine SG-Ready-Schaltgruppe |
sensor.ww_tanktemperatur |
Warmwassertemperatur deiner Wärmepumpe |
sensor.akku_ladestand |
Ladestand deines PV-Speichers |
sensor.pv_prognose_1h |
Dein PV-Prognose-Sensor |
1375 / 2000 / 75 |
Deine individuellen Schwellenwerte |
Wichtig: Die konkreten Zahlenwerte sind auf mein Setup zugeschnitten. Übernimm sie nicht blind, sondern ermittle die passenden Schwellen anhand deiner Wärmepumpe, deines Stromspeichers und deiner sonstigen Verbraucher.
Push-Benachrichtigung als Kontrolle
Bei jedem Boost-Start verschickt meine Automation eine Push-Benachrichtigung mit den aktuell relevanten Werten. Gerade in der Anfangsphase ist das hilfreich, um die eigenen Schwellenwerte zu optimieren.
Ich sehe dadurch direkt, mit welcher Warmwassertemperatur, Einspeiseleistung, welchem Akkustand und welcher PV-Prognose der Boost gestartet wurde. So lässt sich schnell nachvollziehen, ob die Automation tatsächlich so reagiert wie geplant.
Woher kommt die aktuelle Einspeiseleistung?
Für eine PV-Überschussautomation ist ein möglichst aktueller Messwert am Netzanschlusspunkt wichtig. Home Assistant muss schließlich zuverlässig erkennen können, ob gerade tatsächlich Strom eingespeist oder aus dem Netz bezogen wird.
In meinem eigenen Setup stammt dieser Wert von einem Tibber Pulse. Den hatte ich bereits aus der Zeit, als ich meinen Strom über Tibber bezogen habe, und verwende ihn deshalb einfach weiter. Für meine Automation funktioniert er gut, weil die Messwerte deutlich schneller aktualisiert werden als die Werte, die ich über das Smartmeter meines Wechselrichters erhalte.
Du brauchst dafür aber keinen Tibber Pulse. Entscheidend ist lediglich, dass du die aktuelle Leistung am Netzanschlusspunkt zuverlässig und möglichst zeitnah in Home Assistant bekommst.
Eine mögliche Alternative ist der everHome EcoTracker IR. Der Lesekopf wird an der optischen Schnittstelle eines kompatiblen digitalen Stromzählers angebracht und liest dort die verfügbaren Messwerte aus. Damit kann ein solcher Lesekopf ebenfalls als Datenquelle für eine PV-Überschussautomation dienen.
everHome EcoTracker IR bei Amazon ansehen*
Prüfe vor dem Kauf unbedingt, ob dein konkretes Stromzählermodell unterstützt wird und welche Werte dein Zähler über die optische Schnittstelle bereitstellt. Je nach Zählermodell kann außerdem eine Freischaltung der erweiterten Datenausgabe erforderlich sein.
Für die Automation zählt am Ende weniger, welcher Hersteller den Messwert liefert, sondern wie zuverlässig und wie schnell er in Home Assistant aktualisiert wird.
Meine verwendete Hardware
Falls du das Projekt ähnlich umsetzen möchtest, hier noch einmal die wichtigsten Komponenten aus meinem eigenen Aufbau. Nicht jede davon ist zwingend erforderlich – insbesondere die Messung der Einspeiseleistung kann auch mit anderer Hardware erfolgen.
Shelly 1 – SG-Ready schalten
Die Shelly-Relais nutze ich zur Ansteuerung der beiden SG-Ready-Kontakte meiner Daikin Altherma. Entscheidend für diesen Einsatzzweck ist der potentialfreie Kontakt.
Raspberry Pi 4 – mein Home-Assistant-Server
Home Assistant läuft bei mir auf einem Raspberry Pi 4. Dort läuft auch die komplette Logik hinter der hier beschriebenen PV-Überschussautomation.
Raspberry Pi 4 bei Amazon ansehen*
Externe SSD für Home Assistant
Statt Home Assistant dauerhaft auf einer microSD-Karte laufen zu lassen, nutze ich an meinem Raspberry Pi eine externe Intenso SSD. Darauf befindet sich meine Home-Assistant-Installation.
Intenso externe SSD bei Amazon ansehen*
Tibber Pulse bzw. EcoTracker IR – Leistung am Netzanschlusspunkt messen
Für die aktuelle Einspeiseleistung verwende ich selbst weiterhin meinen vorhandenen Tibber Pulse. Wer keinen Tibber Pulse besitzt, kann je nach Stromzähler beispielsweise einen kompatiblen IR-Lesekopf wie den everHome EcoTracker IR einsetzen.
everHome EcoTracker IR bei Amazon ansehen*
* Affiliate-Link / bezahlter Link. Wenn du über einen solchen Link etwas kaufst, erhalte ich ggf. eine Provision. Für dich bleibt der Preis unverändert. Ich verlinke hier Produkte, die ich selbst verwende, sowie beim EcoTracker eine mögliche Alternative zu meinem vorhandenen Tibber Pulse.
Fazit: SG-Ready mit Home Assistant automatisieren
Mit dieser Automation landet ein Teil meines PV-Überschusses nicht einfach im Netz, sondern wird gezielt für die Warmwasserbereitung genutzt. Home Assistant entscheidet dabei nicht anhand eines einzelnen Messwerts, sondern berücksichtigt mehrere Faktoren gleichzeitig.
- Eine Mindestdauer verhindert Starts aufgrund kurzer Leistungsspitzen.
- Die Einschaltschwelle berücksichtigt reale Nebenverbraucher.
- Der Stromspeicher bekommt zunächst Vorrang und kann später kurze Wolkenphasen abfedern.
- Die PV-Prognose reduziert Starts vor einem absehbaren Leistungsabfall.
- Die Verbraucher werden nach Priorität gesteuert, statt unabhängig voneinander um denselben Überschuss zu konkurrieren.
- Ein möglichst aktueller Messwert am Netzanschlusspunkt sorgt dafür, dass die Automation auf die tatsächliche Situation reagieren kann.
Diese SG-Ready-Automation ist bei mir nur ein Baustein eines größeren PV-Lastmanagements. Nach demselben Prinzip nutze ich überschüssige Solarenergie beispielsweise auch für die Anhebung des Heizungs-Vorlaufs bei PV-Überschuss. Entscheidend ist dabei immer eine sinnvolle Priorisierung der verfügbaren Verbraucher.
Wenn deine Wärmepumpe ebenfalls SG-Ready unterstützt, kannst du die Grundlogik der Automation auf dein eigenes System übertragen. Die eigentliche Arbeit liegt weniger im YAML-Code als darin, sinnvolle Schwellenwerte für deine Wärmepumpe, deinen Speicher und deinen typischen Hausverbrauch zu finden.