INFO: Massive Änderungen um die Prognose-Güte und Stabilität zu verbessern

Das massive und große Verändern der Prognoeumstelleung auf Hybrid, hat doch einiges gbrochen, dass trotz ausführlicher Tests nicht im Vorfeld identifiziert werden konnte.

Hier die Änderungen im Detail:

  1. Bessere Absicherung der Istwerte
    Ich habe die Verarbeitung der echten Produktionswerte deutlich stabilisiert. Unplausible Sprünge, Zähler-Resets oder physikalisch unmögliche Stundenwerte werden jetzt früher erkannt und nicht mehr ungeprüft als Lernbasis verwendet. Hierzu zählen beonders von Home Assistant verursachte Zählersprünge oder Ausfall von Senoren. Ein Thema das schon öfter vorgekommen ist

  2. Schutz des AI-Trainings vor fehlerhaften Gruppendaten
    Wenn einzelne Panelgruppen unrealistische Werte liefern, können diese Daten das Modell nicht mehr so leicht vergiften. Das System prüft Gruppenwerte jetzt vor dem Training und fällt bei unsicheren Daten auf eine sichere Verteilung zurück. Das ist besonders wichtig, wenn Panelgruppen geändert wurden. Auch bei Neukonfigurationen oder hinzufügen / entfernen von Panels.

  3. Kein starrer AI-Mindestanteil mehr bei schlechter AI-Historie
    Bisher konnte die AI in bestimmten Situationen trotz schlechterer Trefferquote weiterhin mit einem festen Mindestanteil in die Prognose eingehen. Das wurde korrigiert. Wenn die gelernte Historie zeigt, dass die physikalische Berechnung in einem Wetter-/Zeitfenster besser ist, darf die AI jetzt deutlich stärker zurückgenommen werden.

  4. Neue wetterabhängige Prognose-Logik
    Ich habe die statische Morgenprognose stärker nach Wettersituationen getrennt. Regen, dichter bedeckter Himmel, diffuses Licht, gutes Wetter, wechselhafte Sonne-Wolken-Lagen und unsichere Randstunden werden jetzt differenzierter behandelt. Damit soll nicht mehr ein einziger Blend-Mechanismus für völlig unterschiedliche Wetterlagen zuständig sein, sondern je nach Wetterlage wird unterschiedlich gewichtet

  5. Robustere Basiswerte für Anlagen ohne lange Lernhistorie
    Das System bekommt jetzt bessere Grundregeln, bevor anlagenspezifisches Lernen stark eingreift. Lernen bleibt wichtig, aber es soll nicht zu früh mit wenigen Daten die Prognose dominieren. Die Basislogik ist dadurch sofort stabiler, auch bei neuen Installationen oder nach Konfigurationsänderungen. Diese Fix braucht ca. 1-3 Tage um zu wirken,

  6. Schlechtes Wetter wird konservativer behandelt
    Bei Regen, niedrigem Einstrahlungsniveau und diffusem Overcast wird der Forecast jetzt vorsichtiger geblendet. Insbesondere externe Hochprognosen werden in solchen Lagen stärker begrenzt, wenn die Wettersignale auf schwache reale Produktion hindeuten. Die Wirkung von TFS wurde erheblich gepusht

  7. Gutes Wetter bleibt bewusst geschützt
    Ich habe nicht einfach pauschal den AI-Anteil reduziert. Bei stabilem gutem Wetter darf die AI weiterhin sinnvoll beitragen, wenn genügend Samples vorhanden sind. Das war wichtig, damit Verbesserungen bei schlechtem Wetter nicht gleichzeitig gute Sonnentage verschlechtern.

  8. Besserer Umgang mit wechselhaftem Sonnen-/Wolkenwetter
    Bei trockenen Mischwetterlagen mit klaren Hinweisen auf Solar-Upside kann die Prognose jetzt wieder stärker angehoben werden. Das verhindert, dass die neue konservative Schlechtwetterlogik sonnige Auflockerungen unnötig kappt.

  9. Neues wetterabhängiges Lernen im EOD
    Das End-of-Day-Lernen sammelt jetzt zusätzlich Informationen pro Wettersituation, Tageszeit und Saison. Dadurch kann SFML künftig besser lernen, ob AI, Physik, TFS oder der Blend in genau dieser Wetterlage besser funktioniert haben. Dieser zusätzliche Lernschritt, ist von TFS Docker übernommen worden.

  10. Lernen greift kontrolliert ein
    Die neue wetterabhängige Lernlogik startet bewusst vorsichtig. Sie sammelt zuerst Daten und greift erst stärker in die Prognose ein, wenn genügend belastbare Beispiele vorhanden sind. Das soll verhindern, dass einzelne Ausreißertage die Prognose verschieben. Dieser Fix braucht 1-3 Tage um vollständig zu wirken.

  11. Panelgruppen-Konfigurationen werden historisch berücksichtigt
    Ein wichtiger struktureller Fix betrifft geänderte Anlagenkonfigurationen. Wenn Panelgruppen später geteilt, entfernt, umbenannt oder in der Leistung verändert werden, werden alte Gruppendaten nicht mehr blind so behandelt, als hätten sie zur heutigen Konfiguration gehört. Dieser Sanity-Check geht direkt auf das Skript von Basti für TFS HA zurück und findet nun auch Anwendung in SFML.

  12. Historische Panelgruppen werden versioniert
    Das System merkt sich nun Konfigurationsstände der Panelgruppen. Dadurch kann es unterscheiden, ob ein alter Wert zur heutigen Gruppe passt, skaliert werden kann oder für heutiges Gruppentraining ausgeschlossen werden muss. Dieser Fix ist inspiriert bei dem was ich den Screen-Shots von @dietmar1968 gesehen habe.

  13. Schutz von Gruppenlernen und Physik-Kalibrierung
    Auch EOD-Gruppenlernen, Methodenbewertung und physikalische Gruppenkalibrierung berücksichtigen diese neue Topologie-Logik. Alte Werte aus früheren Anlagenzuständen sollen damit nicht mehr aktuelle Gruppenprognosen verfälschen. @suedschwede das sollte bei Dir Wirkung zeigen!

  14. Re-Forecast-Aktualisierung verbessert
    Beim operativen Hybrid-Forecast wird nach erfolgreicher Neuberechnung jetzt gezielter signalisiert, dass neue Daten vorhanden sind. Dadurch können die Hybrid-/OPS-Sensoren zuverlässiger aktualisiert werden. @lemuba kannst Du das bitte im Auge behalten?

  15. Tests und Stichproben gegen echte Daten
    Ich habe die Änderungen nicht nur theoretisch eingebaut, sondern gegen vorhandene Live-Daten und mehrere Wettersituationen geprüft. Besonders betrachtet wurden schlechte Regen-/Overcast-Tage, wechselhafte Tage und Tage mit Unter- bzw. Überprognose. In diesem Kontext noch einmal vielen Dank für die Screen-Shoots am Tages-Ende. Ich habe es zwar schon öfter gesagt, aber das ist eine sehr wichtige Quelle für mich um Fehler zu entdecken. Danke @Kaysen899 für diesen Thread!

Kurz gesagt:
Dieses Update macht SFML nicht “magisch perfekt”, aber es behebt mehrere echte Ursachen für instabile Prognosen. Vor allem soll das System jetzt besser unterscheiden, ob ein Tag nach Regen, diffusem Licht, stabilem Sonnentag oder wechselhaftem Sonnen-Wolken-Mix aussieht. Wichtig ist, dass einige Fixes 1-3 vieleicht auch 4 Tage benötigen um ihre Kraft zu entfalten, da sie auf neuen Lern-Logiken basieren.

Mir war dabei wichtig, keine Sonderregeln einzubauen. Die Änderungen sind bewusst allgemein gehalten, damit sie für unterschiedliche Anlagen, Panelgruppen und Wetterlagen funktionieren.
Die nächsten Tage sind für die Bewertung besonders wichtig, weil SFML jetzt neue EOD-Lerndaten sammelt. Ich werde weiter beobachten, wie sich die Prognose bei Regen, Mischwetter und gutem Wetter verhält, und die Logik anhand echter Istwerte weiter stabilisieren.

Sobald ich genügend Daten habe veröffentliche ich das Update.. geplant ist Mittwoch. - Alternativ könnte ich es auch eher veröffentlichen.. wenn es für euch okay ist es live zu testen!

Bitte Herz für " ja her damit" oder smilie " nein warten wir lieber erstmal ab"

Zara

PS: Ich habe es zwar schon mehrfach gesagt, aber @Burkard danke für deine Details!

30 „Gefällt mir“

ist raus… viel Spaß beim Testen! → die Community hat entschieden :slight_smile:

Bitte beachten:

  • Code wird wie immer erst nach EOD aktiv
  • Einige Bug-Fixes brauchen 1-4 Tage bis sie greifen, da es sich um neue Lern-Parameter handelt
  • EOD kann unter Umständen nach dem Update beim ersten Lauf länger dauern, da neue Tabellen angelegt werden
  • Bei langsameren Systemen kann nach dem Re-Start ein Fehler geworfen werden, da neue Tabellen angelegt werden.. ist dann aber erledigt
  • Code wurde gegen das aktuelle HA-Update getestet
5 „Gefällt mir“

INFO:

Ich habe eine E-Mail mit einer Frage erhalten, die sicherlich für alle von Interesse ist:

„Du schreibst, dass die Gruppen nun eine neue Topologie-Logik haben. Was bedeutet das konkret und wie sehe ich, dass es funktioniert?“

Das Problem

Bisher war es möglich, dass durch Änderungen an der Gruppenzusammensetzung falsche Werte übernommen wurden.

Beispiel: Eine Gruppe bestehend aus drei Modulen mit einer Gesamtleistung von 1200 W wurde in drei einzelne Gruppen à 400 W aufgelöst, ohne dass sich die Ausrichtung der Module geändert hat.

  • Alt: Die „neuen“ Gruppen à 400 W wurden angelegt und eingelernt. Es gab jedoch keinen echten Filter, der erkannt hat, dass die Leistung der ursprünglichen Gruppe 1 (vorher 1200 W) nun nur noch 400 W beträgt.

Grundsätzlich ist das kein Problem für die Tagesbilanz, da die Gesamtsumme aller Gruppen am Ende des Tages wieder stimmt.
Aber: Bei schlechtem Wetter kam die KI ins Straucheln, da noch nicht für alle Wettersituationen die Information vorlag: „Achtung, Gruppe 1 hat nicht mehr 1200 W, sondern nur noch 400 W.“ Das führte zu fehlerhaften Stundenberechnungen und Abweichugen.

Die Lösung

Es wird nun immer nur auf Basis der tatsächlich am Tag des EOD (End of Day) gelernten Gruppen gearbeitet. Aus der Historie werden nur noch die astronomischen Daten sowie weitere leistungsunkritische Parameter übernommen.

Die Auswirkungen

Die ersten Prognosen können zunächst leicht abweichen, da neue Lernimpulse verarbeitet werden. Um diesen Prozess zu beschleunigen, habe ich einen Safeguard eingebaut: Bei gleichbleibender Ausrichtung wird der alte Gruppenwert (1200 W) als Referenz genommen und ein Koeffizient auf die neue Gruppenleistung gebildet. So wird verhindert, dass die Abweichung zu groß wird.

Woran erkennst du es?

Typisch sind Abweichungen zwischen „Prognose vs. Ist“ bei den ehemaligen Gruppen während Schlechtwetterphasen. Dies reguliert sich jedoch nach ein bis vier Schlechtwettertagen von selbst, da für schlechtes Wetter eine andere Logik greift als für sonniges Wetter.

Beispiel 40% und mehr Abweichung bei einer jetzt geteilten Gruppe:


HINWEIS: Dies gilt analog für Fälle, in denen falsche Sensorwerte verwendet wurden (z. B. Gesamtsumme statt einer Teilmenge), Einheiten vertauscht wurden oder sich der Zähler nicht korrekt zurückgesetzt hat.

WENN IHR NOCH WEITERE FRAGEN ZU DEN NEUEN LOGIKEN HABT BITTE HIER.. DANN HABEN WIR ES IN EINEM THREAD ZUSAMMEN!

2 „Gefällt mir“

Ich habe so die Übersicht verloren, dass mir keine Frage mehr einfällt. :thinking:

3 „Gefällt mir“

Frag mich mal :slight_smile: :slight_smile:

2 „Gefällt mir“

Ich möchte mich zunächst einmal für die vielen und wertvollen Rückmeldungen bedanken! Hier eine kurze Erklärung zu den “neuen” LOG-Meldungen:

Meldung im Log von Solar Forecast ML, die sinngemäß darauf hinweist, dass Panelgruppen-Werte für das Lernen verworfen wurden:

  1. Diese Meldung bedeutet nicht, dass Solar Forecast ML abgestürzt ist oder das Training komplett fehlgeschlagen ist.

  2. Solar Forecast ML prüft beim nächtlichen Lernen automatisch, ob ältere Messwerte für einzelne Panelgruppen sauber zu den Gesamtwerten passen. Wenn diese Werte für einzelne Stunden nicht stimmig genug sind (einzelne fehlerhafte Sensorwerte, Umabau, Abstürze,..) , werden sie vorsorglich nicht direkt für das Gruppenlernen verwendet. Stattdessen nutzt das System für diese betroffenen Stunden eine sichere Ersatzlogik und das Training läuft weiter.

Warum erscheint die Meldung?

  1. Die Meldung bezieht sich auf historische Daten innerhalb des Lernfensters und nicht zwingend auf den aktuellen Tag. Sie kann also auch dann auftauchen, wenn die aktuellen Forecasts weiterhin normal und plausibel sind, aktuell keine Fehler bestehen. Es reicht ein “defekter Tag im Lernfenster um es zu triggern”

  2. In den meisten Fällen ist diese Meldung kein akuter Fehler und kein Grund zur Sorge. Sie ist ein Schutzmechanismus, damit einzelne unklare oder unpassende historische Gruppenwerte das Lernen nicht verfälschen.

Relevant wird das Thema erst dann, wenn

  • die Meldung über längere Zeit sehr häufig auftritt und
  • gleichzeitig die Qualität der Forecasts sichtbar schlechter wird.

Ich werde im kommenden Update, die Rückmeldungen im Log klarer und verständlicher zu machen, damit besser erkennbar ist, ob es sich nur um einzelne historische Stunden oder um ein größeres dauerhaftes Thema handelt.

2 „Gefällt mir“

Habe komplett den Überblick verloren. Wo findet man die Logs :see_no_evil_monkey:

Im Ordner config /solar_forecast_ml /logs

Gruß

1 „Gefällt mir“