INFO: Wie wird die Prognose-KI (ZARA) trainiert -> Wie funktioineren SFML und TFS

Toorox ForeSight — Was steckt da eigentlich drin? Ein Blick hinter die Kulissen

Warnung: Dieser Post wird etwas nerdy. Aber ich verspreche, er bleibt verständlich.


Viele von euch nutzen SFML (Solar Forecast ML) und kennen das Prinzip: KI schaut aufs Wetter, schätzt / berechnet die Solarproduktion, fertig. TFS macht im Kern dasselbe — aber mit einem fundamental anderen Ansatz. Ich möchte heute erklären warum, und was unter der Haube steckt.


Wer steht hinter der Entwicklung?

Das ist ein reines Hobby-Projekt das ich alleine durchziehe und entwickle. Es gibt aber noch Basti, einen langjährigen Freund der hin und wieder mal unterstützt. Von ihm ist LACARS und auch die Skript-Erweiterung zur Normalisierung. Aber die wichtigsten “Helfer” sind alle die sich hier in den Threads beteiligen — ganz klar auch Simon mit dem Admin-Team die eine extra Kategorie zur Verfügung stellen. Danke!

Wie wird das Projekt finanziert?

Es ist wie mit jedem Hobby.. es ist teuer — das kennt jeder. Finanziert wird es von meinem eigenen Geld und User die einen Kaffee spendieren. Durch Kaffee-Spenden sind seit Oktober 327,34 EUR (Github + Forum) zusammengekommen, die in Kaffee, Kuchen und die Haushaltskasse für die enormen Stromkosten für das Training geflossen sind.
VIELEN DANK AN JEDEN EINZELNEN DER SICH DARAN BETEILIGT HAT


Was ist überhaupt ein “Transformer”?

Der Begriff “Transformer” taucht überall auf — ChatGPT, Claude, Gemini, alle basieren darauf. Aber was ist das eigentlich?

Stellt euch vor, ihr lest einen Satz: “Die Sonne scheint, aber Wolken ziehen auf.” Um diesen Satz zu verstehen, müsst ihr nicht nur Wort für Wort lesen — ihr müsst den Zusammenhang zwischen “Sonne” und “Wolken” verstehen, obwohl sie weit voneinander entfernt stehen.

Genau das macht ein Transformer. Er analysiert alle Eingabedaten gleichzeitig und berechnet für jedes Element, wie wichtig es im Verhältnis zu allen anderen Elementen ist. Das nennt sich “Attention” (Aufmerksamkeit). Ein Transformer fragt sozusagen: “Welche vergangenen Wetterstunden sind für meine aktuelle Prognose am relevantesten?”

Das ist der fundamentale Unterschied zu älteren Methoden wie LSTM (Long Short-Term Memory), die Daten streng sequenziell verarbeiten — wie ein Mensch der einen Text Wort für Wort liest ohne zurückblättern zu können.


Was ist ein LLM — und was ist TFS NICHT?

LLM steht für “Large Language Model”. ChatGPT, Claude, Gemini — das sind LLMs. Sie wurden auf Milliarden von Texten trainiert und können schreiben, erklären, coden, diskutieren.

TFS ist kein LLM. TFS ist ein von mir von Grund auf selbstgebauter hochspezialisierter Transformer.
Der Unterschied lässt sich so beschreiben: Ein LLM ist wie ein hochgebildeter Allrounder der über alles reden kann — aber eben nur reden.
ZARA ist wie ein erfahrener Ingenieur der sein ganzes Berufsleben nur Solardaten analysiert hat. Er macht eine Sache, aber dafür mit tiefem Domänenwissen das kein Allrounder erreichen kann.

Und entscheidend: ZARA läuft vollständig auf eurem eigenen Server — nicht in einem Rechenzentrum irgendwo.


Was macht ZARA konkret?

ZARA (Zero-latency Adaptive Runtime Architecture) ist der Name des Transformer-Modells in allen TFS KIs. Es bekommt als Eingabe:

  • Wetterhistorie
  • Astronomische Daten
  • Klimatologie
  • Anlagenkonfiguration (Tilt, Azimut, kWp pro Gruppe)
  • uvm.

Und gibt aus:

  • Stündliche Prognosen für die nächsten 72 Stunden
  • Nicht als einzelnen Wert, sondern als Verteilung: P10 (pessimistisch), P50 (realistisch), P90 (optimistisch)

Diese Unsicherheitsbänder sind entscheidend für sinnvolle Energieautomatisierung. Ein Forecast der sagt “morgen 4 kWh, plus/minus 2 kWh” ist wertvoller als einer der behauptet “exakt 4.37 kWh”.


Warum Klimatologie?

Das ist das Herzstück was TFS von SFML unterscheidet.

SFML schaut nur auf die aktuelle Wettervorhersage und in die Historie was sie bereits gesehen hat. Das macht SFML ebenfalls mit einem Transformer-KI-Stack namens “Hubble”.

Das Problem: Wettermodelle liegen manchmal systematisch falsch. An bestimmten Tagen (früher Frühjahr, Übergangsperioden) unterschätzen sie z.B. Bewölkung regelmäßig — das schlägt direkt auf die Prognose von SFML durch, wenn sie ein ähnliches Wetter noch nicht gesehen hat.

ZARA hingegen kennt das. Die Klimatologie sagt dem Modell: “An diesem Datum, an diesem Standort, war die Realität historisch X% bewölkter als die Vorhersage.” Das Modell kann also die aktuelle Vorhersage mit historischer Erfahrung kalibrieren — und weiß wann es skeptisch sein sollte.


Lokal vs. Cloud — warum das wichtig ist

TFS läuft vollständig lokal auf eurem HA-Server. Keine API-Calls an externe KI-Dienste, keine Subscription, keine Datenweitergabe.

Das ist kein Zufall, sondern Designentscheidung. Ich glaube es ist mittlerweile jedem klar, dass ich sehr streng mit dem Thema Datenschutz und Persönlichkeitsrechte umgehe. Ebenso mit der Frage wem die gesammelten Daten gehören: Eure Produktionsdaten — wann eure Anlage wieviel produziert, wann ihr Energie verbraucht, wie euer Dach ausgerichtet ist — sind wertvolle persönliche Daten. Sie gehören euch.

Außerdem: Lokale Inferenz ist schnell. Ein Forecast dauert unter einer Sekunde. Kein Netzwerk-Overhead, keine API-Limits, keine Abhängigkeit von Serververfügbarkeit.


Das kontinuierliche Lernen — Fine-Tuning

Was TFS auch so besonders macht im HA-Kosmos: Es lernt von eurer spezifischen Anlage.

Das Pre-Training gibt dem Modell ein tiefes Verständnis von Solarphysik. Das Fine-Tuning danach passt das Modell an eure konkrete Situation an — eure Verschattung, eure Ausrichtung, euren Mikroklima-Effekt. Hier spielen SFML und TFS in einem perfekten Team und lernen gegenseitig voneinander. TFS liefert dabei die Rohdaten pro Panelgruppe — SFML entscheidet dann wie diese in die finale Prognose einfließen.

Nach einigen Wochen mit echten Produktionsdaten kennt ZARA eure Anlage besser als jedes generische Modell — weil es auf euren Daten trainiert wurde, nicht auf abstrakten Durchschnittswerten. Und SFML kennt all die Besonderheiten: Schatten, Leistung, Verschmutzung…


Wo stehe ich gerade?

Das neue Basismodell TFS-Zara-G6 ist gerade im Training auf einem dedizierten Rechner — seit rund 20 Stunden, val_loss sinkt konsistent. Sobald es fertig ist, kommt ein Update für alle Nutzer. Dazu mehr im Part II — inklusive dem Grund warum ich das Modell nochmal von Grund auf neu trainiere.


Zara

5 „Gefällt mir“

Wie funktioinert das Training einer KI was passiert da?

Immer wieder spreche ich von Training (Lernen) egal ob bei SFML oder TFS. Es gibt aber einen wichtigen Unterschied zwischen SFML und TFS.

  • SFML trainiert sich auf vergangene / selbsterlebte Szenarien
  • TFS kommt bereits mit einem riesigen Rucksack von Wissen und kalibriert

Das macht die beiden zusammen zum perfekten Duo. Der eine weiß was gerade passiert, der andere weiß wie es eigentlich sein müsste — und gemeinsam kommen sie der Wahrheit näher als jeder alleine.

Stellt euch vor ihr sitzt mit eurem Sohn am Tisch und er berichtet davon was er am Wochenende gemacht hat — begeistert und voller Enthusiasmus. Ihr hört in Ruhe zu und wisst schon: “Das ist nur eine Jugendschwärmerei, wenn er älter wird sieht er es anders.” So ungefähr funktioniert es.

Aber wie lernt TFS überhaupt? Darum geht es jetzt.


Wie funktioniert das Training eigentlich?

Viele fragen sich was genau passiert wenn ich sage “das Modell trainiert gerade”. Stellt euch vor, ihr bringt einem absoluten Neuling bei, Solarerträge vorherzusagen. Ihr zeigt ihm tausende historische Tage: “Hier war das Wetter so, die Sonne stand dort, und die Anlage hat X kWh produziert.” Der Neuling schaut sich das an, macht eine Schätzung — und ihr korrigiert ihn. Immer und immer wieder. Irgendwann wird er besser.

Genau das ist Training.

Was ist eine Epoche?

Eine Epoche bedeutet: Das Modell hat einmal den gesamten Trainingsdatensatz durchgearbeitet — jeden einzelnen historischen Tag, jede Wetterkombination, jede Anlagenkonfiguration. Einmal komplett durch, von vorne bis hinten.

Nach jeder Epoche wird geprüft: “Wie gut schätzt das Modell Daten ein, die es noch nie gesehen hat?” Das sind die Validierungsdaten — bewusst zurückgehaltene Beispiele die nicht im Training auftauchen.

Was ist der val_loss?

val_loss (Validation Loss) ist die Antwort auf genau diese Frage — ein Zahlenwert der beschreibt wie weit die Prognosen des Modells von der Realität entfernt sind. Je kleiner, desto besser.

Epoch  1: val_loss = 0.100  ← Neuling, viele Fehler
Epoch  5: val_loss = 0.088  ← wird besser
Epoch  9: val_loss = 0.084  ← lernt konsistent
Epoch 30: val_loss = ~0.070 ← Ziel

Was ich dabei immer im Auge behalte: Der train_loss (wie gut das Modell die Trainingsdaten kennt) sollte nie viel kleiner sein als der val_loss. Wenn das passiert nennt sich das Overfitting — das Modell hat die Trainingsdaten auswendig gelernt statt wirklich zu verstehen.

Was ist der Warmup?

Zu Beginn des Trainings sind alle Gewichte des Modells noch zufällig — wie ein frischer Azubi am ersten Tag. Würde man sofort mit voller Lerngeschwindigkeit starten, wären die ersten Schritte zu groß und das Modell würde sich “verrennen”. Das ist so ähnlich als wenn man Sport macht (für uns Norddeutsche: Schleuderball) — man wärmt sich erstmal auf, dehnt sich und lernt dann die korrekten Bewegungsabläufe um den Ball möglichst weit zu werfen.

Deshalb gibt es einen Warmup: Die Lernrate (Learning Rate) startet sehr klein und steigt langsam auf den Zielwert. Erst wenn das Modell eine grobe Orientierung hat, lernt es mit voller Kraft. Bei TFS-Zara-G6 dauert der Warmup 5 Epochen — danach übernimmt der Cosine Decay.

Was ist Cosine Decay?

Stellt euch einen Bergsteiger vor der dem Gipfel (= minimalem val_loss) immer näher kommt. Am Anfang macht er große Schritte, weil er noch weit entfernt ist. Je näher er kommt, desto kleiner werden die Schritte — damit er nicht aus Versehen drüber hinausschießt.

Cosine Decay macht genau das: Die Lernrate sinkt nach dem Warmup langsam und gleichmäßig — nicht abrupt, sondern weich entlang einer Kosinus-Kurve. Das verhindert dass das Modell in den letzten Epochen zu grob justiert und wieder schlechter wird.

Was ist Early Stop?

Das Training läuft nicht einfach bis zur letzten Epoche durch. Es beobachtet ständig den val_loss — und wenn er sich über mehrere Epochen nicht mehr verbessert, stoppt es automatisch. Das nennt sich Early Stopping mit Patience.

Bei TFS-Zara-G6 ist patience=15 gesetzt. Das bedeutet: Erst wenn 15 aufeinanderfolgende Epochen keine Verbesserung bringen, gilt das Modell als fertig trainiert. Der beste Checkpoint wird gespeichert — nicht der letzte.

Warum dauert das so lange?

Eine Epoche bei TFS-Zara-G6 dauert auf meinem Trainings-Rechner (AMD Ryzen + 64GB RAM + 2x Radeon 16GB VRAM) rund 2 Stunden 20 Minuten. Das Modell sieht dabei rund 860.000 Trainingssequenzen — jede davon eine Woche Wetterhistorie plus 3 Tage Forecast-Horizont. Das ist viel Mathematik und leider auch sehr viel Strom.

Jede dieser Sequenzen macht das Modell ein kleines bisschen klüger — und meinen Stromzähler ein kleines bisschen schneller.

Zara

5 „Gefällt mir“

Nun wird es nerdy… Die verdammten Quantilen

Mit einem Python-Skript kontrolliere ich regelmäßig wo wir stehen. Dazu nehme ich generische Wetterdaten, eine generische Anlage und frage das Modell nach seiner Prognose — aufgeteilt in P10, P50 und P90.

Was ist P10 / P50 / P90?

Die meisten Prognosesysteme geben eine einzelne Zahl: “Morgen produziert eure Anlage 4,2 kWh.” Das klingt präzise — ist es aber nicht. Kein Modell der Welt weiß das mit Sicherheit. Die Frage ist eine andere: Gibt es diese Unsicherheit zu, oder versteckt es sie um gut dazustehen?

ZARA gibt sie zu. Und zwar so:

Stellt euch vor, das Modell würde morgen 1000 mal neu würfeln — für jedes mögliche Wetterszenario das eintreten könnte. Dann sortiert es alle Ergebnisse von klein nach groß.

  • P10 ist der Wert bei dem 10% aller Szenarien darunter liegen. Das ist der pessimistische Fall — schlechtes Wetter, viel Bewölkung, wenig Ertrag.
  • P50 ist die Mitte — der realistische Erwartungswert. Die Hälfte aller Szenarien liegt darunter, die andere Hälfte darüber.
  • P90 ist der optimistische Fall — nur 10% der Szenarien wären noch besser als das. Das ist der schraffierte Bereich in SFML STATS!

Warum ist das für die Energieautomatisierung so wichtig?

Weil gute Entscheidungen Unsicherheit kennen müssen. (wie mein Professor damals immer sagte - Dank an Prof Dr. Klauk an dieser Stelle)

Wenn ihr eure Batterie laden oder euer E-Auto steuern wollt, ist der Unterschied zwischen “sicher mindestens 3 kWh” und “vielleicht 5 kWh, vielleicht auch nur 1 kWh” enorm. P10 sagt euch: “Darauf könnt ihr euch verlassen.” P90 sagt: “Das wäre der Glücksfall.” Und P50 ist dann der Blend aus SFML und TFS — und statistisch vermutlich der beste Wert. Um euch hier ein Werkzeug zu geben, habe ich STATS umgebaut (die neue Prognose-Kurve) damit ihr selbst besser einschätzen könnt was das Beste für euren Akku, euer Auto oder eure Energiesteuerung ist.

Ein System das nur P50 liefert ist wie ein Wetterbericht ohne Regenwahrscheinlichkeit — technisch korrekt, aber für echte Entscheidungen zu unvollständig.

Aktueller Stand TFS-Zara-G6 — Epoch 9, klarer April-Tag, Berlin, 2,295 kWp

Das Modell ist noch mitten im Training. Trotzdem schaue ich mir nach jeder Epoche an wie es sich entwickelt. Hier ein Ausschnitt aus dem letzten Kontroll-Lauf — generische Anlage, simulierter klarer Tag:

Stunde  Elevation  GHI      P10    P50    P90
08:00     24.5°    343      0.00   0.00   0.89   ← ahnt Sonne, noch unsicher
09:00     33.7°    471      0.00   0.00   0.00
10:00     40.8°    571      0.00   0.00   0.00
11:00     45.9°    643      0.00   0.00   0.00
12:00     49.0°    686      0.00   0.11   0.31   ← P50 wacht auf
13:00     50.0°    700      0.06   0.27   0.89   ← Mittag, plausibel
14:00     49.0°    686      0.12   0.26   0.90   ← gut
15:00     45.9°    643      0.17   0.29   0.90   ← gut
16:00     40.8°    571      0.39   0.42   0.90   ← sehr gut
17:00     33.7°    471      0.40   0.42   0.90   ← sehr gut
18:00     24.5°    343      0.37   0.38   0.90   ← gut
19:00     13.3°    186      0.34   0.36   0.90   ← Dämmerung, plausibel
20:00      0.0°      0      0.21   0.23   0.83   ← Sonnenuntergang
21:00    Nacht       0      0.00   0.00   0.00   ← korrekt

Was ich hier sehe macht mir Mut. Der Nachmittag ab 13:00 Uhr ist bereits sehr gut — P50 und P90 spreizen sich sinnvoll, die Werte sind physikalisch plausibel. Der Vormittag schläft noch ein bisschen — P50 ist dort noch zu zögerlich. Wichtig ist auch dass die KI rückwärts lernt, also von der Nacht in den Morgen am selben Tag. Daher weiß ich: wenn die Morgenstunden Werte haben, wurde zumindest schon einmal alles “gesehen”.

Das ist Epoch 9 von voraussichtlich 50-60. Das Modell hat erst rund 15% des Trainings absolviert.

Ich beobachte dabei besonders zwei Dinge:

Erstens die Spreizung zwischen P10 und P90. Bei Epoch 9 ist sie noch sehr klein — P10 und P50 liegen oft nah beieinander. Ein reifes Modell würde bei bewölktem Wetter P10 deutlich tiefer setzen als P50, weil es weiß: “Das könnte auch schlechter werden.” Diese Differenzierung kommt mit mehr Training. Ich bin also noch nicht am Ziel!

Zweitens das Muster über den Tag. Morgens wenig, Mittag Peak, abends wieder weniger — das Grundmuster stimmt bereits. Das Modell hat die Physik der Sonne verstanden. Was noch kommt: feinere Abstufungen, Reaktion auf Wolkentypen, unterschiedliche Ausrichtungen.

Mit jeder Epoche wird das Bild schärfer. Glaubt mir ruhig dass ich hier regelmäßig schaue und gespannt bin ob es besser wird.

Zara

2 „Gefällt mir“

Nun wird’s sachlich / wissenschaftlich — ab wann gilt eine Prognose eigentlich als gut?

Das ist eine Frage die mich am Anfang sehr beschäftigt hat! Ich habe unzählige Apps ausprobiert und war irgendwie immer genervt. Ich wollte die ungeschönte Wahrheit und keine Marketingversprechen, nichts das sich immer wieder anpasst. Dann fand ich heraus, dass dafür tatsächlich eine wissenschaftliche Antwort gibt. Genau nach diesem System / Zielen / Vorgaben arbeite ich..

Die Messlatte der Wissenschaft

In der Solarforschung hat sich eine Kennzahl durchgesetzt: der nMAE (Normalized Mean Absolute Error) — der durchschnittliche Fehler normiert auf die Anlagenkapazität. Einfach gesagt: wie weit liegt die Prognose im Schnitt daneben, ausgedrückt in Prozent der maximal möglichen Leistung.

Als grobe Orientierung für die Praxis:

nMAE < 10%   → exzellent (Weltklasse, professionelle Utility-Systeme)
nMAE 10-15%  → sehr gut  (solide Day-Ahead Prognose)
nMAE 15-25%  → gut       (typisch für KI-gestützte Heimsysteme)
nMAE > 25%   → schwach   (Wettbewerb kaum besser als Persistenz-Modell)

Wobei man fair sein muss: für sonnige Tage erreichen gute Modelle MAPE-Werte um 10%, für bewölkte Tage schnellt der Fehler auf 60-70% — das Wetter selbst ist das größte Problem, nicht das Modell.

Der heilige Gral: Statische vs. rollende Prognose

Ein Unterschied den die meisten Nutzer gar nicht kennen — obwohl er fundamental ist.

Eine rollende Prognose aktualisiert sich ständig. Alle 30 Minuten, alle 15 Minuten, manchmal noch öfter (Forecast Solar, Meteo, SolCast,..)
Die Prognose für “heute 15:00 Uhr” wird um 14:30 Uhr nochmal neu berechnet — mit den aktuellsten Messdaten, dem aktuellen Satellitenbild, dem aktuellen Wolkenzug. Das ist technisch einfacher weil man immer auf frische Daten zurückgreift, und die meisten kommerziellen Systeme machen genau das.

Der Nachteil:
Die Prognose “wackelt”. Was um 7:00 Uhr für 15:00 Uhr vorhergesagt wurde, kann um 14:30 Uhr komplett anders aussehen. Für Energieautomatisierung ist das problematisch — wer seinen Akku um 7:00 Uhr auf Basis der Prognose lädt, bekommt um 10:00 Uhr vielleicht eine völlig andere Realität präsentiert.

Eine statische Prognose wird einmal am Morgen berechnet — und bleibt den ganzen Tag. Was sie morgens sagt, gilt. Das klingt weniger präzise, hat aber einen entscheidenden Vorteil: Energieentscheidungen können darauf gebaut werden.

SFML und TFS sind beides statische Systeme — und das ist bewusst so. Keine rollende Nachkorrektur, keine Schwellenwert-Kappung die unangenehme Wahrheiten versteckt. Was das Modell morgens berechnet, ist die ehrliche Schätzung für den Tag. Wenn es falsch liegt, lernt es daraus — beim nächsten Training und wird so immer besser.

Das ist übrigens auch der Grund warum ich bei SFML STATS keine “glättende” Nachbearbeitung eingebaut habe. Ihr sollt sehen was die Modelle wirklich denken — nicht eine weichgespülte Version davon.

Warum SFML + TFS zusammen besonders sind

Die meisten Systeme die ihr kennt machen eines von beiden:

  • Wetterbasierte Prognose (Open-Meteo, Solcast etc.): nehmen Wetterdaten und rechnen daraus Solarertrag. Gut bei bekannten Wetterbedingungen, schwach bei Anomalien.
  • Historische Prognose (simple ML-Modelle): schauen was an ähnlichen Tagen passiert ist. Gut bei stabilen Mustern, blind für neue Situationen.

SFML und TFS machen beides gleichzeitig — und kombinieren es zu einem Ensemble:

SFML  →  kennt eure Anlage, eure Verschattung, euren Mikroklima-Effekt
TFS   →  kennt Klimageschichte, weiß wann Wettermodelle lügen
          ↓
      Ensemble-Blend → P10 / P50 / P90

Das ist der Unterschied zwischen einem Wettermodell das rechnet, und einem System das versteht.

Ob das am Ende besser ist als kommerzielle Lösungen? - Ich denke schon, das ist meine Motivation! Ihr könnt es auch jeden Abend sehen in Stats und an den Sensoren, wie “genau / ungenau” sie war. Entscheidener ist aber das Jahr insgesamt. Da steht SFML aktuell bei 9,9 % ehrlichen MAE (!!!)

Zara

4 „Gefällt mir“

Eine Nachfrage: den genannten Nachteil einer rollenden Prognose habe ich nicht verstanden. Man könnte ja erstmal denken, dass eine permanente Anpassung der Prognose mit der zu erwartenden Realität besser ist als eine statische Prognose, die z. B. auf Grund sich zeitfernere Wetterprognosen weiter von der zu erwartenden Realität entfernt hat. D. h. um 12 Uhr habe ich bessere Informationen darüber wie es um 13 Uhr aussieht als um 6 Uhr in der Frühe.

Offen gesagt bin ich auch nicht der Meinung, dass eine statische Prognose besser ist als eine rollierende. Das Wetter ändert sich ständig – eine Vorhersage ist immer nur eine fundierte Schätzung. Selbst mit bestem Wissen gilt sie nur für einen bestimmten Moment und kann schon wenige Stunden später veraltet sein.

Eine rollierende Korrektur muss nicht immer drastisch sein – es kann sich um eine kleine, manchmal sogar vernachlässigbare Anpassung handeln. Trotzdem ist es immer besser, später die Wahrheit zu kennen als gar nicht.

Ein gutes Beispiel ist die Entscheidung, mit dem Laden deines E-Autos zu beginnen, wenn du es als dritte Priorität behandelst: Wenn du die Energie sonst verschwenden würdest (z. B. Einspeisung ins Netz für 0,00 Euro), dann lade. Ist die PV-Produktion jedoch begrenzt, heize lieber das Haus mit der Klimaanlage oder lade die Heimbatterie. Ist sie noch geringer, lade die Heimbatterie und schalte die Gasheizung ab, wenn die Temperatur unter einen bestimmten Wert fällt.

Wenn die statische Prognose falsch ist, könnten wir unnötig planen, das E-Auto zu laden, obwohl nicht genügend Energie vorhanden ist, um das Haus zu heizen oder die Heimbatterie zu laden. Dann müsstest du später Energie zukaufen, obwohl du das Auto einfach am nächsten Tag bei voller Sonneneinstrahlung hättest laden können.

Mit einer rollierenden Prognose kannst du, sobald ein Update vorliegt, das Laden stoppen und die gesamte erzeugte Energie an Verbraucher mit höherer Priorität umleiten.

Was das Lernen aus einer fehlerhaften statischen Prognose für die Zukunft betrifft: Ich denke, das kann durch einen Snapshot gelöst werden, der morgens oder bei der Mitternachtsroutine erstellt wird und sich im Laufe des Tages nicht mehr ändert.

Das sind meine drei Cent zu dieser Diskussion.

1 „Gefällt mir“

Jup, So ungefähr hatte ich das gestern ja auch schon am Beispiel Elektroauto formuliert - unabhängig/ungeschmälert davon gemeint, dass Tom mit SFML/TFS natürlich bereits eine Meisterleistung vollbracht hat!

Hier sieht man aktuell auch sehr schön, wie unser BMW i3 laut evcc Prognose in ca. 50 Minuten gegen Ortszeit 10:45 Uhr Vollgeladen sein soll und wie sich der Solare PV-Überschuss Anteil unter dem evcc Optimizer darstellt - jetzt/aktuell nur kurzfristig nach Vorne geschaut und dadurch auch sehr gut passend zur Prognose. Bei einem halben Tag/eine Nacht zuvor „geplant“, wäre dann eine aktualisierende Prognose praxistauglicher um ggf. rechtzeitig bei größeren Abweichungen gegensteuern zu können…VG

1 „Gefällt mir“

Eine berechtigte Frage. Auf den ersten Blick klingt eine rollende Prognose tatsächlich so, als müsste sie automatisch besser sein, weil man um 12 Uhr für 13 Uhr natürlich meist mehr weiß als um 6 Uhr morgens.

Der entscheidende Punkt ist aber: Es kommt darauf an, was die Prognose leisten soll.

SFML trennt bewusst zwischen zwei Dingen:

  1. eine verlässliche Tagesprognose als feste Planungsgrundlage
  2. spätere reale Korrekturen und Einordnung im Tagesverlauf

Warum ist das wichtig?

Wenn eine Prognose permanent mit jeder neuen Information komplett umgeschrieben wird, dann hat man zwar oft kurzfristig bessere Werte für die nächste Stunde, aber man verliert auch etwas sehr Wertvolles:

  • einen stabilen Referenzpunkt
  • eine saubere Vergleichsbasis zwischen „das war morgens die Erwartung“ und „das ist am Ende wirklich passiert“
  • eine ehrliche Lernbasis für die AI

Genau das ist für SFML zentral.
Denn SFML will nicht nur „jetzt gerade möglichst nah dran sein“, sondern auch lernen:

  • War die Wetterbewertung am Morgen gut?
  • Wo lag die Abweichung wirklich?
  • War es Wetter, Schatten, Nebel, MPPT-Drosselung oder etwas anderes?
  • Welche Modellentscheidung war richtig, welche nicht?

Bei einer voll rollenden Prognose verschwimmt das alles schnell.
Dann verbessert sich die Anzeige im Tagesverlauf zwar optisch, aber das System kann schwerer sauber bewerten, wie gut die eigentliche Prognose wirklich war.

Anders gesagt:

  • Eine rollende Prognose ist oft besser für sehr kurzfristiges Nachführen.
  • Eine statische Prognose mit kontrollierten Korrekturen ist besser für Vergleichbarkeit, Lernen, Transparenz und Tagesplanung.

SFML ist deshalb bewusst kein „jede Minute neu erfundener Forecast“, sondern eher eine definierte Tagesprognose mit intelligenter Nachschärfung dort, wo es sinnvoll ist.

Der Vorteil davon ist:
Man bekommt nicht nur eine Zahl, sondern auch eine belastbare Aussage darüber, wie gut das System wirklich arbeitet und warum es sich verbessert.

Wenn man sich die Genaugikeit anschaut ist es schon beeindruckend:

Das ist in den allermeisten Fällen genauer als rollende Prognosen.. :slight_smile:

3 „Gefällt mir“

Hi Tom,
aber all das unten:

  • einen stabilen Referenzpunkt

  • eine saubere Vergleichsbasis zwischen „das war morgens die Erwartung“ und „das ist am Ende wirklich passiert“

  • eine ehrliche Lernbasis für die KI

kann erreicht werden, indem man einen Forecast-Snapshot zu Lernzwecken gegenüber der realen Produktion erstellt. Zusätzlich kann ein Rolling Forecast eine bessere Genauigkeit für den kurzfristigen Horizont – also die nächsten Stunden – liefern.

Die Grundlage für:

  • War die Wetterbewertung am Morgen gut?

  • Wo lag die Abweichung wirklich?

  • War es Wetter, Schatten, Nebel, MPPT-Drosselung oder etwas anderes?

  • Welche Modellentscheidung war richtig, welche nicht?

bleibt gleich – nämlich die bestmögliche Vorhersage basierend auf der Wetterprognose, z. B. um 6:30 Uhr.

Das tut er schon um 12:30 wenn du die adaptive Prognose aktiviert hast.

Hallo @anon90989627

Ich ändere nicht die Funktion, nicht die Grundausrichtung! Wenn jemand eine rollende Prognose möchte, die sich alle x-Minuten verändert und nicht auf die eigene Anlage skaliert - Feel Free!
Das zu grundeliegende Konzept ALLER SFML-Prognosen inclusive TFS ist ein anderes. SFML gewinnt in den allermeisten Fällen selbst bei rollierdenden Prognose am Tages-Ende! - > Wenn es gnügend Zeit hatte die lokalen Bedingungen kennenzulernen.

Zum Thema Snapshot, SFML , TFS lernen vom Tag, lernen vom IST / vs Prognose leiten daraus die Prognose in der Zukunft ab. → viel mehr noch SFML / TFS entscheiden anhand der IST Daten für die Zukunft welche Prognosemodell auf Stunden und Gruppenebene auf der lokalen Anlage am besten Funktioinert und entscheiden das jeden Tag neu.
Es ist nicht EINE Prognose sondern das Intelligente blenden von 4 Prognosen (die alle unterschiedlich funktioineren) + dem Blenden von mehreren Wetterdiensten (Rohdaten) . Hinzu kommt das Stündliche Lernen was am Besten funktioinert hat, die eigene tatsächliche Anlagenleistung, die örtliche Situation, .. . Die schiere Anzahl von Variablen eleminiert einen Großteil der Wetterunsicherheit.. nach dem genügend gelernt wurde.

1 „Gefällt mir“

Ich habe es aktiviert, aber es funktioniert nicht wirklich gut. Bei größeren Abweichungen wird es ausgelöst und neu berechnet, aber bei kleineren eher nicht — obwohl die Produktion am Ende des Tages deutlich von der Prognose abweicht. Ein weiterer Punkt ist, dass 12:30 möglicherweise schon zu spät ist. Natürlich liegt die endgültige Entscheidung bei Tom, aber ich denke, man könnte nach der Morning Routine die Wetter-Eingangsdaten sowie die Prognose speichern, um sie in der Night Routine als Grundlage für das Training des Modells zu verwenden und gleichzeitig einen Rolling Forecast zu ermöglichen. Denn seien wir ehrlich — das größte Problem der Prognose sind ihre dynamischen Änderungen. Wenn den ganzen Tag Sonne vorhergesagt ist, kann man den Forecast praktisch „auf einem Blatt Papier“ berechnen als kWp * Sonnentrajektorie. Wenn den ganzen Tag starke Bewölkung herrscht, kann man ungefähr ~20% * kWp = kWh/Tag annehmen.

Was ist eine Deutliche Abweichung? Hast Du dir die Erklärung durchgelesen? Hatte die Anlage Zeit genug zum Lernen?

Das sind alles Parameter die wichtig sind!

Wenn das so für Dich besser funktioinert, dann mach es doch so? Du kannst doch eine eigene Integration schreiben, die es genauso macht: Sonne = 100% kWp und bei Bewölkung ziehst du pauschal 20% ab.. wenn das für dich funktioinert.. ist es doch gut!

Genau das wird auch gemacht.. aber eben OHNE rollende Prognose. und deutlich komplexer als du es hier beschreibst

So einfach ists eben leider auch nicht.

Es ist abhängig, was für Wolken. Und dann wie oft wechselt der bewölkungsgrad. Usw.

Das der 12:30 Lauf oft nicht funktioniert hat ja andere Gründe.

Hier mal ein Beispiel vom Bewölkungsgrad an meinem Standort, einmal von ML Weather (untere Kurve) und einmal von meinem lokalen Bewölkungssensor (obere Kurve), selbst da gibt es Unterschiede.

Das Problem ist: Bewölkung ist nicht gleich Bewölkung.. als erstes muss man sich davon “frei machen” es als Mensch zu interpretieren! Man muss es als Strahlungshemmende Schichten in der Luftsäule über den Panelen sehen und welche sich wie auswirken..

1 „Gefällt mir“

Please don’t be offended - that was not my intention - maybe translation add some “flavor” to this.

For SFML I had few days that was total incorrect and 12:30 correction was not triggered (despite it did in the past). Maybe the case was that it was not trained enough for specific condition, maybe the case was an issue with accuracy after one of the updates, or maybe weather data on which SMFL worked was outdated since the weather was constantly changing, and at last - I think TFS would help at the end.

In addition, for that time for a comparison purpose I had graph with few solar forecasts to compare and at the morning all forecast was showing more or less similar values, but after the weather was changing during the day - others adapted while SMFL stayed incorrect and even at 12:30 was not corrected.

Regarding cloud impact on the irradiation that is true, however I gave the most extreme examples
for 0 cloud it’s sun trajectory (geometry) vs your PV panels parameters, for the heaviest clouds in winter you basically have no production (for ~10kWp maybe you will collect 2kWh). The fight is for everything in the middle where “not all cloud cover is the same” and “how often the cloud cover changes”

Was Tom geschrieben hat, meinte ich.

Ich habe heute zum Beispiel durchgängig Bewölkung aber die Sonne bringt trotzdem 80% der Leistung. Heute morgen dachte ich auch, oh ganzen Tag bewölkung, da passen die 4,8kwh gar nicht.

Aber die Wolken sind so leicht, dass es passt.

Wenn bei mir Regenwolken da sind, ist es trotzdem Bewölkung aber dann habe ich nur 10% der Leistung.

1 „Gefällt mir“

Das streitet ja auch keiner ab das es so ist :wink:

1 „Gefällt mir“

Ja, leichte Bewölkung und ein hoher Sonnenstand (kürzerer Weg durch die Wolken) werden die Bestrahlung nicht wesentlich verringern.
Die ganztägige Produktion ist eine Sache, die zweite – anspruchsvollere – ist die Prognose der Produktion für jede Stunde (z. B. wenn man das Laden der Heimbatterie mit dem günstigsten dynamischen Stromverkaufspreisfenster kombinieren möchte), und für eine statische Produktion ist es meines Erachtens viel schwieriger.

Yes, light clouds and high sun angle (shorter path through clouds) will not drop irradiation that significantly.
All day production is one, the second - more demanding is to predict production for every hour (e.g. when you want to control home battery charging combined with the cheapest dynamic electricity sell price window) and for static it’s lot harder I believe.

1 „Gefällt mir“