Freie EPEX Preisprognose für day-ahead Preise

Hallo zusammen,
nachdem ich mit der EPEX Preisprognose von anderen (allesamt kommerziellen) Anbietern nicht zufrieden war, habe ich beschlossen das mal selbst zu implementieren.
Obwohl es ein sehr einfaches Modell ist, ist es mit allen anderen Modellen die ich gefunden habe mindestens ebenbürtig, übertrifft sogar viele davon. Teilweise signifikant.

Da mir das Vermarkten zu blöd ist könnte das ggf. für @Akkudoktor und sein EOS interessant sein. Ist Open Source unter BSD Lizenz.

Code mit Performance-Beispiel und Link zu einer frei zugänglichen API ist hier zu finden: GitHub - b3nn0/EpexPredictor: Predicts day-ahead electricity prices in Germany
Vorhersagezeitraum standardmäßig ca. eine Woche Prognose.

Ich nutze diese Prognose bereits seit längerem aktiv in meinem eigenen EOS (selbstbastellösung, nicht öffentlich).

Für die Nutzung gilt fair use und es gibt keinerlei Garantien. Falls es zu Missbrauch kommt schalte ich ab. Code bleibt aber natürlich für self-hosting Zwecke öffentlich.

Derzeit wird nur Deutschland unterstützt, da ich in anderen Ländern keine Ahnung habe welche Faktoren auf den Preis Auswirkungen haben (und auch keine Motivation das zu implementieren). Pull requests sind natürlich willkommen.

5 „Gefällt mir“

Inzwischen gibts auch etwas mehr Doku und Integrationsbeispiel für Home Assistant auf Github.
z.B. parallel die echten Preise für heute und morgen, neben den von meinem Modell vorhergesagten (Grün=echt, Orange=Vorhersage):

5 „Gefällt mir“

Ab jetzt auch mit Vorhersage in der neuen 15 Minuten Auflösung :+1: .

6 „Gefällt mir“

Cool, aber jetzt noch mit der WP Integration ausgelastet.

Anfang November schaue ich es mir genauer an, vielleicht gibt es ja dann auch einen sample Nod-red Code :wink:

Habe mir mal den Forecast für nächste Woche heruntergeladen und angezeigt:

Ich bin ganz gespannt wie got es passt. Demnach könnte ich Samstag Nacht das Auto laden, da wir hier durchgehend unter 0€/kWh liegen.

Das würde mir die Ladeplanung enorm vereinfachen und “Fehlladungen” verhindern. Zur Zeit muss ich nur alle 2 Wochen mal laden

Bedenke, dass das natürlich nur der Preis ohne Netzentgelte, Gebühren und Steuern ist. für den endgültigen müsstest du entsprechende Parameter mit geben oder selbst umrechnen.

Außerdem muss man sagen:

  • Je länger man in die Zukunft guckt, desto schlechter die Prognose

  • Akutell struggelt das Modell noch etwas mit der 15 Minuten Umstellung. Sobald es da genug Lerndaten gibt werde ich etwas experimentieren ob ich es besser hinbekomme.

Die Tendenz stimmt aber normal schon. Am Samstag dürfte es definitiv günstig werden. Ob das jetzt -1ct oder +1ct wird, wird sich dann zeigen.

1 „Gefällt mir“

Ja, es würde nur der Orientierung dienen, Regelung mache ich über die Tibber API. Habe mich eh an die direkten Spotmarktpreise gewöhnt, der Rest ist ja (noch) kostant.

Für morgen hat die Vorhersage glaube ich danebengehauen:

Oder es ist off-by-one? Das Muster das erst morgen Nacht kommen sollte kommt schon heute nacht

Ist das so? Ist leider in deinem Screenshot schwer für mich erkennbar. Der erste ist nur sehr grob aufgelöst, der zweite hat kein Datum an der X Achse.

Bei mir sieht es - inkl. Netzentgelte etc. - für morgen so aus.

Ist nicht optimal aufgrund der angesprochenen aktuellen Probleme, aber zumindest die Richtung stimmt: keine extremen Peaks morgens/abends, über Mittag gegen 0 (~16ct Aufschlag).

Orange = Vorhersage, Grün = tatsächlich.

Übrigens: so ganz konstant ist der Aufschlag nicht, aufgrund der 19% MwSt. Bei Gratisstrom hast du so einen Aufschlag von 0ct, wenns teuer wird, z.B: 50ct Börsenpreis, hast du einen Aufschlag von 9,5ct. Aber muss jeder selbst wissen.

EDIT: Ich glaube du hast da eher einen off-by-one in deiner Anzeige?
Mein Modell gibt z.B. für Freitagmittag definitiv nahezu 0 aus. Auf deinem ersten Screenshot sieht es eher nach ~3ct aus? Auf dem zweiten gibt es leider keine Datumsreferenz.

{
      "startsAt": "2025-10-24T12:45:00+02:00",
      "total": 0.0233
    },
    {
      "startsAt": "2025-10-24T13:00:00+02:00",
      "total": -0.0035
    },
    {
      "startsAt": "2025-10-24T13:15:00+02:00",
      "total": -0.0035
    },
    {
      "startsAt": "2025-10-24T13:30:00+02:00",
      "total": -0.0035
    },
    {
      "startsAt": "2025-10-24T13:45:00+02:00",
      "total": -0.0028
    },
    {
      "startsAt": "2025-10-24T14:00:00+02:00",
      "total": -0.0028
    },
    {
      "startsAt": "2025-10-24T14:15:00+02:00",
      "total": -0.0035
    },
    {
      "startsAt": "2025-10-24T14:30:00+02:00",
      "total": 0.0079
    },

Aalso… diesen Forecast habe ich gestern bei dir abgerufen:

    {
      "startsAt": "2025-10-24T00:00:00+02:00",
      "total": 7.7027
    },
    {
      "startsAt": "2025-10-24T00:15:00+02:00",
      "total": 7.8
    },
    {
      "startsAt": "2025-10-24T00:30:00+02:00",
      "total": 7.584
    },
    {
      "startsAt": "2025-10-24T00:45:00+02:00",
      "total": 1.5817
    },
    {
      "startsAt": "2025-10-24T01:00:00+02:00",
      "total": 5.4837
    },
    {
      "startsAt": "2025-10-24T01:15:00+02:00",
      "total": 4.126
    },
    {
      "startsAt": "2025-10-24T01:30:00+02:00",
      "total": 4.126
    },
    {
      "startsAt": "2025-10-24T01:45:00+02:00",
      "total": 4.1257
    },
    {
      "startsAt": "2025-10-24T02:00:00+02:00",
      "total": 6.5423
    },
    {
      "startsAt": "2025-10-24T02:15:00+02:00",
      "total": 4.9173
    },
    {
      "startsAt": "2025-10-24T02:30:00+02:00",
      "total": 7.438
    },
    {
      "startsAt": "2025-10-24T02:45:00+02:00",
      "total": 7.5003
    }

Und hier die Tibber-Daten für den selben Zeitraum

{ 
   "startsAt": "24.10. 00:00",
   "total": 1.6
},
​{ 
   "startsAt": "24.10. 00:15",
   "total": 1.94
},
​{ 
   "startsAt": "24.10. 00:30",
   "total": 1.29
},
​{ 
   "startsAt": "24.10. 00:45",
   "total":  0.9
},
​{ 
   "startsAt": "24.10. 01:00",
   "total": 1.4
},
​{ 
   "startsAt": "24.10. 01:15",
   "total": 1
},
​{ 
   "startsAt": "24.10. 01:30",
   "total":  0.9
},
​{ 
   "startsAt": "24.10. 01:45",
   "total":  0.64
},
​{ 
   "startsAt": "24.10. 02:00",
   "total": 1
},
​{ 
   "startsAt": "24.10. 02:15",
   "total":  0.69
},
​{ 
   "startsAt": "24.10. 02:30",
   "total":  0.51
},
​{ 
   "startsAt": "24.10. 02:45",
   "total":  0.4
}

Ah okay, dann war mein Abruf wohl etwas später, und die Wettervorhersage muss sich wohl erheblich geändert haben. Die ist ja der wesentliche Einflussfaktor.

Die Vorhersage für heute (Samstag) von Mittwoch passt wieder ganz gut:

Der Morgenpeak war in der Vorhersage stärker ausgeprägt und ist jetzt quasi nicht vorhanden. Die qualitative Aussage stimmt aber: den ganzen Samstag bis 18 Uhr sehr niedrige Preise.

Für morgen wurde nochmal so ein Preistief vorhergesagt, mal gespannt ob das hinkommt. Aber wäre ja Sonntags nicht unwahrscheinlich bei dem Wind