76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

peterboeckmann

Hallo Heiko,

Zitat von: DS_Starter am 03 Juli 2026, 12:52:22Man sieht es mit "get ... valConsumerMaster X":

das sieht dann für meine Klimaanage so aus:
epiecAVG => 1=456.08 2=443.25 3=397.02 4=492.41 5=528.00 6=562.05 7=486.66 8=553.70
Viele Grüße,
Peter
MQTT,Modbus,HTTPMod,DbLog,LaCrosse,SolarForecast,TelegramBot,Twilight,vitoconnect,withings
fhem,fhempy,debmatic
Debian
RaspberryPi5,HomeMatic,HomeMaticIP,Shelly,JeeLink,SignalDuino,ZWDongle,SONOS,alexa,Hue,tradfri,MobileAlerts,Siemens Home Connect,Roborock S50,Wallbox,Harmony,Tuya Smartlife

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

peterboeckmann

Zitat von: DS_Starter am 03 Juli 2026, 13:10:52Was ist der nominale Wert power?

Konfiguriert habe ich den consumer so:
MQTT2_KlimaODU type=heatpump power=1500 pcurr=params_switch_0_apower:W:15 etotal=params_switch_0_aenergy_total:Wh on=on off=off icon=frost auto=Automatik exconfc=1 swstate=state:on:off opmode=MQTT2_KlimaODU:opmode modulation=MQTT2_KlimaODU:modulation
Das Typenschild habe ich auch nochmal rangehängt.

Viele Grüße,
Peter
MQTT,Modbus,HTTPMod,DbLog,LaCrosse,SolarForecast,TelegramBot,Twilight,vitoconnect,withings
fhem,fhempy,debmatic
Debian
RaspberryPi5,HomeMatic,HomeMaticIP,Shelly,JeeLink,SignalDuino,ZWDongle,SONOS,alexa,Hue,tradfri,MobileAlerts,Siemens Home Connect,Roborock S50,Wallbox,Harmony,Tuya Smartlife

DS_Starter

#6573
Danke für das Typenschild, kannte ich noch nicht.

Dann wäre der Ausgangspunkt Rated Power:

(LLM gefragt):

🔌 3. Rated Current & Rated Power Input (IEC/EN60335)
Das ist der Teil, den du wissen wolltest — und der ist wichtig.

Rated Current (IEC/EN60335): 10.5 A
→ Das ist der Bemessungsstrom, der nach Norm für Sicherheitsprüfungen angesetzt wird.
Er entspricht dem maximalen Strom, der im normalen Betrieb auftreten kann.

Rated Power Input (IEC/EN60335): 2050 W
→ Das ist die Nennleistungsaufnahme nach EN60335, also der Wert, der für:

Temperaturtests

elektrische Belastungsprüfungen

Kabeldimensionierung

Schutzmaßnahmen

verwendet wird.

Wichtig: 
Dieser Wert ist nicht die typische Leistungsaufnahme im Alltag, sondern der maximale Leistungswert, der nach Norm als ,,Rated Power" gilt.

Du siehst das auch an den Klammerwerten:

Power Input Cooling: 1545 W (280–2050)

Power Input Heating: 1333 W (280–2050)

→ Die Maschine kann bis 2050 W ziehen, daher wird dieser Wert als Rated Power Input festgelegt.



Ausgehend von 2050 W und der aufgezeichneten Range 400 - 560 Wh wäre ein Faktor von 0.25 bezogen auf die Nominalleistung ein realistischer Startwert (für mich im Modulcode).
Bei dir würdest du idealerweise power=2050 setzen.
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

#6574
Ich kann dir die Verbräuche meiner WP je Betriebsstunde aus dem letzten und diesem Jahr nennen:

Im Winter Max-Wert 2.5 kWh je Betriebsstunde
Im Sommer Minimalwerte 0.43 kWh je Betriebsstunde

Aktuelle Werte Tag/Monat/Jahr von mir > siehe Grafik:

Parameter    Wert
Typ    Luft-Wasser-Wärmepumpe (Monoblock)
Nennheizleistung    ca. 6,7 kW (A7/W35); max. 6,4 kW (A-7/W35)
COP (A7/W35)    bis zu 4,85
SCOP (35 °C)    4,74
SCOP (55 °C)    3,61
ErP-Effizienz (35 °C / 55 °C)    180 % / 138 %
Max. Vorlauftemperatur    75 °C (65 °C bis -10 °C Außentemperatur)
Kältemittel    R290 (Propan), GWP 0,02
Kältemittelfüllmenge    0,95 kg
Elektrischer Anschluss    1L/N/PE/230V/50Hz (einphasig)
Max. Leistungsaufnahme    2,9 kW
Energieeffizienzklasse    A++
Heizstab (Inneneinheit)    9 kW integriert
Kühlung    Aktive Kühlung inklusive
Smart-Grid    SG Ready
Schallleistung (leisester Betrieb)    28,5 dB(A) in 3 m Abstand


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

Dann wäre die Range bei dir 430/2900 -> ca. 0.15 bis 2500/2900 -> 0.86
Der Mittelwert als Startwert wäre 0.50.
Wie geschrieben, es ist nur ein initialer Wert der sich über die Aufzeichnung auf einen realen Wert einpegelt.
Der initiale Wert soll tendenziell kleiner sein damit die Sache in den Gang kommt.

Danke dir!  :)
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

Burny4600

Ich brauche eine Tipp für den opmode Parameter. (Version: 2.8.0)
Ich habe meine Klimageräte in FHEM eingebunden. Das Device OG2_BU1_KLSTD liefert mir die W,kWh,cooling,off.
Bei der Konfiguration des consumerXX bekomme ich aber immer eine Fehlermeldung für den opmode Parameter.
The value 'opmode=cooling' is not valid. Please consider the commandref.
consumerXX
OG2_BU1_KLSTD:Klimagerät Büro 1
aliasshort=Klimagerät B 1
auto=0
etotal=Active_Energy__kWh:kWh
exconfc=2
icon=sani_heating_heatpump
off=AUS
on=EIN
opmode=OG2_BU1_KLSTD:cooling
modulation=100
pcurr=Active_Power__W:W:3
power=1100
swstate=state:EIN:AUS
type=heatpump

list OG2_BU1_KLSTD
Internals:
   CFGFN      /media/hdd/fhem/myprogram/energiemanagement_rasp02.pm
   FUUID      6a47c949-f33f-f4d2-ff25-653155be669afc56
   NAME       OG2_BU1_KLSTD
   NR         2016
   STATE     
<b>
<br>
    <span style='color:#00FFFF'>Verbrauch aktuell<span style='color:transparent'>...........................<span style='color:#00FFFF'>898.77 W
<br>
    <span style='color:#C90076'>Verbrauch Energie heute<span style='color:transparent'>...............<span style='color:#C90076'>75.294 kWh
<br>
<br>
</b></span>

   TYPE       dummy
   eventCount 584
   READINGS:
     2026-07-03 18:03:47   Active_Energy__kWh 75.294
     2026-07-03 18:03:47   Active_Power__W 898.77
     2026-07-03 18:03:47   state           cooling
Attributes:
   alias      OG2 Büro 1 - Kühlung
   cmdIcon    EIN:remotecontrol/black_btn_GREEN AUS:remotecontrol/black_btn_RED
   devStateStyle style="text-align:left;;font-weight:bold;;"
   eventMap   cooling:EIN off:AUS
   group      Obergeschoss 2
   icon       sani_heating_heatpump
   room       Energiemanagement,OG2-Buero1
   sortby     00.02
   stateFormat {
my $ap=ReadingsNum($name,'Active_Power__W',0);


my $aed=ReadingsNum($name,'Active_Energy__kWh',0);

"
<b>
<br>
    <span style='color:#00FFFF'>Verbrauch aktuell<span style='color:transparent'>...........................<span style='color:#00FFFF'>$ap W
<br>
    <span style='color:#C90076'>Verbrauch Energie heute<span style='color:transparent'>...............<span style='color:#C90076'>$aed kWh
<br>
<br>
</b></span>
"
}
   webCmd     ::EIN:AUS

Warum bekomme ich den opmode Fehler, wenn das Reading mit dem Status cooling vorhanden ist?
LG Chris

Raspberry Pi 2-5 => Jessie, Bullseye, Bookworm, Trixie
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Davis, Eastron, FS20, Homematic, IT, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, SkyWind, TEK603

peterboeckmann

Hallo Chris,

Zitat von: Burny4600 am 03 Juli 2026, 18:11:43Warum bekomme ich den opmode Fehler, wenn das Reading mit dem Status cooling vorhanden ist?

Wenn ich das gerade richtig überblicke, müsstest du am consumer so konfigurieren:
opmode=OG2_BU1_KLSTD:state
Da muss das Reading angegeben sein, das den Modus (in deinem Beispiel der Wert cooling) enthält.

Viele Grüße,
Peter
MQTT,Modbus,HTTPMod,DbLog,LaCrosse,SolarForecast,TelegramBot,Twilight,vitoconnect,withings
fhem,fhempy,debmatic
Debian
RaspberryPi5,HomeMatic,HomeMaticIP,Shelly,JeeLink,SignalDuino,ZWDongle,SONOS,alexa,Hue,tradfri,MobileAlerts,Siemens Home Connect,Roborock S50,Wallbox,Harmony,Tuya Smartlife

mannil

Hallo,

ich brauche mal Eure Hilfe.
Seit mehr als einem Jahr nutze ich jetzt SolarForecast und war über den Winter auch sehr zufrieden mit den Prognosen und habe mich nicht weiter drum gekümmert. Hat alles gepasst.
Seitdem die Wärmepumpe nicht mehr heizen muss, passt aber bei der Prognose irgendetwas nicht mehr. Ich habe schon mit Hilfe von Gemini an meiner Konfiguration gefeilt, aber ohne Erfolg.

Hier meine Conifg:
aiConProfile=v1,pv,heatpump
aiTreesPV=50
aiConActivate=1
aiConMomentum=0.5
aiConBitFailLimit=0.40
aiConTrainAlgo=RPROP
aiConActFunc=SIGMOID_SYMMETRIC
aiConTrainStart=3:4
aiConAlpha=1
aiConShuffleMode=1
geminiAPIkey=aaa

Meine Consumer:
consumer01 MQTT2_shellypro3em_08f9e0e6bb60 type=heatpump etotal=kWh_Total:kWh pcurr=total_act_power:W power=5000 icon=sani_heating_heatpump switchdev=WP swstate=Verdichter:1:0
consumer02 FBDECT_16 type=noSchedule icon=fridge pcurr=power power=0 etotal=wh:Wh
consumer03 FBDECT_fbahahttp_08761_0377121 type=noSchedule icon=fridge pcurr=power power=0 etotal=wh:Wh
consumer04 shellyplusplugs_30c922871434 type=noSchedule icon=scene_dishwasher pcurr=apower power=0 etotal=aenergy_total:Wh
consumer05 MQTT2_shellyplus1pm_a8032ab940b8 type=noSchedule icon=building_carport_light pcurr=apower power=0 etotal=aenergy_total:Wh
consumer06 shelly1pmmini_543204aa1504 type=noSchedule icon=building_carport_light pcurr=apower power=0 etotal=aenergy_total:Wh
consumer07 FBDECT_fbahahttp_11657_0058541 type=noSchedule icon=scene_washing_machine pcurr=power power=0 etotal=wh:Wh
consumer08 Wally type=noSchedule icon=wallbox pcurr=powerW power=0 etotal=energy_total:kWh exconfc=1
consumer09 MQTT2_shellyem_244CAB4178F1 type=noSchedule icon=frost pcurr=emeter_0_power power=0 etotal=emeter_0_energy_total:Wh swstate=state:bla:bluff

Die Wallbox wird quasi nie genutzt. Vielleicht alle 2 Monate mal für ein bischen PV Überschuss. Die Wärmpumpe macht im Moment nur Warmwasser. Vielleicht bald noch etwas Kühlung.

Gemini sagt zu meinen Ergebnissen:
Gesamtbewertung
Ihr Modell zeigt für einen Haushalt mit Wärmepumpe und PV-gesteuertem Lastmanagement eine unterdurchschnittliche Leistung. Die erreichten Metriken (R² 0.357, Slope 0.406, Bias 473.7 Wh) liegen im Bereich, der typischerweise für stochastische Haushalte ohne solche Lasten erwartet wird. Für Ihren Haushaltstyp wären R²-Werte von 0.5 bis 0.7 anzustreben. Der kritische DriftIndex von 1.27 deutet zudem auf eine Instabilität des Modells hin, das sich nicht gut an aktuelle Daten anpasst.

Auffälligkeiten

Niedriges R²: Das R² von 0.357 ist die größte Schwäche. Es zeigt, dass das Modell nur einen geringen Teil der Varianz im Verbrauch erklären kann, was für einen Haushalt mit steuerbaren Lasten ungewöhnlich ist.

Kritischer DriftIndex: Der Wert von 1.27 ist alarmierend. Das Modell ist nicht stabil und verliert an Aktualität, was zu schlechteren Prognosen führt.

Rauschbewertung "borderline": Ein hohes Rauschlevel begrenzt die erreichbare Qualität. "Borderline" ist nicht ideal, aber auch kein Showstopper. Es könnte aber die Ursache für das niedrige R² sein, wenn die Lasten nicht sauber abgebildet werden.

Geringe Epochennutzung: Nur 78 von 15000 Epochen wurden genutzt (0.5%). Dies deutet darauf hin, dass das Training sehr früh abgebrochen wurde, möglicherweise aufgrund eines zu strengen Abbruchkriteriums oder einer schnellen Konvergenz zu einem lokalen Minimum.

Empfehlung
Um die Prognosequalität zu verbessern, empfehle ich folgende experimentelle Anpassungen:


aiConBitFailLimit anpassen: Die interne Empfehlung liegt bei 0.34, Sie nutzen 0.40. Versuchen Sie, den Wert auf 0.34 (reduzieren) oder sogar leicht darunter zu setzen. Ein niedrigerer Wert macht das Training strenger, was bei einem niedrigen R² und Drift helfen kann, das Modell präziser zu machen.

Lernrate (aiConLearnRate) anpassen: Die aktuelle Lernrate von 0.001 ist relativ niedrig. Versuchen Sie, diese schrittweise zu erhöhen (z.B. auf 0.005 oder 0.01). Eine höhere Lernrate kann dem Modell helfen, schneller aus lokalen Minima herauszukommen und eine bessere Lösung zu finden, insbesondere wenn das Training früh abbricht.

Momentum (aiConMomentum) anpassen: Ein Momentum von 0.5 ist ein guter Startwert. Experimentieren Sie mit einer leichten Erhöhung (z.B. auf 0.7 oder 0.8), um die Konvergenz zu beschleunigen und das Überwinden von lokalen Minima zu unterstützen.

Architektur (HiddenLayers) prüfen: Die Architektur "12" ist eine Zahl, die die Anzahl der Neuronen in den Hidden Layers repräsentiert. Wenn die oben genannten Schritte nicht ausreichen, könnte eine Anpassung der Architektur (z.B. Erhöhung der Komplexität) helfen, komplexere Muster im Verbrauch zu lernen, insbesondere bei einem "borderline" Rauschlevel.

Beginnen Sie mit BitFailLimit und Lernrate, da diese oft den größten Einfluss haben. Beobachten Sie den DriftIndex und das R² nach jeder Anpassung.

Und hier noch die Ergebnisse der moduleigenen Analyse:
Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 03.07.2026 07:57:40 / Laufzeit in Sekunden: 45
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 24.19 ms
Alpha: 1
Verbrauchernummer Wärmepumpe: 01

Trainingsbewertung: Retrain (Retrain)
Data-Parameter-Ratio Bewertung: ok (ok)
Lernverhalten: very_early sehr früh konvergiert (0.5 % Epochenausnutzung)
Einstellhinweise:

    Lernrate zu hoch: Lernrate (aiControl->aiConLearnRate) um Faktor 5-10 reduzieren (z.B. von 0.01 auf 0.001-0.002)
    Training zu einem anderen Zeitpunkt erneut starten: die zufällige Gewichtsinitialisierung beim Start hat das Ergebnis hier stark dominiert, ein neuer Trainingsstart erzeugt automatisch eine andere Initialisierung und führt meist zu einem deutlich besseren Ergebnis
    Modell-Skalierung stark verzerrt (Slope=0.41) trotz frühem Stop: Eingangsdaten auf Ausreißer und Normalisierungsfehler prüfen, [Entwicklerhinweis] Min/Max-Skalierung der Features kontrollieren


Rauschen Bewertung: merkliches Rauschen, Interpretation mit Vorsicht (borderline)
Drift Bewertung: recalibration blocked: bias_implausible
Empfehlung für Retrain: keine keine

externe Bewertung: Google Gemini (Es werden Trainingsmetriken an Google Gemini übertragen (sichtbar im Log mit ctrlDebug=apiCall))

Normierungsgrenzen: PV=10080 Wh, Hausverbrauch: Min=0 Wh / Max=7237 Wh
Trainingsdaten: 11885 Datensätze (Training=9508, Validation=2377)
Architektur: Inputs=110, Hidden Layers=12, Outputs=1
Hyperparameter: Learning Rate=0.001, Momentum=0.5, BitFail-Limit=0.40
Aktivierungen: Hidden=SIGMOID_SYMMETRIC, Steepness=0.7, Output=LINEAR
Trainingsalgorithmus: RPROP, Profile=v1_heatpump_pv
Zufallsgenerator: Mode=1, Period=25
Modellalter: 11 h

bestes Modell bei Epoche: 78 (max. 15000)
Training MSE: 0.006597
Validation MSE: 0.006970
Validation MSE Average: 0.006761
Validation MSE Standard Deviation: 0.000040
Validation Bit_Fail: 10
Data Parameter Ratio: 8.836
Model Bias: 474 Wh
Model Slope: 0.41
Trainingsbewertung: Retrain

MAE: 354.14 Wh
MedAE: 148.45 Wh
RMSE: 486.93 Wh
RMSE relative: 95 %
RMSE Rating: weak
MAPE: 78.10 %
MdAPE: 29.50 %
R²: 0.36

Rauschen Bewertung: borderline
Empfehlung für Bit_Fail: 0.34 (Einstellung von aiControl->aiConBitFailLimit)

Analysefenster: 96 h
Drift RMSE Ratio: 1.28
Semantic Ratio: 1.00
Slope Reference: 0.41
Slope Live: 0.51
Slope Drift: 1.254
Bias Reference: 474
Bias Live: 967.05
Bias Drift: 493.34
Score: 1.74
Index: 1.27
Drift Bewertung: recalibration blocked: bias_implausible
Empfehlung für Retrain: keine keine
letzte Rekalibrierung: -

Was wären den hier sinnvolle Paramter um wieder einzusteigen?

Danke vorab!
Gruß,
Heiko
HP Elitedesk G4, Intel i5-8500t, 16GB RAM, 256GB SSD
diverse Shellys, HM Rolladensteuerungen und sonst viel zusammengewürfelter Kram ;-.)
PV 9,75kWp Ost-West  an E3DC S10 mit 9,6kWh Speicher, Wärmepumpe Stiebel Eltron WPL-A10 HK premium 400
Tesla Model Y BYD SR an go-e Charger gemini flex 11kW

DS_Starter

#6579
Hallo Heiko,

ZitatSeitdem die Wärmepumpe nicht mehr heizen muss, passt aber bei der Prognose irgendetwas nicht mehr.
Das deutet auf ein saisonales Thema hin.

Empfehlung ... sichere dir deine aktuelle aiConfig Parametereinstellung.
Dann lösche alles raus außer:

aiConProfile=v1,pv,heatpump
aiTreesPV=50
aiConActivate=1
aiConTrainStart=3:4
aiConAlpha=1
geminiAPIkey=aaa

Dann trainiere neu. Die automatisch generierten Parameter, zu sehen in dem KI-Statusdashboard, sind ein guter Startpunkt. Ausgehend davon und mit Hilfe des internen Beraters bzw. Gemini kann man weiter optimieren.
Aber die automatische Konfiguration sollte schon eine gute Variante anbieten.

EDIT: Bei einem saisonalen Problem, kann es hilfreich sein die Datensätze zu begrenzen mit aiConTrainLimit=7000 (z.B.)

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

Burny4600

Zitat von: peterboeckmann am 03 Juli 2026, 20:23:55Hallo Chris,

Zitat von: Burny4600 am 03 Juli 2026, 18:11:43opmode=OG2_BU1_KLSTD:state

Mein Fehler war, das ich OG2_BU1_KLSTD für opmode nicht definiert hatte, weil ich die Definition für den Consumer Eingangs schon mit OG2_BU1_KLSTD definiert hatte.

Danke für den Hinweis.
LG Chris

Raspberry Pi 2-5 => Jessie, Bullseye, Bookworm, Trixie
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Davis, Eastron, FS20, Homematic, IT, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, SkyWind, TEK603