76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

300P

Zitat von: TheTrumpeter am 09 Januar 2026, 13:00:31Hab' das grad durchgeschaut, finde aber nirgends einen Hinweis was/wie ich die WP konfigurieren/bekanntmachen muss.

Zusatzinstallierung notwendig:
Zuerst versuch es mal so in der Reihenfolge - bei meinem RPI4 hat es so geklappt.

sudo su
apt-get update && apt-get upgrade
sudo apt-get install gcc
sudo apt-get install libfann-dev
sudo cpan AI::FANN

Bei mir lief es dann so sauber durch.

Dann Contrib - Version laden / 1 x restart FHEM

Dies (o.ä.) zum "attr Forecast aiControl" hinzufügen
aiConActivate=1\
aiConAlpha=1\
aiConTrainStart=1:2\
aiConActFunc=SIGMOID\
aiConHiddenLayers=80-40-20\
aiConLearnRate=0.005\
aiConMomentum=0.8\
aiConShuffleMode=2\
aiConSteepness=0.5\
aiConTrainAlgo=INCREMENTAL

Jetzt noch bei "attr Forecast ctrlDebug" 
aiProcess
anklicken damit du was siehst.

und dann hiermit deine Wärmepumpe (ab V2.0.0.) an SF bekanntgeben


EDIT:
Ach ganz vergessen - dann must du erstmalig ein langandauerndes  AI-Training anwerfen ehe du etwas siehst...
set <SF> aiDecTree runConTrain

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

Hallo zusammen,

die Version in meinem contrib ist upgedated.

- die Perl Warnungen sind beseitigt

Weiterhin unterstützt der "Train Only" Mode (aiConActivate=2) die zeitsparende Austestung von AI Einstellungen indem dieser Mode maximal 1 Wieholung des Trainings ausführt unabhängig von den erreichten Kennwerten. Dadurch ist es leichter sein individuelles Optimum zu finden

Das Attr aiControl hat nun auch einen Key "aiConProfile". Die Haushalte sind stark unterschiedlich gestaltet. Über diesen Key kann man ein passendes Profil auswählen, mit dem man die besten Ergebnisse erzielt.
Die Motivation ist folgende ... es gibt Haushalte mit großen PV-Anlagen oder auch nur Balkonanlagen. Beide Varianten beeinflussen ganz unterschiedlich stark das Verbrauchsverhalten im Haushalt. Durch die Profile kann ich unterschiedlich starke Semantiken zusammenstellen, sodass sich die Trainingsergebnisse besser zu dem  Haushalt passen.

Zu Zeit gibt es diese Profile:

aiConProfile    
Auswahl der Eigenschaften des Haushalts. Die auswählbaren Profile verstärken bzw. betonen bestimmte Spezifika im Haushalt.
   Die Versionsbezeichnung ist lediglich ein Anhaltspunkt. Man sollte die Version einstellen, mit der die besten Ergebnisse erzielt werden.
   Ist aiConProfile nicht gesetzt, erfolgt durch das System eine automatische Auswahl der wahrscheinlich zutreffendsten Registry.
   
    - v1_common - Standardhaushalt
    - v1_common_active - Standardhaushalt mit weiteren Semantiken
    - v1_common_pv - Haushalt mit stärkerer Gewichtung der PV-Anlage
    - v1_common_active_pv - Haushalt mit weiteren Semantiken und stärkerer Gewichtung der PV-Anlage
    - v1_heatpump - Haushalt mit stärkerer Gewichtung der durch eine Wärmepunpe verursachten Charakteristiken
    - v1_heatpump_pv - Haushalt mit stärkerer Gewichtung von PV und Wärmepunpen Charakteristika


@300P, wenn v1_heatpump oder v1_heatpump_pv bei dir nicht einem vergleichbaren Ergebnis wie mit dem letzten Update führt, benutze v1_common oder v1_common_pv.

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

@TheTrumpeter,

deinen Consumer:

attr mySolarForecast consumer03 Mythz type=noSchedule power=2100 asynchron=1 pcurr=cur_power_hc:kW:1 etotal=sElectrHCTotal:kWh swstate=HeatingHC:1:0 icon=sani_heating noshow=solarforecast_hc_show
könnstest du m.M. nach gut als WP-Device kennzeichnen. Einfach type=noSchedule ersetzen durch type=heatpump. Dieser Consumertyp ist automatisch nicht planbar (noSchedule). Alle anderen Keys sollten so bleiben können. Zu ergänzen wäre nur noch comforttemp wie 300P im Wiki beschrieben hat.
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

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.

grappa24

Zitat von: DS_Starter am 09 Januar 2026, 21:16:21aiConProfile   
Auswahl der Eigenschaften des Haushalts. Die auswählbaren Profile verstärken bzw. betonen bestimmte Spezifika im Haushalt.
    Die Versionsbezeichnung ist lediglich ein Anhaltspunkt. Man sollte die Version einstellen, mit der die besten Ergebnisse erzielt werden.
    Ist aiConProfile nicht gesetzt, erfolgt durch das System eine automatische Auswahl der wahrscheinlich zutreffendsten Registry.
   
    - v1_common - Standardhaushalt
    - v1_common_active - Standardhaushalt mit weiteren Semantiken
    - v1_common_pv - Haushalt mit stärkerer Gewichtung der PV-Anlage
    - v1_common_active_pv - Haushalt mit weiteren Semantiken und stärkerer Gewichtung der PV-Anlage
    - v1_heatpump - Haushalt mit stärkerer Gewichtung der durch eine Wärmepunpe verursachten Charakteristiken
    - v1_heatpump_pv - Haushalt mit stärkerer Gewichtung von PV und Wärmepunpen Charakteristika
welches Profil wäre denn für meine 11 kWp PV Anlage mit 7.7 kWh Speicher sinnvoll (keine WP, dafür aber PHEV mit 12 kWh, keine weiteren Semantiken)
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

Wolle02

Zitat von: grappa24 am 10 Januar 2026, 09:04:35welches Profil wäre denn für meine 11 kWp PV Anlage mit 7.7 kWh Speicher sinnvoll (keine WP, dafür aber PHEV mit 12 kWh, keine weiteren Semantiken)


Also ich habe für meine 6,4 kWp Anlage mit 10 kWh Speicher ohne WP aber mit EV momentan mal v1_common_pv zum Testen eingestellt. Mal schauen was passiert. Mir ist allerdings nicht so ganz klar, was mit "weiteren Semantiken" gemeint ist.

DS_Starter

Moin zusammen,

bei der Profilauswahl kommt es auf Tests an. Wie der E-Verbrauch im Haushalt tickt, kann man vorab nicht sagen. Bei Dachanlagen würde ich v1_common_pv bzw. v1_heatpump_pv probieren.

@grappa24, EV habe ich noch nicht als Consumer intergriert. Da wird noch einiges fehlen.

ZitatMir ist allerdings nicht so ganz klar, was mit "weiteren Semantiken" gemeint ist.
Ja, ich weiß nicht wie ich es besser ausdrücken soll. Vermutlich muß ich mal im Wiki etwas darüber schreiben.

Diese Profile stellen bestimmte Verknüpfungen von Deltas und Trends her, die im Code in Form von mathematischen Verknüpfungen ausgedrückt werden. Nur mal als Beispiel:

# --------------------------------------------------------
# Semantik: Menschlicher Tagesrhythmus (PV-unabhängig)
# --------------------------------------------------------
semantics_human_rhythm => sub {
    my ($f) = @_;
    return [
        # --- MORGEN ---
        sqrt($f->{delta1_norm_pos} * $f->{hour_class_morning}),             # Aufstehen / Geräte an

        # --- MITTAG ---
        sqrt($f->{delta1_norm_pos} * $f->{hour_class_noon}),                # Kochen / Haushalt

        # --- ABEND ---
        sqrt($f->{delta1_norm_pos} * $f->{hour_class_evening}),             # Kochen / Abendaktivität

        # --- SPÄTER ABEND ---
        sqrt($f->{delta1_norm_neg} * $f->{hour_class_lateevening}),         # Geräte gehen aus
    ];
},


# --------------------------------------------------------
# PV-Semantik
# --------------------------------------------------------
semantics_pv => sub {
    my ($f) = @_;
    return [
        # --- PV-Dynamik ---
        $f->{pv_jump},                                                              # Plötzlicher PV-Anstieg (Wolkenloch)
        $f->{pv_drop},                                                              # Plötzlicher PV-Abfall (Wolke)

        # --- PV-Level ---
        $f->{pv_norm},                                                              # PV-Erzeugung – Grundsignal

        # --- PV + Tageszeit ---
        sqrt($f->{pv_norm}) * $f->{hour_class_noon},                                # PV-Lastverschiebung mittags

        # --- PV + Verbrauchsdynamik ---
        sqrt($f->{pv_norm} * $f->{trend_up_strength}),                              # PV + steigender Trend
        sqrt($f->{pv_norm} * $f->{delta1_norm_pos}),                                # PV + Verbrauchsanstieg

        # --- PV-Drop + Verbrauchsdynamik ---
        sqrt($f->{pv_drop} * $f->{delta1_norm_neg}),                                # Lastabfall durch PV-Wegfall

        # --- PV + Temperatur ---
        sqrt($f->{pv_norm} * $f->{temp_delta_1h_neg}),                              # Kälte + PV -> Heizer + Batterie
        sqrt($f->{pv_drop} * $f->{temp_delta_1h_neg}),                              # Kälte + PV-Drop -> Lastabfall

        # --- PV + Temperatur + Trend ---
        sqrt($f->{pv_norm} * $f->{temp_delta_1h_neg} * $f->{trend_up_strength}),    # Kälte + PV + steigender Trend -> Peak                                                                                   
    ];
},

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