From 2cf56aafaf3e33a56f29709b1b00943c07a4b469 Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Sat, 17 Sep 2022 19:16:16 +0000 Subject: [PATCH] 76_SolarForecast.pm: contrib 0.68.1 git-svn-id: https://svn.fhem.de/fhem/trunk@26415 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/contrib/DS_Starter/76_SolarForecast.pm | 41 +++++++++++++-------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/fhem/contrib/DS_Starter/76_SolarForecast.pm b/fhem/contrib/DS_Starter/76_SolarForecast.pm index 99a4ce41f..6f434d809 100644 --- a/fhem/contrib/DS_Starter/76_SolarForecast.pm +++ b/fhem/contrib/DS_Starter/76_SolarForecast.pm @@ -2007,8 +2007,10 @@ sub ___setLastAPIcalltime { my $type = $hash->{TYPE}; $data{$type}{$name}{solcastapi}{'?All'}{'?All'}{lastretrieval_time} = (timestampToTimestring ($t))[3]; # letzte Abrufzeit - $data{$type}{$name}{solcastapi}{'?All'}{'?All'}{lastretrieval_timestamp} = $t; # letzter Abrufzeitstempel - + $data{$type}{$name}{solcastapi}{'?All'}{'?All'}{lastretrieval_timestamp} = $t; # letzter Abrufzeitstempel + + $data{$type}{$name}{current}{todaySolCastAPIcalls} += 1; + return; } @@ -2874,6 +2876,9 @@ sub _specialActivities { delete $hash->{HELPER}{INITCONTOTAL}; delete $hash->{HELPER}{INITFEEDTOTAL}; + delete $data{$type}{$name}{current}{todaySolCastAPIcalls}; + delete $data{$type}{$name}{current}{todayMaxEstValue}; + delete $data{$type}{$name}{current}{todayMaxEstTimestamp}; delete $data{$type}{$name}{pvhist}{$day}; # den (alten) aktuellen Tag aus History löschen Log3 ($name, 3, qq{$name - history day "$day" deleted}); @@ -3507,7 +3512,7 @@ sub _calcMaxEstimateToday { return if (!keys %{$data{$type}{$name}{nexthours}}); - my $maxest = 0; + my $maxest = CurrentVal ($hash, 'todayMaxEstValue', 0); for my $idx (sort keys %{$data{$type}{$name}{nexthours}}) { my $today = NexthoursVal ($hash, $idx, 'today', 0); @@ -9003,24 +9008,30 @@ sub NexthoursVal { return $def; } -############################################################################# +################################################################################################### # Wert des current-Hash zurückliefern # Usage: # CurrentVal ($hash, $key, $def) # -# $key: generation - aktuelle PV Erzeugung -# genslidereg - Schieberegister PV Erzeugung (Array) -# h4fcslidereg - Schieberegister 4h PV Forecast (Array) -# consumerdevs - alle registrierten Consumerdevices (Array) -# gridconsumption - aktueller Netzbezug -# powerbatin - Batterie Ladeleistung -# powerbatout - Batterie Entladeleistung -# temp - aktuelle Außentemperatur -# tomorrowconsumption - Verbrauch des kommenden Tages -# invertercapacity - Bemessungsleistung der Wechselrichters (max. W) +# $key: generation - aktuelle PV Erzeugung +# genslidereg - Schieberegister PV Erzeugung (Array) +# h4fcslidereg - Schieberegister 4h PV Forecast (Array) +# consumption - aktueller Verbrauch (W) +# consumerdevs - alle registrierten Consumerdevices (Array) +# gridconsumption - aktueller Netzbezug +# powerbatin - Batterie Ladeleistung +# powerbatout - Batterie Entladeleistung +# temp - aktuelle Außentemperatur +# surplus - aktueller PV Überschuß +# tomorrowconsumption - Verbrauch des kommenden Tages +# invertercapacity - Bemessungsleistung der Wechselrichters (max. W) +# allstringspeak - Peakleistung aller Strings nach temperaturabhängiger Korrektur +# todayMaxEstTimestamp - Zeitstempel des erwarteten maximalen PV Ertrages am aktuellen Tag +# todayMaxEstValue - Wert (Wh) des erwarteten maximalen PV Ertrages am aktuellen Tag +# tomorrowconsumption - erwarteter Gesamtverbrauch am morgigen Tag # $def: Defaultwert # -############################################################################# +################################################################################################### sub CurrentVal { my $hash = shift; my $key = shift;