76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

BlackHawk133

#2115
Hallo liebe Gemeinde, ich habe mein SolarForecast jetzt mal in mein ftui2 intgeriert und leider nur einen Teilerforlg erzielt.
Mir wäre das Layout und die Darstellung des data-type="forecast" am liebsten. Packe ich dann aber die Kommandos genau wie in der WIKI page angegeben auf meine Seite bekomme ich eine Darstellung GIGANTISCH gross (ca. 10 mal so gross wie mein gesamtes tablet").

         <li data-row="4" data-col="3" data-sizex="30" data-sizey="21">
            <div class="cell" style="font-size:80%;">
               <div data-type="forecast" data-device="PVForecast" data-get="state" data-html="both"</div>
            </div>
         </li>
Setze ich dann allerdings data-type="smaportalspg" ein, so ist alles vollkommen normal. Allerdings ist diese Darstellung nicht die welche ich gerne hätte.....

         <li data-row="4" data-col="3" data-sizex="30" data-sizey="21">
            <div class="cell" style="font-size:80%;">
               <div data-type="smaportalspg" data-device="PVForecast" data-get="state" data-html="both"</div>
            </div>
         </li>

Hat das jemand anders auch schon mal gehabt?

BlackHawk133

Ich muss leider gleich noch eine Frage an den Entwickler durchschiessen.

Meine Raspi Installation war jetzt ca. 7 Jahre alt und diverse APT Module waren so buggy, dass ich praktisch keine Pakete mehr nachinstallieren konnte. DaHer: Alles neu macht der März und ich habe ein komplett neues Raspi aufgesetzt. Puh, jetzt bin ich echt am kämpfen, alle losen Enden wieder zusammn zu bekommen. Eines ist Solar Forecast. Ich habe das fehm.cfg rübergeholt und die meiste devices sind auch da. Auch SolarForcast, ABER WIEDER KOMPLETT unkonfiguriert !!

Was muss ich mit rüberholen, um den alten Zustand zu bekommen?? (habe das FhemUtils schon auch rübergeholt, aber das hat nix geholfen)

DS_Starter

#2117
@BlackHawk133,

ZitatWas muss ich mit rüberholen, um den alten Zustand zu bekommen?? (habe das FhemUtils schon auch rübergeholt, aber das hat nix geholfen)

Die Wiederherstellung ist recht einfach. Es sind aber ein paar Schritte zu beachten die ich im Wiki beschrieben habe.


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 Jens,

ZitatDer KI-Status ist bei mir aber - wie im Screen von 300P auch zu sehen - immer gelb. Hinweis: "KI-Unterstützung arbeitet einwandfrei, liefert jedoch keinen Wert für die aktuelle Stunde. Letztes KI-Training 02.03.2025 02:16.

Ist das normal? Oder hat das Modul noch zu wenige Werte, weil noch nicht lange genug am Start? Oder muss ich noch etwas einstellen?

Ja, das ist normal wenn noch nicht genug Traingsdaten vorhanden sind. Man kann sich einen kleinen Eindruck der vorhandenen Daten mit "get ... valDecTree ..." verschaffen.

Ich werden nachher noch eine Version zum Testen bereitstellen bei der ich die KI mit einem Ensemble-Algorithmus angereichert habe. Es werden mehrere Entscheidungsbäume auf unterschiedliche Stichproben der Trainingsdaten trainiert und die Vorhersagen gemittelt (Bootstrap Aggregating = Bagging). Das verbessert die Genauigkeit und Robustheit der Vorhersagen, benötigt aber Speicher und CPU-Ressourcen. Ich habe erstmal mit einem Ensemble von 10 Stichproben begonnen und dann schauen wir mal wie sich das darstellt.
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

An den Trainingsdaten liegt das n.m.M evtl. nicht allein - ich habe ja fast ein Jahr an KI-Daten im Speicher
Gruß
300P

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

DS_Starter

#2120
In meinem contrib liegt die V 1.47.0 zum Testen.

@300P, die Dezimalstellen bei der Diff-Darstellung habe ich überarbeitet.

Die Menge Trainingsdaten sind schon entscheidend für die Trefferquote. Aber natürlich nicht allein. In der neuen V werden mehrere Entscheidungsbäume auf unterschiedliche Stichproben der Trainingsdaten trainiert und die Vorhersagen gemittelt (Bootstrap Aggregating = Bagging). Das verbessert die Genauigkeit und Robustheit der Vorhersagen der KI, benötigt aber Speicher und CPU-Ressourcen. Ich habe erstmal mit einem Ensemble von 10 Stichproben begonnen und dann schauen wir mal wie sich das darstellt.
Vielleicht bietet sich zukünftig ein Attribut an, damit der User das Ensemble auf die Leistungsfähigkeit seiner Hardware abstimmen kann.

Jedenfalls bekomme ich nun bei mir deutlich mehr Treffer (get ... forecastQualities):
Start: 2025-03-03 07:00:00, Quality: 0.57, Factor: 1.18, AI usage: 0, PV expect: 548 Wh, Sun Alt: -3, Cloud: 0
Start: 2025-03-03 08:00:00, Quality: 0.79, Factor: 1.26, AI usage: 1, PV expect: 1540 Wh, Sun Alt: 6, Cloud: 0
Start: 2025-03-03 09:00:00, Quality: 0.79, Factor: 1.26, AI usage: 1, PV expect: 2158 Wh, Sun Alt: 13, Cloud: 0
Start: 2025-03-03 10:00:00, Quality: 0.91, Factor: 1.10, AI usage: 1, PV expect: 4260 Wh, Sun Alt: 18, Cloud: 0
Start: 2025-03-03 11:00:00, Quality: 0.82, Factor: 1.22, AI usage: 1, PV expect: 5300 Wh, Sun Alt: 21, Cloud: 0
Start: 2025-03-03 12:00:00, Quality: -, Factor: 1.09, AI usage: 0, PV expect: 6767 Wh, Sun Alt: 22, Cloud: 0
Start: 2025-03-03 13:00:00, Quality: 0.85, Factor: 1.18, AI usage: 1, PV expect: 5375 Wh, Sun Alt: 21, Cloud: 0
Start: 2025-03-03 14:00:00, Quality: 0.87, Factor: 0.89, AI usage: 0, PV expect: 4512 Wh, Sun Alt: 17, Cloud: 15
Start: 2025-03-03 15:00:00, Quality: 0.82, Factor: 1.21, AI usage: 1, PV expect: 2288 Wh, Sun Alt: 12, Cloud: 0
Start: 2025-03-03 16:00:00, Quality: 0.74, Factor: 1.35, AI usage: 0, PV expect: 2556 Wh, Sun Alt: 4, Cloud: 0
Start: 2025-03-03 17:00:00, Quality: -, Factor: 0.93, AI usage: 0, PV expect: 295 Wh, Sun Alt: -4, Cloud: 18

AI usage: 1 bedeutet Treffer duch die KI

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

Bei mir ist es sehr selten das ich mal ein "grün" sehe - liege aber auch nicht den ganzen Tag vor dem Bildschirm  ;D
Woran es bei mir liegt das die Quote meist niedrig liegt --- habe ich noch überhaupt keinen Ansatz und auch keinen blassen Schimmer.
Vielleicht liegt es einfach an der Übergangszeit mit all den Unwägbarkeiten in dieser Zeit

Bei knallender Sonne + ohne Wolken ( wie heute) liege ich bei mir sehr oft bei Factor >1.4 daneben.
Ich habe aber auch 3 Wechselrichter, 6 Strings  :-[ und das in 3 Richtungen  O:-)

Start: 2025-03-03 07:00:00, Quality: -, Factor: 1.00, AI usage: 1, PV expect: 13 Wh, Sun Alt: -6, Cloud: 23
Start: 2025-03-03 08:00:00, Quality: 0.86, Factor: 0.94, AI usage: 1, PV expect: 161 Wh, Sun Alt: 3, Cloud: 22
Start: 2025-03-03 09:00:00, Quality: 0.87, Factor: 0.94, AI usage: 1, PV expect: 447 Wh, Sun Alt: 11, Cloud: 23
Start: 2025-03-03 10:00:00, Quality: -, Factor: 1.40, AI usage: 0, PV expect: 1581 Wh, Sun Alt: 16, Cloud: 23
Start: 2025-03-03 11:00:00, Quality: -, Factor: 1.47, AI usage: 0, PV expect: 2420 Wh, Sun Alt: 20, Cloud: 24
Start: 2025-03-03 12:00:00, Quality: -, Factor: 1.75, AI usage: 1, PV expect: 2352 Wh, Sun Alt: 22, Cloud: 23
Start: 2025-03-03 13:00:00, Quality: -, Factor: 1.63, AI usage: 0, PV expect: 3672 Wh, Sun Alt: 22, Cloud: 21
Start: 2025-03-03 14:00:00, Quality: -, Factor: 1.40, AI usage: 0, PV expect: 3004 Wh, Sun Alt: 18, Cloud: 20
Start: 2025-03-03 15:00:00, Quality: -, Factor: 1.75, AI usage: 0, PV expect: 2252 Wh, Sun Alt: 14, Cloud: 21
Start: 2025-03-03 16:00:00, Quality: -, Factor: 1.75, AI usage: 0, PV expect: 542 Wh, Sun Alt: 7, Cloud: 22
Gruß
300P

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

DS_Starter

#2122
Es gibt zwei Ebenen ... die Vorhersage durch die gewählte API und die Unterstützung durch die KI (wenn eingeschaltet)

Die API Vorhersage und deren Bewertung/Korrektur ist abhängig ob und wie oft identische Wetterlagen registriert wurden. Ein Indiz dafür sind die Readings:

setstate openMeteo 2025-03-02 08:00:05 pvCorrectionFactor_08 1.75 (automatic - old factor: 1.00, AI result used, Sun Alt range: 5, Cloud range: 85, Days in range: 1)
setstate openMeteo 2025-03-02 09:00:04 pvCorrectionFactor_09 1.17 (automatic - old factor: 1.00, Sun Alt range: 15, Cloud range: 45, Days in range: 1)
setstate openMeteo 2025-03-02 10:00:05 pvCorrectionFactor_10 0.96 (automatic - old factor: 0.91, Sun Alt range: 20, Cloud range: 40, Days in range: 2)
setstate openMeteo 2025-03-02 11:00:04 pvCorrectionFactor_11 1.28 (automatic - old factor: 1.00, AI result used, Sun Alt range: 25, Cloud range: 50, Days in range: 1)
setstate openMeteo 2025-03-02 12:00:03 pvCorrectionFactor_12 1.07 (automatic - old factor: 1.10, AI result used, Sun Alt range: 30, Cloud range: 60, Days in range: 2)
setstate openMeteo 2025-03-02 13:00:04 pvCorrectionFactor_13 1.09 (automatic - old factor: 1.00, AI result used, Sun Alt range: 30, Cloud range: 25, Days in range: 1)
setstate openMeteo 2025-03-02 14:00:04 pvCorrectionFactor_14 0.89 (automatic - old factor: 1.00, AI result used, Sun Alt range: 30, Cloud range: 15, Days in range: 1)
setstate openMeteo 2025-03-02 15:00:04 pvCorrectionFactor_15 0.99 (automatic - old factor: 1.00, AI result used, Sun Alt range: 25, Cloud range: 20, Days in range: 1)
setstate openMeteo 2025-03-02 16:00:04 pvCorrectionFactor_16 1.06 (automatic - old factor: 1.07, Sun Alt range: 20, Cloud range: 10, Days in range: 2)
setstate openMeteo 2025-03-02 17:00:04 pvCorrectionFactor_17 1.23 (automatic - old factor: 1.00, AI result used, Sun Alt range: 10, Cloud range: 20, Days in range: 1)
setstate openMeteo 2025-03-02 18:00:04 pvCorrectionFactor_18 0.93 (automatic - old factor: 0.85, AI result used, Sun Alt range: 5, Cloud range: 25, Days in range: 2)

Ist der Wert von "Days in range" sehr klein, wurde die Wetterlage selten bzw. noch nicht (bei 1) registriert. Der Hinweis "old factor: 1.00" besagt, dass noch keine Bewertung vorlag und deswegen kein Korrekturfaktor angewendet wurde.

Überlagert wirde die Prognose durch die KI wenn "AI result used" angegeben ist. Dann wurde nicht das API-Ergebnis, sondern das KI-Ergebnis verwendet.

Ein "get ... valDecTree aiRuleStrings" (hier in der neuen Version) zeigt die Anzahl der Regeln und Knoten. Ein wesentliches Merkmal welches von der Anzahl der Trainingsdaten abhängig ist. In der neuen Version werden wie gesagt ein Ensemble von 10 Trees verwendet:

Trained AI Object contains an Ensemble of 10 trees (only the first Tree is printed out)
Tree: 1 / Number of Rules: 3266 / Number of Nodes: 4378 / Depth: 5
Tree: 2 / Number of Rules: 3269 / Number of Nodes: 4385 / Depth: 5
Tree: 3 / Number of Rules: 3272 / Number of Nodes: 4375 / Depth: 5
Tree: 4 / Number of Rules: 3268 / Number of Nodes: 4377 / Depth: 5
Tree: 5 / Number of Rules: 3280 / Number of Nodes: 4402 / Depth: 5
Tree: 6 / Number of Rules: 3270 / Number of Nodes: 4400 / Depth: 5
Tree: 7 / Number of Rules: 3276 / Number of Nodes: 4391 / Depth: 5
Tree: 8 / Number of Rules: 3261 / Number of Nodes: 4368 / Depth: 5
Tree: 9 / Number of Rules: 3274 / Number of Nodes: 4381 / Depth: 5
Tree: 10 / Number of Rules: 3265 / Number of Nodes: 4376 / Depth: 5
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

Zitat von: DS_Starter am 02 März 2025, 20:18:19In meinem contrib liegt die V 1.47.0 zum Testen.

@300P, die Dezimalstellen bei der Diff-Darstellung habe ich überarbeitet.


Hallo Heiko,
schon mal Danke dafür  ;D

Zwischenstand:
Aktuell ist ein Differenz-Wert bei den Batteriewerten "Battery_NextHour14_SoCforecast_02 bzw. ..02" für Morgen 14 Uhr mit "+2.90000000000001" nach dem Download und Restart nach einigen Minuten in der Grafik berechnet worden. Das betrifft wie bislang von mir dargestellt nur die Grafik - "richtige" Readings sind alle mit jeweils 1 Kommastelle vorhanden.

Gruß
300P




Gruß
300P

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

DS_Starter

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 meine Werte:

setstate Forecast 2025-03-02 09:00:05 pvCorrectionFactor_09 1.75 (automatic - old factor: 1.00, Sun Alt range: 10, Cloud range: 55, Days in range: 1)
setstate Forecast 2025-03-02 10:00:03 pvCorrectionFactor_10 1.75 (automatic - old factor: 1.00, Sun Alt range: 20, Cloud range: 50, Days in range: 1)
setstate Forecast 2025-03-02 11:00:03 pvCorrectionFactor_11 1.40 (automatic - old factor: 0.80, Sun Alt range: 25, Cloud range: 45, Days in range: 2)
setstate Forecast 2025-03-02 12:00:04 pvCorrectionFactor_12 1.47 (automatic - old factor: 1.00, Sun Alt range: 30, Cloud range: 40, Days in range: 2)
setstate Forecast 2025-03-02 13:00:00 pvCorrectionFactor_13 1.75 (automatic - old factor: 1.00, Sun Alt range: 30, Cloud range: 35, Days in range: 1)
setstate Forecast 2025-03-02 14:00:07 pvCorrectionFactor_14 1.63 (automatic - old factor: 1.00, Sun Alt range: 30, Cloud range: 35, Days in range: 1)
setstate Forecast 2025-03-02 15:00:03 pvCorrectionFactor_15 1.40 (automatic - old factor: 1.67, AI result used, Sun Alt range: 25, Cloud range: 30, Days in range: 2)
setstate Forecast 2025-03-02 16:00:05 pvCorrectionFactor_16 1.75 (automatic - old factor: 1.00, Sun Alt range: 20, Cloud range: 30, Days in range: 1)
setstate Forecast 2025-03-02 17:00:05 pvCorrectionFactor_17 1.75 (automatic - old factor: 1.00, AI result used, Sun Alt range: 15, Cloud range: 30, Days in range: 1)
setstate Forecast 2025-03-02 21:07:26 pvCorrectionFactor_Auto on_complex_ai
se

Aber hier hakt es wohl - evtl. durch download und Neustart ?
Hab letzte Woche zuletzt dort nachgesehen und dort auch Daten gehabt
AI trained object is missed or not an ARRAY

EDIT
hier noch der Screenshot mit den Kommastellen:



Gruß
300P

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

DS_Starter

ZitatAber hier hakt es wohl - evtl. durch download und Neustart ?
Einfach mal "set ... aiDecTree  addInstances" und danach "set ... aiDecTree train". Das greift der nächsten automatischen Erstellung vor.

Bei dir gibt es halt viele "Days in range: 1". That's live.  ;)

Die Nachkommastellen sind mir ein Rätsel. Hast du graphicEnergyUnit = kWh eingestellt?
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

Ergebnis:

Trained AI Object contains an Ensemble of 10 trees (only the first Tree is printed out)
Tree: 1 / Number of Rules: 2870 / Number of Nodes: 3852 / Depth: 5
Tree: 2 / Number of Rules: 2854 / Number of Nodes: 3854 / Depth: 5
Tree: 3 / Number of Rules: 2857 / Number of Nodes: 3850 / Depth: 5
Tree: 4 / Number of Rules: 2864 / Number of Nodes: 3846 / Depth: 5
Tree: 5 / Number of Rules: 2858 / Number of Nodes: 3834 / Depth: 5
Tree: 6 / Number of Rules: 2846 / Number of Nodes: 3833 / Depth: 5
Tree: 7 / Number of Rules: 2863 / Number of Nodes: 3851 / Depth: 5
Tree: 8 / Number of Rules: 2856 / Number of Nodes: 3847 / Depth: 5
Tree: 9 / Number of Rules: 2845 / Number of Nodes: 3829 / Depth: 5
Tree: 10 / Number of Rules: 2862 / Number of Nodes: 3826 / Depth: 5


Rules: Liste von Zeichenfolgen, die den Baum in Form von Regeln beschreiben
Nodes: Anzahl der Knoten im trainierten Entscheidungsbaum
Depth: Maximale Anzahl von Entscheidungen, die für eine Klassifizierung getroffen werden müssen

letztes KI-Training: 02.03.2025 21:26:56 / Laufzeit in Sekunden: 7.9520
Gruß
300P

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

300P

Fast vergessen:

Unit ist Standart bzw. nicht gesetzt = Wh
Gruß
300P

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

DS_Starter

Welche Werte werden in den beiden Beams dargestellt, beides batsocforecast?
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