Residuallast-Frühwarnung: 5 Tage Vorlauf vor teuren Tagen — Methodik-Check erbeten

Hallo zusammen,

ich habe mir eine Vorwarnung vor teuren Strom-Tagen gebaut und würde die Methodik gern von euch prüfen lassen. Weil ich etwas schreibfaul bin habe ich den nachfolgenden Text zum großen Teil mit Hilfe von AI schreibe lassen...
Das Skript läuft, ich habe es gegen 45 Tage Ist-Daten validiert — und weiß jetzt ziemlich genau, wo die Schwachstellen liegen. Bei den offenen Punkten (siehe unten) hätte ich gern euren Rat.

Warum das Ganze?

Mein Energiemanagementsystem (EOS) optimiert Day-Ahead, sieht die Preise also erst ~24–48 h vorher. Für die richtig interessanten Entscheidungen ist das zu spät: Wenn übermorgen eine Dunkelflaute ansteht, will ich heute schon wissen, dass ich das Auto noch mit PV-Überschuss vollladen und den Hausspeicher vollhalten sollte. Die Warnung sitzt deshalb eine Ebene über dem EOS. Sie steuert (noch) nichts, sie sagt nur: „Bereite dich vor.“

Mein Setup: 12,75 kWp PV (Ost/West), E3/DC S10E 19,66 kWh, VW ID.3 (55 kWh) an 11-kW-Wallbox, Tibber-Tarif.

:gear: Wie das Modell rechnet

Die zentrale Kenngröße ist die Residuallast (Last minus Erneuerbare), nicht der Erneuerbaren-Anteil an der installierten Leistung. Das Modell rechnet alle 6 Stunden wie folgt:

  1. Wetterdaten (Open-Meteo): 5-Tages-Prognose an 6 Knotenpunkten in DE (Nord/Küste, Ostsee, Hannover, NRW, Frankfurt, München). Genutzt werden shortwave_radiation und wind_speed_100m mit festen Gewichten (Summe je 1,0).

  2. Kapazitätsfaktoren (CF):

    • Solar: linear aus der Globalstrahlung, gedeckelt bei 850 W/m².
    • Wind: über eine vereinfachte Leistungskurve (unter 3 m/s null, ab 12 m/s Volllast, dazwischen kubisch, Cut-out ab 25 m/s).
  3. Hochrechnung auf DE: 128 GW PV (DC), 70,6 GW Wind Onshore + 10,9 GW Offshore, plus 6,5 GW Sockel (Biomasse/Wasser/Müll). Werte stammen aus api.energy-charts.info/installed_power. Der Sockel ist die gemessene mittlere Erzeugung, nicht die installierte Leistung. Wichtig: Dazu kommen Flottenfaktoren von 0,46 für Solar und 0,44 für Wind (dazu unten mehr – das war mein größter Fehler).

  4. Lastprofil: Ein Stundenprofil, rollierend gebildet aus der gemessenen Last der letzten 30 Tage (Energy-Charts public_power, Reihe Load), getrennt nach Werktag und Wochenende. So passt es sich der Jahreszeit automatisch an.

  5. Kalibrierung: Abgleich gegen ren_share_forecast von Energy-Charts, damit der Erneuerbaren-Anteil der ersten 24 Stunden zur Realität passt.

  6. Preiskorridore: Bänder für die Tages-Spitzenresiduallast, gefittet gegen Ist-Preise:

    • < 33 GW = günstig
    • 33–42 GW = normal
    • 42–46 GW = erhöht
    • > 46 GW = hoch

:magnifying_glass_tilted_left: Erkenntnisse aus der Validierung (45 Tage)

Geprüft habe ich gegen gemessene Residuallast und Ist-Börsenpreise.

Ergebnis 1: Das Grundkonzept trägt.

Korrelation der gemessenen Residuallast mit dem Preis:

  • Spitze vs. Tages-Höchstpreis: r = +0,56
  • Spitze vs. Tages-Mittelpreis: r = +0,79
  • Mittel vs. Tages-Mittelpreis: r = +0,86

Ergebnis 2: Das Modell schlägt die Messwerte.

Das Modell sagt den Preis sogar etwas besser voraus als die gemessene Residuallast (r = +0,62 beim Höchstpreis, r = +0,89 beim Mittelpreis). Klingt paradox, ist aber physikalisch plausibel: Das Modell glättet lokale Extreme, und geglättete Größen korrelieren oft besser mit dem überregionalen Strompreis als verrauschte Ist-Reihen.

:warning: Warnung vor zwei Fehlern, die sich gegenseitig verstecken

Beim Nachrechnen fiel ein Versatz auf. Die Suche förderte zwei grobe Schnitzer zutage, die sich fatalerweise im Verhältnis fast exakt aufhoben:

  1. Das Lastprofil war 8–10 GW zu hoch (stundenabhängig: nachts nur −2,3, abends bis −13,4 GW Abweichung zur gemessenen Last).

  2. Die Erzeugungs-Obergrenzen lagen bei rund dem Doppelten der Realität:

    • Solar: Modell-Max 108,8 GW vs. gemessen 58,5 GW (Faktor 1,86×)
    • Wind: Modell-Max 81,5 GW vs. gemessen 35,6 GW (Faktor 2,29×)

Warum? Bei Solar erreicht min(GHI/850, 1) im Sommer im Modell regelmäßig 100 %. Eine reale DE-weite Anlage liefert aber nie ihre DC-Nennleistung (Temperatur, Anstellwinkel, Wechselrichter-Kappung). Gemessene Spitze / installierte DC-Leistung = 58,5 / 128 = 0,46. Bei Wind bedeuten sechs Stützpunkte auf Volllast im Modell gleich Volllast der ganzen deutschen Flotte. Real glättet die räumliche Verteilung das massiv weg (35,6 / 81,5 = 0,44).

Weil beide Fehler in dieselbe Richtung wirkten, stimmte das Verhältnis Last/Erneuerbare und die Residuallast sah auf den ersten Blick brauchbar aus. Aufgeflogen ist das erst, als ich das Lastprofil allein korrigiert habe. Tipp an alle Bastler: Prüft eure Obergrenzen immer gegen die echten Maxima aus public_power!

:red_question_mark: Wo ich euren Rat bräuchte

  1. Lastprognose: Mein rollierendes 30-Tage-Profil ist besser als ein statisches, bleibt aber ein Mittelwert ohne Kenntnis von Temperatur oder Feiertagen. Die modellierte Tagesspitze liegt dadurch systematisch zu niedrig. Kennt jemand eine freie Lastprognose für DE mit mehr als 24 h Horizont? ENTSO-E hat Day-Ahead, für längere Zeiträume habe ich nichts gefunden.
  2. Kalibrierung über den Horizont: Mein Kalibrier-Anker stammt aus den ersten 24h und wird dann auf alle 5 Tage angewendet. Getestet habe ich drei Regeln, am besten funktionierte es, den (gut bekannten) Sockel unskaliert zu lassen. Trotzdem wird der Anker für Tag 3–5 relativ dünn. Wie würdet ihr das skalieren?
  3. Spitze vs. Mittelwert: Ich bande aktuell auf die Tagesspitze, obwohl das Tagesmittel (r = +0,89) eigentlich der bessere Prognostiker ist. Das Problem: Die Prognosewerte des Mittels liegen derzeit über dem Bereich, auf dem ich fitten konnte. Das Modell sagt dann pauschal „hoch“ und trennt nicht mehr sauber. Die Spitze bleibt im belegten Bereich. Würdet ihr trotzdem auf das Mittel gehen und die Unsicherheit/Extrapolation in Kauf nehmen?
  4. Winter-Dunkelflaute fehlt in den Daten: Die Warnschwelle (42 GW) sticht gut heraus. ABER: Der Fit sitzt aktuell auf 45 Sommertagen. Mein echter Zielfall (die Winter-Dunkelflaute) kam im Datensatz kein einziges Mal vor. Hat jemand von euch schon mal die Residuallast gegen Day-Ahead-Preise über ein volles Jahr gelegt?
  5. Kuppelstellen & Must-Run: Im-/Export, Must-run konventionell und Pumpspeicher ignoriere ich derzeit komplett. Für eine grobe Ampel-Funktion vertretbar, oder unterschätze ich den Impact massiv?
  6. Die Grundsatzfrage (EpexPredictor): Es gibt mit dem EpexPrediktor bereits eine offene, KI-basierte (LightGBM) Mehrtages-Preisprognose. MAE 1,73 ct/kWh für DE, 5 Tage im 15-Min-Raster. Lohnt sich mein rein physikalischer Ansatz da überhaupt noch? Meine Hoffnung: Da mein Modell physikalische Ursachen abbildet statt Muster zu lernen, könnte es bei untypischen Wetterlagen (außerhalb der Trainingsdaten) robuster sein. Hat jemand die beiden Ansätze (KI vs. Physik) über einen Winter verglichen?

(Das Skript ist ein einzelnes, schlankes Python-File ohne große Fremdbibliotheken. Bei Interesse stelle ich es gern hier rein!)

Ich freue mich auf euren Input!

Viele Grüße

1 „Gefällt mir“

Hast du die Möglichkeit deine Prognose Daten auch historisch zu beziehen?

Das würde es ermöglichen zu bestimmen wie gut dein Modell rechnet anhand einem "Korrektur-Lauf" von Prognose zu echten Daten.

Und zweitens könnte man damit auch Feiertage und Wochenenden modellieren können.

Ganz grundsätzlich für die Dunkelflaute Warnung sollte ein Algorithmus basierter Ansatz anhand Messdaten eigentlich mehr als ausreichend sein.

Wenn man nicht gerade im MWh Bereich Akkukapazität vorhält, ist der Hebel eh relativ gering.

Bei deinem Setup ist ja so ziemlich die einzige Stellschraube das Auto aus dem Netz zu laden anstatt PV, wenn der dynamische Strompreis günstiger ist wie der Netzbezug und die PV Prognose deinen Speicher nicht füllen könnte.

Wie sieht es denn auf der Verbrauchseite aus?
Da macht auch nochmal einen Unterschied ob man am Tag nur 5kWh braucht oder 50 weil strombasiert geheizt wird.

Wie sieht's mit dynamischen Netzentgelten bei deinem Netzbetreiber aus? Das wäre auch nochmal ne Stellschraube.

Kurzer Nachtrag, weil sich aus deiner Frage nach den historischen Daten mehr ergeben hat als erwartet — und weil ich deinem Punkt zum Hebel noch ein Hinweis geben möchte.

Zum Hebel: die Wärmepumpe ist der Grund. Du schreibst, die einzige Stellschraube bei meinem Setup sei das Auto aus dem Netz statt aus PV zu laden. Im Sommer und den Übergangszeiten stimmt das sogar noch weiter gehend — da gibt es gar nichts zu optimieren da bin ich fast die ganze Zeit bei 99 % Autarkie.

Im Winter kippt es komplett: 35,7 kWh/Tag Netzbezug im Januar, 5,9 % Autarkie. Und dort ist das Auto nicht die relevante Größe, sondern die Wärmepumpe — sie macht den Großteil der 34–42 kWh/Tag aus.

Der entscheidende Unterschied: Das Auto und noch andere Verbraucher kann ich verschieben, die Wärmepumpe nicht. Die läuft, wenn es kalt ist, nicht wenn der Strom billig ist. Genau deshalb lohnt es sich für mich, den Speicher vor einem teuren Tag voll zu lassen statt ihn abends normal leerzufahren — er ist das einzige Instrument, mit dem ich den nicht steuerbaren Verbrauch aus dem teuren Fenster heraushalten kann. 19kWh decken bei Winterlast etwa einen halben Tag; das reicht, um die Spitzen zu überbrücken.

Das ist der eigentliche Zweck der Warnung: nicht nur das Auto optimieren, sondern rechtzeitig wissen, dass ich den Speicher nicht wie sonst verbrauchen sollte. Ich bin mal gespannt wie sich die dynamischen Strompreise im kommenden Winter entwickeln werden. Vor allem wie teuer die Spitzenzeiten sein werden...

1 „Gefällt mir“