PV-Überschussladen – Architektur und Ladestrategie (meine Dokumentation, ggf. Ideen für andere?)

  • Fragen
  • Allgemeines
  • PV-Überschussladen - Architektur und Ladestrategie (meine Dokumentation, ggf. Ideen für andere?)

PV-Überschussladen – Architektur und Ladestrategie (meine Dokumentation, ggf. Ideen für andere?)

1
0

Um vielleicht dem ein oder anderen den Einstieg in das nicht ganz so einfache Regelwerk der cFos PowerBrain zu erleichtern, stelle ich mal mein Regelwerk hier ein.

(Da ich vermutlich eh irgendwann nicht mehr durchblicken würde, schließlich steckt einiges an Komplexität drin, muss ich sie eh mal dokumentieren – dann kann ich das auch gleich hier machen) – Und dokumentieren meist den ITlern meist eh wenig Spaß 😉 – vielleicht entsteht aber so etwas Mehrwert für den ein oder anderen.
Ich habe die Entwickler mal vor kurzem gebeten, ob sie den Regel ein Kommentarfeld spendieren können; das würde die Beschreibung und damit die Nachvollziehbarkeit nämlich deutlich erleichtern. – Ich glaube hier tut sich in Kürze etwas.

 

Rahmenbedingungen:

  • PV-Anlage: Ich habe eine PV-Anlage mit ca. 12 kW Peak. Kleine Batterie mi 4,8 kWh (Entlade- / Ladeleistung max. 2.500 Watt)
  • E-Auto: 1 Fahrzeug, das auch unter Tags oftmals zu Hause ist (HomeOffice).
  • Fahrprofil: Das E-Auto wird meist auf Kurzstrecken bewegt.
  • Wallbox: 1-phasig angeschlossen
  • Steuerung: Sämtliche Steuerungen erfolgen per Home Assistant (Vorteil: so kann jeder beliebige Wechselrichter ganz unabhängig von einer direkten Anbindbarkeit an die cFos-PowerBrain genutzt werden; die Modbus-Anbindung, die oftmals nur eine Abfrage gleichzeitig erlaubt, wird nicht überfordert, und die Automatisierungsszenarien sind fast grenzenlos; Bedienung sämtlicher Endgeräte über eine Oberfläche / eine App – wobei bei mir Automatisierung im Fokus steht; die App wird aktiv fast nicht genutzt)
  • Hausverbrauch ohne Auto: ca. 7 kWh pro Tag

 

Ziel:

  • Möglichst wenig Netzbezug von extern / möglichst hohe Autarkie
  • Möglichst wenig aktiv Interaktion (sämtliche Vorgänge erfolgen soweit als möglich automatisch)

Da die Hausbatterie im Verhältnis klein ist, ist es das Ziel, dass sie Abends gefüllt ist um bis zum Morgen locker durchzuhalten.

Seit Januar erreichen wir aktuell eine Autarkie von ca. 90%. (Ja, die herausfordernden Monate kommen noch.)

 

Umsetzung:

Home Assistant:

  • Der HA läuft in der Cloud. (Ich will nämlich keine eigene Hardware vor Ort laufen haben, die wiederum Strom verbraucht.) – Hierfür habe ich das FreeTier von Oracle in Nutzung. Läuft perfekt. Kosten = 0.
  • Zwischen meiner FritzBox und der OCI besteht ein Wireguard VPN-Tunnel. – Läuft super stabil, benötigt lokal keine fixe IP. (Auch die Einwahl von unterwegs ins Home-Netz läuft über die Public IP der OCI. So connecten auch iPhones, etc. gegen die OCI und sind im internen Netz. Offene Ports lokal sind keine notwendig.)
  • Klar, der HA macht noch viel mehr als die reine Steuerung der Wallbox (Automatisches Öffnen des Garagentors, wenn das Auto nach Hause kommt, Licht, Heizung, etc.) – Aber erstmal egal.
  • Die Kommunikation zwischen HA und der cFos erfolgt rein per MQTT (Mosquitto-Broker als Addon im HA). (Für die cFos PowerBrain gibt es auch eine Integration, die jedoch m. E. nicht ganz so bandbreiten- und lastschonend agiert und ein paar Einschränkungen hat)
  • Der Wechselrichter ist per HA-Integration angebunden und wird jede Sekunde per Modbus abgefragt.
  • Der HA schreibt per Automatisierung jede Sekunde die Netzeinspeisung bzw. -bezug als auch den Stand des Akkus inkl. SoC an den MQTT-Broker, von dem die Wallbox die Daten bezieht.
  • Weiterhin werden per MQTT folgende Werte gesetzt:
    • var_LS_Schnellladung = 0 oder 1 (sofern mal unabhängig vom Überschuss geladen werden soll)
    • var_Ladeleistung = 16000 oder weniger (Ladeleistung im mA, wenn unabhängig vom Überschuss geladen werden soll)
    • var_LS_NiedrigerErtrag = 0 oder 1 (wird von HA auf 1 gesetzt, wenn laut PV-Vorhersage heute weniger als 15 kWh vom Dach kommen)
    • var_LS_BatterieNutzung = 0 oder 1 (wird von HA auf 1 gesetzt, wenn der SoC der Batterie >99% voll ist und auf 0, wenn sie unter 90% ist.)
    • var_LS_VorhersageBlock = 0 oder 1 (wir von HA auf 1 gesetzt, wenn hochgerechneter Restverbrauch bis Sonnenuntergang + noch ausstehende Batterieladung kleiner als der noch erwartete Restertrag des Tages ist
  • Die cFos PowerBrain sendet die aktuellen Zählerwerte an den HA zurück, die dieser anschließend einerseits im Dashboard darstellt, andererseits für die Nutzungsberechnung (welcher Verbraucher hat wie viel Energie verwendet) berücksichtigt.

HA-Automatisierungen:

  • Bei jeder Veränderung eines Wertes (Batterie, Netzbezug / Einspeisung) erfolgt eine Aktualisierung beim MQTT-Broker
  • Sobald ein Fahrzeug an die Wallbox angeschlossen wurde, erfolgt eine Smartphone-Push-Meldung die einerseits den aktuellen prozentualen Ladestand des Autos mitteile, andererseits auf Basis der PV-Prognose abzgl. erwarteter Eigenverbrauch einen Zielzeitpunkt, zu dem das Auto voraussichtlich voll geladen ist. Innerhalb dieser Meldung kann der Empfänger wählen, ob ihm das reicht, oder er ohne PV-Überschussberücksichtigung laden möchte.
  • Sobald des Fahrzeug fertig geladen ist, erfolgt eine Pushmeldung.

 

Wallboxkonfiguration:

Zwar bekommt HA jede Sekunde einen aktuellen Wert vom Wechselrichter, bzgl. Erzeugung, Netzeinspeisung bzw. -bezug, Batterieladung, etc. und gibt diesen direkt an den MQTT-Broker weiter, dennoch schwingt die PV-Überschussberechnung bei mir teilweise ziemlich. Daher habe ich eine weitere Variable definiert:

mysurplus_advanced = min(((3 * CM.mysurplus_advanced + CM._org_surplus) / 4), CM._org_surplus)

Diese Variable  wurde dann im Lastmanagement unter ‚Formel für solaren Überschuss (W)‘ eingetragen. – Damit glättet sich das zumindest etwas (wenn auch nicht ganz).

 

 

Laderegeln:

Da meine Wallbox in der Garage montiert ist, nutze ich keine separate Authentifizierung. Daher habe ich sämtliche Laderegeln direkt in der Wallbox (ohne separaten Benutzer) konfiguriert.

Alle Laderegeln sind mit dreistelligen IDs versehen (das macht das Debugging für mich leichter; so kann man die Protokollierung hochsetzen und sieht genau, welche Laderegel wirkt).  Zudem habe ich meist mit separaten Regel gearbeitet (ja man könnte die auch teilweise kombinieren – für mich war es so leichter):

  1. 1: Prüfen ob CM.var_LS_VorhersageBlock == 1 und  M6.soc < 90
    Wenn die PV-Vorhersage (kommt aus OpenWeather vom HA) für heute nicht mehr ausreicht und der Akku tatsächlich unter 90% ist, erfolgt sofort ein Abwurf auf die Ebene ‚kein PV-Überschuss‘
  2. 101: CM.var_LS_NiedrigerErtrag == 0
    102: M6.soc <=45
    103: PV-Überschuss > 9000; Überschussfaktor = 0.8
    An normalen Tagen, wenn Hausbatterie noch weitgehend leer ist, erst Auto laden, wenn Überschuss > 2.070 Watt.
  3. 111: CM.var_LS_NiedrigerErtrag == 0
    113: PV-Überschuss > 6000; Überschussfaktor = 1
    Ansonsten an normalen Tagen ab 1.380 Watt Überschuss laden
  4. 201: CM.var_LS_NiedrigerErtrag == 1
    202: CM.var_LS_BatterieNutzung == 0
    203: M6.soc <=60
    204: PV-Überschuss >6500; Überschussfaktor = 0.75
    An Tagen mit wenig Ertrag, wenn Batteriemitnutzung nicht erlaubt ist, bei Hausbatterie-SoC <= 60% bei PV-Überschuss von 1.495 Watt laden.
  5. 211: CM.var_LS_NiedrigerErtrag == 1
    212: CM.var_LS_BatterieNutzung == 0
    213: M6.soc > 60
    214: PV-Überschuss >6000; Überschussfaktor = 1
    An Tagen mit wenig Ertrag, wenn Batteriemitnutzung nicht erlaubt ist, bei Hausbatterie-SoC > 60% bei PV-Überschuss von 1.380 Watt laden.
  6. 301: CM.var_LS_NiedrigerErtrag == 1
    302: CM.var_LS_BatterieNutzung == 1
    303: M6.power_w < -2300
    304: PV-Überschuss >2000; Überschussfaktor = 1
    An Tagen mit wenig Ertrag, wenn Batteriemitnutzung erlaubt ist, wenn Hausbatterie  > 60% und Entladeleistung unter 2.300 Watt bei PV-Überschuss von 460 Watt laden.
  7. 401: Abwurf auf ‚kein PV-Laden‘
  8. 501: CM.var_LS_Schnellladung == 1; Ladeleistung = CM.var_Ladeleistung
    Schnelladen mit per HA vorgegebener Ladeleistung.

Die ersten Regeln sind jeweils mit ‚UND‘ verknüpft.

Die Batteriemitnutzung an Tagen mit wenig Ertrag ermöglicht es, dass auch geringe PV-Überschüsse, die nicht die 6 A erreichen, genutzt werden können. Dabei wird jedoch sichergestellt, dass der Hausakku nicht leergezogen wird; schließlich wird der generell für den Hausverbrauch genutzt.

 

Durch die Aufteilung in einzelne Regeln kann die Unterschreitungszeit granular definiert werden. – Wird der PV-Überschuss unterschritten sind meist 60, 90 oder 120 Sekunden hinterlegt. Bei allen anderen Bool-Werten 1 Sekunde. Ja, damit sind es 20 Regeln – dennoch, das funktioniert top.

 

Vielleicht kann sich der ein oder andere etwas abkupfern?

Wer hat weitere Verbesserungs- oder Optimierungsideen? Auch bei Fragen, gerne kommentieren.

markiert als Spam
Geschrieben von (Fragen: 12, Antworten: 50)
Gefragt am 20. Oktober 2024 23:16
86 views