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

Na da hast du was richtiges geleistet.  ;)

Ich habe nochmal ein Update ins contrib geladen.
Der Consumer type=noSchedule ist als deprecated gekennzeichnet und soll nicht mehr verwendet werden.
Statt dessen gibt es schon lange den Ersatz mode=mustNot.
'noSchedule' ist ja eigentlich kein Typ eines Consumers, sondern eine Eigenschaft. Außerdem soll der Typ fest sein und sich nicht ändern. 'noSchedule' war ursprünglich für temporäre Ausplanungen gedacht und ist mit dem besser verwenbaren mode=mustNot jetzt obsolet.
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

TheTrumpeter

Zitat von: DS_Starter am 06 Juli 2026, 11:54:07- 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.
Ich weiß schon, dass ich darum gebeten habe das freizugeben. Das war aber vor der Zusammenfassung aller möglichen WP-Betriebsmodi in einen Verbraucher. Mit der aktuellen Implementierung habe ich folgende Probleme/Fragen:

Es gibt nur 1 Verbraucher für mehrere völlig unabhängige Aufgaben. Entsprechend müsste es für jede dieser Aufgaben unabhängige Ein-/Aus-Kommandos sowie Ein-/Aus-Bedingungen geben.
Für die Warmwasser-Bereitung habe ich einen eigenen Einschaltbefehl definiert, die Bedingungen für die Planung sind abhängig von der Speichertemperatur.
Die Heizung hätte keine Einschaltbedingung, die nötige Laufzeit würde sich aus den gelernten Zusammenhängen mit der Außentemperatur ergeben.
Ähnliches gilt für die Kühlung, wobei da noch weitere Umweltbedingungen passen müssen, damit die Wärmepumpe den Kühlmodus überhaupt freigibt.

Ich glaube nicht, dass es sinnvoll ist das alles in dem Consumer abzubilden.
Wäre es stattdessen nicht übersichtlicher den Verbraucher "Wärmepumpe" nur für die Verbrauchserfassung und -prognose zu verwenden und jegliche Planungs-/Schaltvorgänge in weitere Verbraucher (ich nenn' sie mal "Dummies") auszulagern?
Damit kann heute schon jeder selbst entscheiden welche Teilfunktionen der Wärmepumpe von SF gesteuert werden sollen.
Dann bräuchte es "nur" noch irgendeinen intelligenten Mechanismus wie die echten Verbrauchsdaten in den Dummy-Verbrauchern für die Planung zur Verfügung stehen ohne den Rest durcheinanderzubringen.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

300P

Thema Gemini-Bewertung ->>> Alternative:

Ich "berate" mich ja schon seit Monaten mit ChapGPT und Gemini - je nachdem wer es mir mit Zeiten "erlaubt" ;)
Da ich schon länger bei ChatGPT war habe ich einfach mal gefragt was dazu an Code notwendig wäre:
Hier die Angaben:
Das geht sogar relativ einfach.
Da der Entwickler ohnehin bereits eine externe Bewertung über Gemini eingebaut hat, könnte dieselbe Architektur auch für ChatGPT/OpenAI verwendet werden.

Ich würde allerdings nicht das komplette Training oder die Vorhersage an ein LLM auslagern.
AI::FANN ist dafür wesentlich besser geeignet.

Was ChatGPT dagegen sehr gut kann, ist die Interpretation der Trainingsmetriken, das Erkennen von Zusammenhängen und konkrete Optimierungsvorschläge.



use JSON;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new();

my $json = encode_json({
    model => "gpt-5",
    input => "Bewerte folgende Trainingsmetriken:\n$metrics"
});

my $res = $ua->post(
    "https://api.openai.com/v1/responses",
    "Content-Type"  => "application/json",
    "Authorization" => "Bearer $apikey",
    Content => $json
);

if($res->is_success) {
    my $reply = decode_json($res->decoded_content);
    print $reply->{output}[0]{content}[0]{text};
}


Angaben die da benötigt würden:
{
  "training_mse":0.0081,
  "validation_mse":0.00694,
  "validation_bitfail":9,
  "mae":399.7,
  "rmse":496.3,
  "r2":0.49,
  "model_bias":443,
  "model_slope":0.65,
  "data_parameter_ratio":7.26,
  "drift_index":1.27,
  "semantic_ratio":0.46,
  "profile":"v1_heatpump_active_pv",
  "inputs":121,
  "hidden_layers":"12",
  "algorithm":"INCREMENTAL",
  "activation":"ELLIOT_SYMMETRIC"
}

Es gab auch andere "Wünsche" von ChatGPT, aber die sprengen den Rahmen ;)

Variante 1 :
- inklusive Zeitreihen.

Variante 2
Die KI bekommt zusätzlich alle Features:
Temperatur
PV
PV Forecast
SOC
Batterie
Heatpump Points
Heatpump Energy
BEV
Wind
CloudCover
Holiday
Presence
ComfortTemp
...
und beantwortet Fragen wie
Welche Features begrenzen aktuell die Prognosegüte am stärksten?
oder
Welche zusätzlichen Eingangsdaten würden den größten Informationsgewinn bringen?

->> Das wäre fast schon ein KI-Coach für das neuronale Netz.

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

#6618
Moin,

@TheTrumpeter,

ZitatIch glaube nicht, dass es sinnvoll ist das alles in dem Consumer abzubilden.
Wäre es stattdessen nicht übersichtlicher den Verbraucher "Wärmepumpe" nur für die Verbrauchserfassung und -prognose zu verwenden und jegliche Planungs-/Schaltvorgänge in weitere Verbraucher (ich nenn' sie mal "Dummies") auszulagern?
Ich persönlich würde den WP-Consumer auch nur zur Datenerfassung einsetzen und die Steuerung der WP dem eigenen Controller überlassen.
Das Eine schließt das Andere nicht aus, das entscheidet der Anwender.
Um den Consumer nur "lesend" einzusetzen wie bisher, setzt man einfach mode=mustNot. Die Schlüssel opmode und opmodeIcons dienen nur der Erkennung und Visualisierung
des aktuellen Betriebszustandes der WP.
D.h. die Öffnung dess Consumers als Steuerinstanz ist eine Option die man nutzen _kann_ oder nicht wenn nicht sinnvoll.

ZitatDamit kann heute schon jeder selbst entscheiden welche Teilfunktionen der Wärmepumpe von SF gesteuert werden sollen.
Dann bräuchte es "nur" noch irgendeinen intelligenten Mechanismus wie die echten Verbrauchsdaten in den Dummy-Verbrauchern für die Planung zur Verfügung stehen ohne den Rest durcheinanderzubringen.
Das wäre eine Variante. Eine weitere Variante wäre, für die benötigten Teilfunktionen mehrere WP-Consumer (oder andere Tpen) zu definieren, die eine Teilaufgabe übernehmen.
Dazu muß man sich natürlich ein Konzept überlegen und durcharbeiten um Beziehungen und Wechselwirkungen genau zu kennen.
Will man eigene Dummies oder ganz allgemein eigene Steuerlogiken umsetzen, kommt man ohne etwas Programmierung nicht aus.
Die Prognosedaten oder andere benötigte Daten kann man aus dem Modul lesen. Dazu gibt es Schnittstellenfunktionen im Wiki beschrieben.

 
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

300P

WP-iconwechsel funktioniert:

WP=off=>> 3D-Icon        => okay
WP=hotwater=>> deeppink  => okay

Die anderen sollten dann ja auch passen.... ;)

heating->sani_heating_heatpump@red,
cooling->sani_heating_heatpump@blue,
hotwater->sani_heating_heatpump@deeppink,
defrost->sani_cooling_temp@blue,
off->air_water_heating_pump"



und jetzt gehts in den Garten.....
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

@300P,

ZitatThema Gemini-Bewertung ->>> Alternative:
Ich habe mich schon gefragt wie lange es dauert bis nach Alternativen gefragt wird ...  ;)

ZitatWas ChatGPT dagegen sehr gut kann, ist die Interpretation der Trainingsmetriken, das Erkennen von Zusammenhängen und konkrete Optimierungsvorschläge.
Das ist das was Gemini auch macht. Ich kann jetzt nicht einschätzen ob eine der LLM besser bezüglich ihrer Interpretation ist oder in welchen Situationen
die eine besser als die andere LLM "berät".
Ein weiterer Vorteil von einer Alternative könnte bei intensiver Nutzung das lästige Zeitlimit sein.

Zitatuse LWP::UserAgent;

my $ua = LWP::UserAgent->new();
...
Damit hältst du dir dein FHEM an wenn die Antwort mal wieder länger dauert. ;) Das muß man anders lösen.
KI-Codevorschläge von KI's sind mittlerweile wirklich gut (kommt auf die KI an), aber bei weitem nicht perfekt und man sollte sich NIE darauf verlassen.

ZitatVariante 2
Die KI bekommt zusätzlich alle Features:
...
Das willst du nicht wirklich ... du willst einer LLM im Netz nicht mitteilen wann du gewöhnlich außer Haus bist (presence) oder dein Auto (nicht) geladen wird (BEV) ....  ;)

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

Gibt es inzwischen noch weitere Meinungen, die dynamischen Icons nicht nur in der Flußgrafik darzustellen, sondern auch in dem Verbraucherpaneel?
Bisher waren die Icons im Verbraucherpaneel statisch. In dem dem test in V2.8.1 sind sie mit denen in der Flußgrafik (dynamisch) identisch.
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

grappa24

Zitat von: DS_Starter am 06 Juli 2026, 11:54:07- TEST: Übernahme dynamische Icongestaltung der Consumer auch in das Consumerpaneel
        (Umsetzung zur Entscheidungsfindung - Meinungen sind gefragt)
kommt gut, danke!
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

PSI69

Zitat von: DS_Starter am 02 Juli 2026, 19:21:44Eine Bitte an WP-Nutzer die die Verbrauchsvorhersage mit FANN nutzen.
Wie hoch ist euer Model-Bias nach dem Training in etwa? (Mir ist bewußt, dass der Wert nicht immer gleich ist).
Anbei meine Werte. Ist ein WP mit Sondenbohrung.
bestes Modell bei Epoche: 205 (max. 15000)
Training MSE: 0.000288
Validation MSE: 0.000208
Validation MSE Average: 0.000380
Validation MSE Standard Deviation: 0.000010
Validation Bit_Fail: 0
Data Parameter Ratio: 8.899
Model Bias: 354 Wh
Model Slope: 0.60
Trainingsbewertung: Borderline
Gruß Peter
FHEM auf RPi 5 unter Bookworm mit inzwischen einem ganzen Zoo von Geräten...

300P

Zitat von: DS_Starter am 07 Juli 2026, 08:47:26Vorteil von einer Alternative könnte bei intensiver Nutzung das lästige Zeitlimit sein

Genau ;)

Zitat von: DS_Starter am 07 Juli 2026, 08:47:26KI-Codevorschläge

Ja - da wird nicht alles betrachtet was man "selber" schon leidlich erfahren hat.
Input okay - Als direkte Übernahme / Ausführung manchmal nicht so ganz und manchmal wird vergessen was vor 2 Tagen gemacht / gelöscht geändert wurde.....
==>>sehr kleines 🧠

Zitat von: DS_Starter am 07 Juli 2026, 08:47:26Das willst du nicht wirklich ... du willst einer LLM im Netz nicht mitteilen wann du gewöhnlich außer Haus bist (presence) oder dein Auto (nicht) geladen wird (BEV) ....  ;)

Nie, niemals und nimmer - wollte nur aufzeigen was da an Wünschen rüber kommt:
Ich habe schon Anfang der 90er die Adressweitergabe seitens der Stadt nach einer Ummmeldung schriftlich widdersprochen - kurz darauf hin wurde ich von Nachbarn aus dem Kirchenvorstand gefragt ob ich und warum ich der Kirche ausgetreten sei - ich hätte doch grad erst vor noch kirchlich zu heiraten........das sagt wohl alles.....BIG BROTHER IS WATCHING YOU... auch ohne KI

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

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

@300P, ich habe mal recherchiert.
ChatGPT/OpenAI bietet keine kostenlose API zur Integration an ... es sei denn du hast etwas gefunden was dem widerspricht?
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

Ich habe mal vor einigen Monaten 1/2/3.... Dummy-Account's bei ChatGPT eingerichtet.
Einen hab ich dann, den ich dazu mehrheitlich und immer wieder (im gleichen Chat - gleicher Account) nur für die Solarforecast-Bewertung /-analyse genutzt habe.

Und JA - die API ist leider nur mit Kosten bei ChatGPT machbar!

Hab dann nach meiner manuellen Methode gefragt die ich aktuell ja sowieso mache - seit Monaten !!!
Mein "Schlauer" sagt dazu:
Für dich persönlich wäre denkbar:

Da du ohnehin regelmäßig deine Trainingsdaten hier postest und wir sie gemeinsam analysieren, brauchst du momentan gar keine API-Anbindung.
Ich habe inzwischen recht viel Kontext zu deinem System:

PV-Anlage
Batteriespeicher
Wärmepumpe
zweite Heatpump (Klimaanlage)
BEV-Integration
Entwicklung von V2.6 bis V2.8.1
Einführung der WP-Points
die groben Änderungen des Entwicklers
typische Probleme (WW-Phasen, Defrost, FBH-Anhebung usw.)

Dadurch kann ich deine neuen Ergebnisse wesentlich gezielter einordnen als ein LLM, das jedes Mal "bei Null" beginnt.
Eigentlich wäre mein Wunsch an den Entwickler sogar ein anderer

Nicht, dass SolarForecast automatisch mit ChatGPT spricht.
->>> Sondern, dass es einen "Analyse exportieren"-Button gäbe.

Zum Beispiel:
get SolarForecast aiReport
liefert automatisch einen Markdown-Block oder JSON mit allen relevanten Kennzahlen und den letzten 24 Stunden Forecast/Realwerten.

Den kopierst du einfach hier hinein.

Das hätte mehrere Vorteile:
keine API-Kosten
keine Datenschutzfragen
keine Provider-Abhängigkeit
trotzdem eine sehr detaillierte Analyse

Und ehrlich gesagt:
Genau so arbeiten wir ja bereits seit Monaten – und ich finde, das funktioniert erstaunlich gut, weil wir die Entwicklung deines Systems über viele Versionen hinweg verfolgen können

Wäre das evtl. ein Ansatz ?
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.