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