Neueste Beiträge

#11
Solaranlagen / Aw: Zendure HEMS Modul
Letzter Beitrag von Tueftler1983 - 16 Mai 2026, 21:09:39
Das ist sehr nett und das kannte ich auch bereits Aberdings denke ich übersteigt das meine Fähigkeiten. So langsam habe ich aber das Gefühl das ein Umstieg von FHEM auf HA lohnt.
Tibber ist da sauberer integriert, der wirlpool von mir, einige zigbee Geräte und auch Zendure.

Leider integrieren fiele Hersteller HA aber nicht FHEM was ich schade finde.

LG Holger
#12
Sonstige Systeme / Aw: blink-mqtt-bridge
Letzter Beitrag von rabehd - 16 Mai 2026, 21:07:08
Zitat von: juppzupp am 15 Februar 2026, 19:56:05attr blink readingList blink/sync/[^/]+/status:.*    { my $t=$TOPIC;; $t=~s#^blink/sync/##;; $t=~s#/status$##;;json2nameValue($EVENT, $t."_");; }\
blink/cameras/[^/]+/status:.* { my $t=$TOPIC;; $t=~s#^blink/cameras/##;; $t=~s#/status$##;;json2nameValue($EVENT, $t."_");; }\

Also das Attribut möchte mein FHEM nicht übernehmen.
Da ich es auch nicht verstehe....

Zitatblink: bad reading name { my $t=$TOPIC;; $t=~s#^blink/sync/##;; $t=~s#/status$##;;json2nameValue($EVENT, $t."_");; }\ (contains not A-Za-z/\d_\.- or is too long)
#13
Solaranlagen / Aw: Zendure HEMS Modul
Letzter Beitrag von Mitch - 16 Mai 2026, 20:47:13
Der Hyper kann nicht so einfach lokal benutzt werden.
Es gibt wohl ein lokales MQTT Projekt für HA: https://github.com/Schwippser/Solarflow-mqtt-HA
Sollte sich einfach auf fhem übertragen lassen.
#14
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 16 Mai 2026, 20:04:28
Hallo 300P,

ZitatKann ich mir die Ergebniswerte aus der Driftanalyse eigentlich auch per 'graphicHeaderOwnspec' oder eventuell sogar schon per special_xxx_yyyy mit anzeigen lassen ?
In graphicHeaderOwnspec kann man sich die Werte schon reinholen, aber nicht "Out of the Box".
Man braucht die Werte erst als Readings. Das ist aber nicht schwer.
Du kannst z.B. in die ctrlUserExitFn einfügen:

{
  my $fanntyp = 'con';
 
  my $drift_window     = AiNeuralVal ($name, $fanntyp, 'DriftWindowSize',    '-');         
  my $drift_score      = AiNeuralVal ($name, $fanntyp, 'DriftScore',         '-');
  my $drift_index      = AiNeuralVal ($name, $fanntyp, 'DriftIndex',         '-');
  my $drift_rmserel    = AiNeuralVal ($name, $fanntyp, 'DriftRmseRelRatio',  '-'); 
  my $bias_ref         = AiNeuralVal ($name, $fanntyp, 'DriftRefBias',       '-');
  my $drift_bias_live  = AiNeuralVal ($name, $fanntyp, 'DriftBiasLive',      '-');         
  my $drift_bias       = AiNeuralVal ($name, $fanntyp, 'DriftBias',          '-');         
  my $drift_flag       = AiNeuralVal ($name, $fanntyp, 'DriftFlag',          '-');
  my $slope_ref        = AiNeuralVal ($name, $fanntyp, 'DriftRefSlope',      '-'); 
  my $slope_live       = AiNeuralVal ($name, $fanntyp, 'DriftSlopeLive',     '-');         
  my $drift_slope      = AiNeuralVal ($name, $fanntyp, 'DriftSlope',         '-');
  my $model_age        = AiNeuralVal ($name, $fanntyp, 'ModelAgeHours',      '-');
  my $last_recaltm     = AiNeuralVal ($name, $fanntyp, 'DriftLastRecalTime', '-');
  my $drift_retrecomd  = AiNeuralVal ($name, $fanntyp, 'RetrainRecommendation', '-');
  my $drift_retreason  = AiNeuralVal ($name, $fanntyp, 'RetrainReason',         '-');

  storeReading ('userFn_Analysefenster', $drift_window);
  storeReading ('userFn_Drift_RMSE_ratio', $drift_rmserel);
  storeReading ('userFn_Slope_Reference', $slope_ref);
  storeReading ('userFn_Slope_Live', $slope_live);
  storeReading ('userFn_Slope_Drift', $drift_slope);
  storeReading ('userFn_Bias_Reference', $bias_ref);
  storeReading ('userFn_Bias_Live', $drift_bias_live);
  storeReading ('userFn_Bias_Drift', $drift_bias);
  storeReading ('userFn_Score', $drift_score);
  storeReading ('userFn_Index', $drift_index);
  storeReading ('userFn_Drift_Flag', $drift_flag);
  storeReading ('userFn_ModelAlter', $model_age);
  storeReading ('userFn_letzte_Rekal', $last_recaltm);
  storeReading ('userFn_Retrain_Recommendation', $drift_retrecomd);
  storeReading ('userFn_Retrain_Grund', $drift_retreason);
}

Dann hast du die Readings die du problemlos wie gewohnt in dein Dashboard holen kannst. Die Werte sind "roh" und müssen ggf. noch auf die gewünschten Stellen gerundet werden.

LG,
Heiko
#15
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von 300P - 16 Mai 2026, 19:08:04
Zitat von: dieter114 am 16 Mai 2026, 18:36:11Gerne:
aiConActivate=1 aiConBitFailLimit=0.34 aiConProfile=v1_common_active_pvgenPVdeviation=continuously:reverseAlso nix Besonderes aber das könnte auch der Fehler sein.

LG WDS


Erweiterung aiControl:
aiConActivate=1
aiConBitFailLimit=0.25
aiConProfile=v1_common_active_pv
aiConAlpha=0.7
aiConHiddenLayers=80-40
aiConActFunc=ELLIOT_SYMMETRIC
aiConLearnRate=0.005
aiConMomentum=0.6
aiConSteepness=0.4
(Systemeinstellungen etwas anders - Ergebnis abwarten ob das was wird.)

und
Erweiterung plantControl:

genPVdeviation=continuously:reverse
conEnergyHourLimit=7500
consForecastIdentWeekdays=0
consForecastInPlanning=1
consForecastLastDays=14
- Auf die letzten 14 Tage konzentrieren bei den Verbräuchen
- welcher Wochentag / ...stunde / für welchen Verbrauchswert welcher Verbrauchswert ist egal
- Verbrauchsvorhersage begrenzen auf 7.500 Wh/h (??könnte das evtl. dein max. Stundenverbrauch sein - wenn nicht höher oder tiefer setzen)
- Verbrauch der ConsumerXX mit berücksichtigen

Bitte nicht wundern - bei einige "attr" werden die Parameter sortiert - ich weiß nicht 100 % ob das hier auch zutrifft?!? ;)

Dann bitte einmal neu das NN-Training starten :) und das Ergebnis später dann einmal zeigen  :o


Nachsatz:

Dies (und ein Screenshot der Grafik) dann bitte zeigen:
Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 16.05.2026 10:28:28 / Laufzeit in Sekunden: 635
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 62.52 ms
Alpha: 0.8
Verbrauchernummer Wärmepumpe: 08

=== Modellparameter ===

Normierungsgrenzen: PV=10450 Wh, Hausverbrauch: Min=0 Wh / Max=7779 Wh
Trainingsdaten: 9496 Datensätze (Training=7596, Validation=1900)
Architektur: Inputs=98, Hidden Layers=80-40, Outputs=1
Hyperparameter: Learning Rate=0.002, Momentum=0.8, BitFail-Limit=0.35
Aktivierungen: Hidden=ELLIOT_SYMMETRIC, Steepness=0.8, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv
Zufallsgenerator: Mode=2, Period=20
Modellalter: 8 h

=== Trainingsmetriken ===

bestes Modell bei Epoche: 28 (max. 15000)
Training MSE: 0.005668
Validation MSE: 0.003488
Validation MSE Average: 0.010720
Validation MSE Standard Deviation: 0.000181
Validation Bit_Fail: 1
Model Bias: 401 Wh
Model Slope: 0.74
Trainingsbewertung: ok

=== Fehlermaße der Prognosen ===

MAE: 328.46 Wh
MedAE: 236.57 Wh
RMSE: 379.57 Wh
RMSE relative: 27 %
RMSE Rating: good
MAPE: 24.50 %
MdAPE: 17.12 %
R²: 0.68

=== Rauschen ===

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

=== Drift-Kennzahlen ===

Analysefenster: - h
Drift RMSE ratio: -
Slope Reference: 0.74
Slope Live: -
Slope Drift: 1
Bias Reference: 401
Bias Live: -
Bias Drift: 0
Score: -
Index: -
Drift Bewertung: fresh_model
Empfehlung für Retrain: keine (Grund: -)
letzte Rekalibrierung: -


#16
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von dieter114 - 16 Mai 2026, 18:40:15
@300P siehe PM
#17
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von dieter114 - 16 Mai 2026, 18:36:11
Gerne:
aiConActivate=1 aiConBitFailLimit=0.34 aiConProfile=v1_common_active_pvgenPVdeviation=continuously:reverseAlso nix Besonderes aber das könnte auch der Fehler sein.

LG WDS
#18
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von 300P - 16 Mai 2026, 17:19:27
Zitat von: dieter114 am 16 Mai 2026, 15:22:55Die graphische Anzeige beim Betrieb stimmt im Detail.
Wo kann den nur dieser Fehler liegen?

Hallo WolfDieter !

zeig uns als erstes doch einmal deine

attr Solarforecast aiControl........
(Beispiel)
aiConAbsOversample=0.00
aiConActFunc=ELLIOT_SYMMETRIC
aiConActivate=1
aiConAlpha=0.8
aiConBitFailLimit=0.35
aiConHiddenLayers=80-40
aiConLearnRate=0.002
aiConMomentum=0.8
aiConProfile=v1_heatpump_active_pv
aiConShuffleMode=2
aiConShufflePeriod=20
aiConSteepness=0.8
aiConTrainAlgo=INCREMENTAL
aiConTrainStart=7:9
aiStorageDuration=3600
aiTrainStart=3
aiTreesPV=30

und dein
attr Solarforecast plantControl:
(Beispiel)
backupFilesKeep=14
batteryPreferredCharge=30
comforttemp=MQTT_EMSwp:thermostat_data_hc1_comforttemp
conEnergyHourLimit=7500
consForecastIdentWeekdays=0
consForecastInPlanning=1
consForecastLastDays=14
cycleInterval=15
feedinPowerLimit=6000
genPVdeviation=continuously
genPVforecastsToEvent=adapt4fSteps
showLink=1

Danke!
#19
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von 300P - 16 Mai 2026, 17:11:51
Hallo an Alle,
hallo Heiko,

ich habe mir ja einige (wohl schon etwas viele  :o ) Parameter/Einstellungen bei mir im 'graphicHeaderOwnspec' zur Info / Anzeige eingerichtet.... ;D
Mal sind es mehr - mal etwas weniger - jenachdem was ich grad verfolge / einstelle / korrigiere oder einen Fehler suche. O:-)

Kann ich mir die Ergebniswerte aus der Driftanalyse eigentlich auch per 'graphicHeaderOwnspec' oder eventuell sogar schon per special_xxx_yyyy mit anzeigen lassen ?

Diesen Bereich meine ich  ;) :

=== Drift-Kennzahlen ===

Analysefenster: - h
Drift RMSE ratio: -
Slope Reference: 0.74
Slope Live: -
Slope Drift: 1
Bias Reference: 401
Bias Live: -
Bias Drift: 0
Score: -
Index: -
Drift Bewertung: fresh_model
Empfehlung für Retrain: keine (Grund: -)
letzte Rekalibrierung: -


PS:
Das WW zeigt aktuell 17:00 Uhr noch 61.7 Grad.
Grund:
Von 13:00 Uhr bis ca. 16:00 Uhr wurde vom das Legionellenprogramm auf 63 °C erhitzt und 2 Stunden bei 63.0 °C gehalten  O:-)


#20
Sonstige Systeme / Aw: VBus in fhem
Letzter Beitrag von Bronze - 16 Mai 2026, 15:35:39
Vielen Dank!