Hauptmenü

Neueste Beiträge

#1
Anfängerfragen / Aw: FHEM goes Gemini
Letzter Beitrag von ch.eick - 12 Januar 2026, 13:47:10
Hallo Erdnar

Zitat von: erdnar am 12 Januar 2026, 13:28:16OT Apropos wenig Wissen: Du benutzt KeyValue("store","Gemini... für den Key. Da dies bei mir zu Undefined subroutine &main::KeyValue called at (eval... führte, habe ich es auf die Schnelle in einen Dummy gelegt und von da geholt.
attr Gemini_AI replacement01Value { ReadingsVal("Gemini_Config","api_key","") } Wie komme ich zum KeyValue ?
Danke
ErdnaR
Dazu gibt es im Forum und Wiki natürlich mehr Infos :-)

Hier auf die Schnelle die Funktion für die 99_myUtils.pm, wie immer ohne Gewähr.
Achtung, das ist kein Passwort Tresor, gibt aber die Möglichkeit Passworte und Schlüssel aus dem Device zu halten, falls man es so wie ich mal schnell teilt.
######################################################
# {KeyValue("read|store","PW_PV_Anlage_1_API_user","<passwort>")}
# {KeyValue("store","PW_PV_Anlage_1_API_user",undef)}   # zum löschen
######################################################
sub KeyValue {
    my ($step, $index, $value) = @_;
    my $key = getUniqueId().$index;
    my $e_value = "";
    my $error;

    if (eval "use Digest::MD5;1") {
      $key    = Digest::MD5::md5_hex(unpack "H*", $key);
      $key   .= Digest::MD5::md5_hex($key);
    }

    if ($step eq "read") {
      ($error, $value) = getKeyValue($index);

      if ( defined($error) ) {
        Log3 $index,3, "$index, can't read key from FhemUtils/uniqueID: $error";
        return undef;
      }

      if ( defined($value) ) {
        my $dec_value = '';

        for my $char (map { pack('C', hex($_)) } ($value =~ /(..)/g)) {
          my $decode  = chop($key);
          $dec_value .= chr(ord($char)^ord($decode));
          $key        = $decode.$key;
        }
        return $dec_value;
      }
      else {
        Log3 $index,3,"$index, no key found in FhemUtils/uniqueID";
        return undef;
      }
    }

    if ($step eq "store") {
      for my $char (split //, $value) {
        my $encode = chop($key);
        $e_value  .= sprintf("%.2x",ord($char)^ord($encode));
        $key       = $encode.$key;
      }
      $error = setKeyValue($index, $e_value);
      return "error while saving key : $error" if(defined($error));
      return "Key successfully saved in FhemUtils/uniqueID Key $index";
    }
};

VG   Christian
#2
MQTT / Shelly Dimmer 4 ( Erfahrungsbe...
Letzter Beitrag von GeZi3560 - 12 Januar 2026, 13:42:02
Auch wenn ich einige Shelly Dimmer 2 im Einsatz habe und diese sich einfach in FHEM über den MQTT-Server2 anbinden ließen, habe ich nun keine Kosten gescheut und Shelly Dimmer 4 gekauft.
Um es kurz zu machen, es war mir nicht möglich den Dimmer über FHEM zu steuern.
Autocreate hat ihn zwar angelegt und er hat jede Menge Readings erzeugt, aber die Readinglist war mit 3-4 Einträgen mehr als mager.
Ich habe dann versucht anhand von angepasst Einträgen in SetList zumindest On und off zu schaffen, ohne Erfolg.
Dann den Dimmer umgeschaltet auf ZIGBEE liess sich das Ding Problemlos über ConbeeII und Deconz als HUElampe pairen, wurde als Dimmer angelegt und war ohne weitere anpassung Ansprechbar.

Gruss Gerd
#3
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von Wolle02 - 12 Januar 2026, 13:35:48
Dann will ich auch mal meine Trainingsdaten teilen:

=== Modellparameter ===

Normierungsgrenzen: PV=8888 Wh, Hausverbrauch: Min=0 Wh / Max=12741 Wh
Trainingsdaten: 6210 Datensätze (Training=4968, Validierung=1242)
Architektur: Inputs=39, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.5, BitFail-Limit=0.35
Aktivierungen: Hidden=SIGMOID, Steilheit=0.9, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_common
Zufallsgenerator: Mode=2, Periode=10

=== Trainingsmetriken ===

bestes Modell bei Epoche: 1069 (von max. 15000)
Training MSE: 0.000461
Validation MSE: 0.000289
Validation MSE Average: 0.000518
Validation MSE Standard Deviation: 0.000072
Validation Bit_Fail: 0
Model Bias: 83 Wh
Model Slope: 0.8
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 136.48 Wh
MedAE: 86.30 Wh
RMSE: 176.37 Wh
RMSE relative: 31 %
RMSE Rating: weak
MAPE: 18.53 %
MdAPE: 15.28 %
R²: 0.90

=== Drift-Kennzahlen ===

Drift Score: 2.09
Drift RMSE relative: 93.71
Drift Bias: 60.92
Drift Slope: 0.134
Drift Bewertung: severe

Bis auf den RSME relative Wert finde ich eigentlich, dass die Werte gar nicht schlecht aussehen. Eine KI Analyse fände ich auch interessant.
Anbei noch ein Screenshot. Der Peak ist Mittagessen kochen. Wärmepumpe habe ich zwar; findet aber für die Prognose keine Verwendung, weil anderer Stromkreis. MIt dem EV habe ich die KI nicht nicht bekannt gemacht, muss aber wahrscheinlich morgen mal laden.
#4
Sonstiges / Aw: fhem.cfg / includes werden...
Letzter Beitrag von TomLee - 12 Januar 2026, 13:29:45
Hallo,

{ Svn_GetFile("fhem.pl", "fhem.pl") }
oben in der Kommandozeile ausführen.

Gruß Thomas
#5
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von TheTrumpeter - 12 Januar 2026, 13:28:32
Zitat von: DS_Starter am 12 Januar 2026, 11:35:09Wenn ihr (TheTrumpeter, Stefan) eure Trainingslogs und einen Screenshot der Balkengrafik mit der Verbrauchsprognose der nächsten Stunden (soviel wie es geht) an eure Posts anhängt, kann ich das Ergebnis von der KI analysieren lassen und ggf. Verbesserungen im Profil einbauen.
Ich habe dann nach dem obigen Ergebnis auf "v1_heatpump_active_pv" umgestellt und das Training neu gestartet... läuft immer noch. Aktueller Zwischenstand:
2026.01.12 13:21:49 1: mySolarForecast DEBUG> Early stopping bei Epoche 4370 (no improvement since 1000 epochs)
2026.01.12 13:21:49 1: === Snapshot-Statistik ===
2026.01.12 13:21:49 1: Metric-Improvement Snapshots:              66 (letzte Epoche: 3370)
2026.01.12 13:21:49 1: Weighted-RMSE-Proxy-Improvement Snapshots: 59 (letzte Epoche: 3302)
2026.01.12 13:21:49 1: Bit-Improvement Snapshots:                 0 (letzte Epoche: 0)
2026.01.12 13:21:49 1: Bit-Tradeoff Snapshots:                    0 (letzte Epoche: 0)
2026.01.12 13:21:49 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 3370: Train MSE=0.001108, Val MSE=0.002496, Val MAE=0.025909, Val MedAE=0.007147, Bit_Fail=0,
2026.01.12 13:21:49 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.01.12 13:21:49 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.001108, Validation MSE=0.002496, Validation Bit_Fail=0
2026.01.12 13:21:49 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.001108
Val MSE=0.002496
Val Mean=0.0023810494
VAL/TRAIN MSE Ratio=2.253010 (limit=2.5)
Diff=0.001388 (limit=0.005)
ValStd=0.0000926900 (limit=0.000595262357462899)
-- At Original Scale: --
MAE=165.81584353369
RMSE/MAE=1.4742 (limit=1.5)
Slope=0.841794 (limit=0.7 .. 1.3)
Bias=59.55 (limit=+-248.723765300536)
R2=0.89
P95=800.6679 (limit=663.263374134762)
P99=1287.0716 (limit=1326.52674826952)
-- Robustness Indicators: --
RMSE relative=79 (limit=20)
BitFail=0 (limit=5)
BitFailRate=0.0000 (limit=0.1)
Forecast Quality Score=39
-> Retrain decision=Retrain
2026.01.12 13:21:49 1: mySolarForecast DEBUG> Retry attempt 3 with Seed=6829023
2026.01.12 13:21:49 1: mySolarForecast DEBUG> AI FANN Training started with Params:
input datasets=8020,
Registry version=v1_heatpump_active_pv,
training algo=FANN_TRAIN_INCREMENTAL,
output AF=LINEAR,
hidden AF=SIGMOID,
hidden Neurons=80-40-20,
hidden steepness=0.5,
Epoches=15000,
mse_error=0.001,
learning rate=0.00500,
learning momentum=0.8,
Data sharing=split after shuffle of training data and use AI internal shuffle (Train=6416, Test=1603),
Data shuffle=2 (period=10)

Am "learning momentum=0.8" habe ich erstmal nichts verändert.
#6
Anfängerfragen / Aw: FHEM goes Gemini
Letzter Beitrag von erdnar - 12 Januar 2026, 13:28:16
Zitat von: ch.eick am 12 Januar 2026, 10:35:52Dort kann man auch auf "View usage" gehen und sieht unter Fehler "429 TooManyRequests", wenn man im Diagramm über den roten Balken geht die Anzahl von 21.
Du darfst diesen Dateianhang nicht ansehen.

VG  Christian

Mahlzeit,
ich habe zwischenzeitlich gelernt, dass es wohl einen Unterschied gibt zwischen Anfragen an Gemini und solche über die API. :-[
Die Diagramm hatte ich auch gesehen und war, wie du, bei API-Anfragen insgesamt schon weit über 20 hinaus, hatte aber noch keine TooManyRequests.
Ich ziehe also, wie so oft, meinen Redebeitrag zurück (Grund: viel Meinung - wenig Wissen)  :'(.

OT Apropos wenig Wissen: Du benutzt KeyValue("store","Gemini... für den Key. Da dies bei mir zu Undefined subroutine &main::KeyValue called at (eval... führte, habe ich es auf die Schnelle in einen Dummy gelegt und von da geholt.
attr Gemini_AI replacement01Value { ReadingsVal("Gemini_Config","api_key","") } Wie komme ich zum KeyValue ?
Danke
ErdnaR
#7
Wallboxen und E-Fahrzeuge / Aw: Umstellung auf myHyundai-A...
Letzter Beitrag von Guzzi-Charlie - 12 Januar 2026, 12:50:25
Hallo,
vielen Dank für den Tip. Ich konnte mir auch die Tokens generieren, aber mit dem bloßen Ersatz des PWD durch den Refresh-Token hat es leider nicht geklappt. Trotzdem vielen Dank für den Hinweis.

Vielleicht liegt es auch an ganz etwas Anderem.

Falls sich weiterhin Niemand der Modulersteller meldet, dann muß ich sowieso nur noch knapp 4 Monate "aushalten", denn dann sind die 4 Jahre Leasing um und das Auto geht eh zurück. Außerdem habe ich mich inzwischen wieder von den dynamischen Strompreisen verabschiedet und bin zu meinem örtlichen Stromversorger zurückgekehrt. Trotz vollautomatischer Nutzung von Niedrigstrompreisen habe ich letztes Jahr nichts mehr gespart sondern im Gegenteil sogar ca. 100€ mehr ausgegeben. Für mich lohnt der Aufwand deshalb nicht mehr.
#8
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 12 Januar 2026, 12:37:22
ZitatSeltsamer weise habe ich keine Drift zahlen.
Aber eigentlich sieht die Vorhersage gut aus!
Drift wird in der Nacht gerechnet, wenn das Modell läuft. Also erst morgen.
Und ja, sieht so schlecht nicht aus... und wenn du noch das komplette Trainingslog anhängen würdest, könnte ich die KI füttern und bewerten lassen.
#9
FHEM Code changes / Revision 30728: 73_Tide: New -...
Letzter Beitrag von System - 12 Januar 2026, 12:10:32
Revision 30728: 73_Tide: New - German Tide forcast and Water level

73_Tide: New - German Tide forcast and Water level

Source: Revision 30728: 73_Tide: New - German Tide forcast and Water level
#10
FHEM Code changes / Revision 30727: 73_Tide: New -...
Letzter Beitrag von System - 12 Januar 2026, 12:10:32
Revision 30727: 73_Tide: New - German Tide forcast and Water level

73_Tide: New - German Tide forcast and Water level

Source: Revision 30727: 73_Tide: New - German Tide forcast and Water level