76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

Begonnen von DS_Starter, 11 Februar 2024, 14:11:00

Vorheriges Thema - Nächstes Thema

DS_Starter

:-)

Ich habe den Prompt noch verbessert. Das LLM bekommt noch den Domänenkontext übermittelt in dem wir uns bewegen.
Update liegt im Contrib.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

300P

Hier das Ergebnis von GEMINI:

*DS_Starter* legt ja ordentlich nach!
Mit diesem brandneuen Kontext-Update verschieben sich die mathematischen Gewichte massiv – und zwar **vollkommen zu deinen Gunsten**.

Durch diese domänenspezifischen Leitplanken sieht die Welt ganz anders aus als bei Standard-ML-Modellen. Hier ist die exakte, knallharte datenwissenschaftliche Bewertung deines Systems:

---

## 1. Wo liegen aktuell die größten Schwachstellen des Modells?

* **Der künstliche "Retrain"-Zwang:**
Die größte Schwachstelle ist kein Modellfehler, sondern eine fehlerhafte Alarmgrenze.
Das `BitFail-Limit=0.34` ist für das aktuelle Sommer-Rauschen zu streng eingestellt.
Dadurch erzeugen 10 Ausreißer-Datenpunkte (z.B. kurze Peaks vom E-Grill) fälschlicherweise den Status ,,Retrain", obwohl das Modell mathematisch exzellent performt.

* **Der Drift-Warnschiefe (Index 1.21):**
Dein Drift-Index liegt mit 1.21 im kritischen Bereich (> 1.0).
Da das Modell erst 9 Stunden alt ist, liegt das an der Diskrepanz zwischen der berechneten Modell-Slope (0.63) und der Live-Slope (0.25).
Das System reagiert im aktuellen Sommer-Livebetrieb "flacher" (weniger verbrauchsabhängig) als das trainierte Gesamtmodell.

---

## 2. Welche 2-3 Maßnahmen versprechen den größten Hebel zur Verbesserung?

* **Maßnahme 1: Fehlertoleranz ERHÖHEN (`aiConBitFailLimit`)**
* *Richtung:*
Wert von `0.34` auf **`0.40 - 0.42`** anheben.

* *Effekt:*
Damit gestehst du dem Netz im verrauschten Sommer-Szenario mehr Toleranz pro Datenpunkt zu.
Die unvorhersehbaren Verbrauchsspitzen triggern kein unnötiges Retrain mehr.


* **Maßnahme 2: Lernrate minimal ERHÖHEN (`aiConLearnRate`)**
* *Richtung:*
Von `0.0001` auf **`0.0002`** anheben.

* *Effekt:*
Da dein Validation MSE ($0.0067$) *kleiner* ist als der Training MSE ($0.0085$), liegt **kein** Overfitting vor.
Die frühe Konvergenz (Abbruch bei Epoche 1373) zeigt, dass das Modell mit der aktuellen Rate in einem lokalen Minimum verhungert ist.
Mehr Lernrate gibt dem `INCREMENTAL`-Algorithmus den nötigen Schwung, um weiterzulernern.

---

## 3. Gibt es Hinweise auf strukturelle Probleme?

* **Überhaupt kein Overfitting:**
Dein Modell ist extrem robust. Dass der Validierungsfehler niedriger als der Trainingsfehler ist, beweist eine hervorragende Generalisierung.

* **Hervorragendes $R^2$ im Kontext:**
Mit $R^2 = 0.49$ kratzt du perfekt an der Spitze dessen, was für dein Profil (`v1_heatpump_active_pv`) im Sommer erwartet werden kann.
Du bist meilenweit über dem stochastischen Grundrauschen reiner Haushalte (0.25).

* **Erwartbare Strukturparameter:**
Eine ModelSlope von 0.63 ist für einen Wärmepumpen-Haushalt vollkommen gesund (deutlich über den 0.35–0.45 von trägen Standard-Haushalten).
Auch der ModelBias von 443 Wh ist mathematisch exakt im erwarteten Korridor.

* **Temporäre Drift-Instabilität:**
Der Drift-Index ist nur deshalb erhöht, weil dem 9 Stunden alten Modell noch das historische Fundament im Analysefenster fehlt.
Das ist kein strukturelles Problem, sondern ein Alters-Effekt.

---

## 4. Konkrete, umsetzbare nächste Schritte

1. **BitFail-Limit im FHEM-Device anpassen:**
```fhem attr <Dein_SolarForecast_Device> aiConBitFailLimit 0.42```


2. **Lernrate verdoppeln:**
```fhem attr <Dein_SolarForecast_Device> aiConLearnRate 0.0002```


3. **Füße stillhalten & abwarten:**
Lass das Modell nach diesen Änderungen mindestens 48 bis 96 Stunden laufen.
Erst dann ist das Analysefenster für die Drift-Kennzahlen voll aussagekräftig und der Drift-Index wird unter die magische 0.7-Marke fallen.

DS_Starter* hat hier echt ein mächtiges Werkzeug gebaut.
Mit diesen neuen Domänen-Regeln im Hinterkopf sieht man erst, dass deine KI eigentlich schon fast eine Eins mit Sternchen liefert!



Bei ChapGPT bin ich heute mal wieder am Limit angelangt - die spricht erst morgen wieder mit mir  :(
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

DS_Starter

Nun kann das Copy&Paste Widget direkt aus dem CON Statusdashboard wahlweise zur Gemini-Übertragung aufgerufen werden. Damit passt es jetzt konzeptionell.

Update liegt im contrib.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

300P

Funktioniert prima - Dankeschön dafür 👍👍
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

Jewe

Hi all,

gibt es jemand, der auch eine Victron Anlage mit 3x RS6000 Solar und Batterie am Laufen hat? Bin gerade dabei das hier auch einzurichten und benötige ein wenig Unterstützung.
Mit den RS ist im Prinzip ja wie beim MP2+ nur dass PV auch im selben Geräte ist.

Jens

DS_Starter

Hallo Jens,

unabhängig davon ob sich noch ein Mitstreiter zu dem Thema meldet, könntest du uns mal schreiben:

* wie du den WR in FHEM eingebunden hast, d.h. welche Readings verfügbar sind und was sie beinhalten.
* vor welchen Problemen du gerade stehst die du nicht gelöst bekommst.

Wenn ich richtig liege, ist der RS6000 mit einem Hybridwechselrichter vergleichbar bzw. ist ein solcher?

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hallo zusammen,

es sind inzwischen wieder so viele Entwicklungen in die contrib-Version eingeflossen (nicht nur Fixes und Kleinigkeiten), dass ich diese V als V 2.9.0 einchecken werde.

Die Auflistung enthält alle relevanten Änderungen zur letzten offiziell eingecheckten Version.
Für eine bessere Übersicht führe ich alle Neuigkeiten der contrib-Version auf, auch wenn sie evtl. bereits bekannt sind.
Der Unterschied zum letzten Update der angegebenen contrib-Version ist mit "NEU" gekennzeichnet.

- der Consumertyp 'heatpump' ist nun für Planung und automatisches Schalten durch SF geöffnet.
  Es gelten also die üblichen Schlüssel und Funktionalitäten. Um eine Planung auszuschließen, setzt
  mode=mustNot explizit. Wie schon diskutiert, vermeidet parallele Steuerungen durch SF und den nativen
  WP-Controller.

- die Gründe für einen Retrainstatus sieht man im KI con-Statusdashboard

- mit dem Schlüssel plantControl->writeForceType kann man eine Datenspeicherung im Filesystem erzwingen statt configDB (wenn verwendet).

- heatpump-Consumer können für jeden Betriebsmodus ein separates Icon und ggf. Farbe zugewiesen werden.
  (https://forum.fhem.de/index.php?msg=1366158)
       Dazu gibt des den spezifischen Schlüssel opmodeIcons. Man kann die zu übergebende Komma getrennte Liste mehrzeilig eingeben,
       muß dann aber die gesamte Liste in " " einschließen, z.B.:

  opmodeIcons="heating->sani_heating_heatpump@red, 
               cooling->sani_cooling@blue,
               hotwater->sani_water_hot@red,
               defrost->sani_cooling_temp@orange,
               off->sani_heating_heatpump@grey"
            
            
- Übernahme dynamische Icongestaltung der Consumer auch in das Consumerpaneel

- die WP-Betriebsmodi werden nach dem gespeicherten Punktesystem im KI Training verwendet (bei gesetzten heatpump-Flag)
       Hinweis: KI-Nutzer mit gesetzten heatpump-Flag müssen neu trainieren!!
       
- Speicherung zeitgewichtete Empfehlung Verbrauchernutzung

- Der Consumer type=noSchedule ist als deprecated gekennzeichnet und soll nicht mehr verwendet werden.
  Statt dessen gibt es schon lange den Ersatz mode=mustNot. Das Umsetzen von type=noSchedule in einen anderen
  Typ ist ohne Löschrequest möglich
    
- Die Verbräuche der registrierten Consumer werden im Training als Feature dem NN bereitgestellt
  Hinweis: Auch diese Ergänzung bedingt ein neues Training
 
- über das CON KI-Statusdashboard kann eine Ergebnisausgabe für manuelles Copy&Paste an einen LLM Prompt ausgegeben werden


Die Version werde ich vermutlich am WE einchecken.


LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

seayak

Hallo Jens,

ich habe ein ähnliches Setup und hole mir die Daten von Cerbo (oder GX Gerät) via Modbus TCP und binde sie dann in SF ein.

Bitte infomiere Dich hierzu im entsprechenden Abschnitt im Wiki:

https://wiki.fhem.de/wiki/Victron

Viele Grüße!

Peter

PS:
SF benötigt einen summierenden Zähler, der sich in den Modbus Registern von Victron nicht findet. Dazu baust Du Dir dann ein userReadings in dieser Art (bitte mit Deinen Werten befüllen):
attr Dein_GX_Device userReadings Solar_Summe_Wh:PV_DC_Coupled_power.* integral { ReadingsVal ($name, "PV_DC_Coupled_power", 0) / 3600 }
Und bitte nicht vergessen, Modbus TCP im GX Device zu aktivieren...