Wärmepumpe über PV-Energie mit evcc steuern
geschrieben von Stefan, zuletzt aktualisiert am
Heute zeige ich euch, wie sich ein Verbraucher immer dann einschalten lässt, wenn eine bestimmte PV-Erzeugung bzw. ein bestimmter Überschuss an Energie vorhanden ist. In meinem Szenario möchte ich eine Pool-Wärmepumpe so steuern, dass diese immer dann eingeschaltet wird wenn meine PV-Anlage einen Überschuss produziert, der ansonsten in das Stromnetz eingespeist werden würde. Die Anleitung könnt ihr aber auch für jeden anderen Verbraucher wie z.B. eine ganz normale Wärmepumpe, Klimaanlage usw. benutzen.
Da meine Pool-Wärmepumpe sich automatisch einschaltet, wenn diese mit Strom versorgt wird, reicht mir hierfür ein ganz normaler Shelly Plus Plug S * aus. Dieser Zwischenstecker kann nicht nur die aktuell verbrauchte Energie auslesen, sondern lässt sich remote auch ein bzw. ausschalten.
Außerdem besitzt der Shelly Plus Plug S * einen LED-Ring, den ihr per API (auch aus der Software) setzen könnt. So lassen sich z.B. bestimmte Farben definieren. Bei einem Batteriespeicher wären z.B. Grün = Entladen, Blau = Laden, Rot = Aus/Leer möglich. Das macht aber natürlich nur Sinn, wenn der Zwischenstecker für euch sichtbar ist.
Für alle aktuellen Shelly Produkte ist keine Basis erforderlich, da die Geräte direkt per W-Lan mit der Shelly Cloud verbunden werden. Die Shelly Cloud ist kostenlos, es muss nur einmalig ein Benutzerkonto angelegt werden.
evcc als Steuereinheit
Als Software zur automatischen Steuerung der Wärmepumpe nutze ich das kostenlose evcc, welches ursprünglich für das intelligente PV-Laden von Elektroautos konzipiert wurde. Mittlerweile ist es aber auch möglich ganz normale Verbraucher nach der gleichen Logik anzusprechen. evcc kann über jeden modernen Browser gesteuert werden.
evcc ist 100% Open Source und läuft auch auf einem Raspberry Pi 4 mit 1 GB Arbeitsspeicher absolut flüssig. evcc kann auch via Docker eingebunden werden, für Anfänger empfehle ich aber die Installation auf einem kleinen Computer wie dem Raspberry Pi 4 B *. Dieser ist aktuell bereits ab 45 Euro zu haben. Wer etwas mehr Leistung benötigt, dem empfehle ich den Raspberry Pi 5 (4 GB) * für unter 70 Euro.
Eine Installationsanleitung für evcc auf dem Raspberry Pi findet ihr in unserem Artikel evcc Anleitung für intelligentes PV-Überschussladen.
Damit evcc die Verbraucher je nach PV-Leistung vernünftig steuern kann, benötigt ihr einen Energiezähler, der per Netzwerk ausgelesen werden kann. Hierfür verwende ich eine Shelly Pro 3EM *, welche direkt nach dem Zähler in meinem Stromkasten installiert ist. Dieser Zähler ist notwendig, damit evcc weiß wann eine Einspeisung in das Versorgernetz stattfindet. Solltet ihr schon einen smarten Energiezähler haben, könnt ihr auch diesen an evcc anbinden. Es werden schon recht viele Hersteller unterstützt.
Noch besser ist es, wenn zusätzlich die PV-Erzeugungsleistung bekannt ist. Dazu lassen sich viele Wechselrichter direkt mit evcc verbinden. Alternativ kann hierfür auch ein weiterer Shelly Pro 3EM * genutzt werden, der den Stromfluss des Wechselrichters überwacht. evcc kann euch dann den Stromverbrauch eures Hauses ausrechnen und in der Weboberfläche anzeigen. Die PV-Erzeugungsmessung ist aber optional und wird nicht zwingend benötigt.
evcc kann nicht nur mit einer größeren PV-Anlage genutzt werden, sondern funktioniert zum Beispiel auch mit einem Balkonkraftwerk einwandfrei. Außerdem lassen sich auf Wunsch auch Batteriespeicher in evcc mit einbinden.
Zusätzlich kann evcc Daten auch via MQTT senden und empfangen. Auch die auf Zeitdaten optimierte Datenbank InfluxDB2 wird unterstützt. Wer sich etwas auskennt, kann Daten sogar mit JS manipulieren, bevor evcc diese verarbeitet. So lassen sich auch Komponenten verwenden, die eigentlich nicht Out-of-the-Box mit evcc funktionieren würden. Das erfordert natürlich ein gewisses Fachwissen. Für die meisten Geräte der bekannten Hersteller gibt es aber Templates, so dass hier kaum Vorwissen erforderlich ist.
Die Schaltlogik
evcc muss wissen, wann ein Verbraucher ein- bzw. ausgeschaltet werden soll. Das wird anhand des PV-Überschusses (Einspeiseleistung) sowie einem Timer (Delay) definiert. Der Timer dient dazu die Steuerung etwas träger und stabiler zu machen, damit evcc nicht bei jeder kleinen Lastspitze reagiert sondern erst wenn die PV-Überschussleistung eine Zeit lang einen bestimmten Wert erreicht bzw. überschreitet. Das ist z.B. bei wechselhaftem Wetter (Wolken) sinnvoll.
Zunächst definiert man einen Wert für den Überschuss an welchem der Verbraucher eingeschaltet werden soll. Meine Wärmepumpe benötigt unter voller Last ca. 2.000 Watt, so dass ich diesen Wert auf 2.000 Watt gesetzt habe. evcc würde die Wärmepumpe also ab einer Einspeisung von 2.000 Watt nach Ablauf des Verzögerungstimers einschalten.
Die Logik für das Ausschalten sieht fast identisch aus: es wird eine Schwelle definiert ab wann die Wärmepumpe wieder ausgeschaltet werden soll. Ich habe diesen Wert auf eine Einspeisung von 1.500 Watt bei einer Dauer von 5 Minuten gesetzt. Produziert die PV-Anlage also mindestens 5 Minuten lang weniger als 1.500 Watt an Energie, wird die Wärmepumpe ausgeschaltet.
Reicht die PV-Einspeiseleistung nicht aus um den Verbrauch der Wärmepumpe zu decken, könnte man auf Wunsch auch einen Mischbetrieb (PV-Energie + Netzbezug) ermöglichen. Dazu könnte man die Wärmepumpe z.B. auch schon bei nur 1.000 Watt Einspeiseleistung einschalten lassen.
Es ist außerdem auch möglich mehrere Verbraucher mit evcc zu steuern. Über die in evcc festgelegte Priorität des Verbrauchers lässt sich dann definieren welcher Verbraucher zuerst mit PV-Energie versorgt werden soll. Bei mir wird zuerst mein Elektroauto (einphasig) mit bis zu 3.700 Watt aufgeladen. Meine Pool-Wärmepumpe wird erst eingeschaltet, wenn zusätzlich zu der benötigten Ladeenergie für das Elektroauto ein Überschuss von 2.000 Watt vorhanden ist (der reine PV-Überschuss beträgt dann also 5.700 Watt).
Über das Interface von evcc lässt sich jeder Verbraucher außerdem jederzeit manuell einschalten. Die Überschussregelung für alle anderen Verbraucher wird dann automatisch angepasst. Schalte ich z.B. manuell die Pool-Wärmepumpe bei nur 4.000 Watt Einspeiseleistung ein, reduziert evcc die Ladenergie des Elektroautos um 1.700 Watt, damit kein Netzbezug erforderlich ist. Natürlich könnte man zusätzlich auch das Elektroauto manuell auf eine schnellstmögliche Ladung einstellen. Dann würde evcc einen Netzbezug zulassen.
evcc Konfiguration
Aktuell muss evcc noch über eine Konfigurationsdatei (evcc.yaml) eingestellt werden. Das Entwicklerteam arbeitet aktuell daran, möglichst viele Einstellungen in die Bedienoberfläche zu überführen.
Dieses Konfigurationsbeispiel enthält nur die Steuerung für die Wärmepumpe. Ich wollte das Beispiel so einfach wie möglich halten. Es ist natürlich noch viel mehr möglich, etwa die Einbindung einer Wallbox, eines Batteriespeichers usw.
network: schema: http host: evcc.local port: 7070 tariffs: currency: EUR grid: type: fixed price: 0.35 # Strompreis in EUR pro kWh interval: 10s meters: - name: grid #Energiemessung direkt nach dem Zähler type: template template: shelly-pro-3em usage: grid host: 192.168.1.78 - name: wp_shellyplugs #Zwischenstecker Wärmepumpe type: template template: shelly-1pm usage: charge host: 192.168.1.131 channel: 0 - name: pv_carport #Energiemessung PV-Leistung Wechselrichter type: template template: shelly-pro-3em usage: pv host: 192.168.1.169 chargers: - name: wp_pool type: template template: shelly host: 192.168.1.131 channel: 0 integrateddevice: true icon: waterheater heating: true loadpoints: - title: Wärmepumpe Pool charger: wp_pool meter: wp_shellyplugs mode: pv phases: 1 mincurrent: 9 # min. Energiebedarf der Wärmepumpe in Ampere. 9A x 230V = 2.070 Watt maxcurrent: 9 # max. Energiebedarf der Wärmepumpe in Ampere. 9A x 230V = 2.070 Watt enable: threshold: -1500 # Wärmepumpe wird eingeschaltet, wenn 5 Minuten lang mindestens 1500W Einspeiseleistung vorhanden sind delay: 5m disable: threshold: 500 # Wärmepumpe wird ausgeschaltet, wenn 10 Minuten lang mehr als 500W Netzstrom bezogen wurde delay: 10m site: title: Haus meters: grid: grid pv: - pv_carport
Die Konfigurationsdatei erstellt ihr zunächst lokal auf eurem Computer. Anschließend könnt die Datei per Bitvise SSH-Client (nur Windows) über "New SFTP window" in euer Heimverzeichnis kopieren und dann mit dem nachfolgenden Befehl in das richtige Verzeichnis verschieben:
sudo mv evcc.yaml /etc
Anschließend könnt ihr die Konfiguration prüfen (Beenden der Prüfung mit Strg+C):
evcc -c evcc.yaml
Funktioniert alles, könnt ihr evcc nun endgültig starten:
sudo systemctl start evcc
evcc läuft als Systemdienst und startet sich automatisch bei einem System-Neustart. Möchtet ihr später auf eine neue Version von evcc aktualisieren geht das mit:
sudo apt update
gefolgt von
sudo apt --only-upgrade install -y evcc
Die komplette Installation und was ihr alles an Hardware benötigt, haben wir in unserer evcc Anleitung für intelligentes PV-Überschussladen bereits ausführlich beschrieben.
Extra: Mobilansicht, Ladeplanung und Auswertung der Ladeenergie
Die evcc Oberfläche ist komplett responsiv und kann sowohl auf dem Computer / Notebook als auch auf dem Smartphone oder Tablet angezeigt werden. Hier könnt ihr vor allem für jeden Verbraucher den Lademodus (Aus, PV, Min+PV, Schnell) umschalten.
Wie viel Leistung der Verbraucher mindestens bzw. maximal aufnimmt, könnt ihr auch über die Bedienoberfläche festlegen. Nimmt euer Verbraucher immer eine feste Leistung auf, könnt ihr die Werte für min und max auch identisch festlegen. Bei meiner Pool-Wärmepumpe habe ich daher beides auf 9A (~ 2.100 Watt) festgelegt. evcc benutzt die Leistung zur Regelung, daher sollte diese in etwa stimmen.
Hinweis: wir haben die in diesem Artikel vorgestellte Hardware wie immer selbst erworben. Wir arbeiten NICHT mit Herstellern zusammen und nutzen auch keine gestellte oder überlassene Hardware. Wir sind 100% neutral und geben hier nur unsere persönliche Meinung wieder. Über eure Unterstützung durch den Kauf über einen der grünen Affiliate-Links würden wir uns freuen.
Bei Links, die mit einem * gekennzeichnet sind, handelt es sich um Affiliate-Links, bei denen wir bei einem Kauf eine Vergütung durch den Anbieter erhalten.
Kommentare (0)
Diesen Artikel kommentieren:
Hinweis:
- Nur Fragen / Antworten direkt zum Artikel
- Kein Support für andere Hard- oder Software !
Spamfreies E-Mail Abo nur bei neuen Artikeln

