diff --git a/fhem/CHANGED b/fhem/CHANGED index 105bef92e..94c528e27 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it + - bugfix: 76_SolarForecast: Version 1.51.8 - feature: 76_SolarForecast: Version 1.51.7 - feature: 50_MOBILEALERTSGW: Added Internal lastseen per gateway - feature: 76_SolarForecast: Version 1.51.5 diff --git a/fhem/FHEM/76_SolarForecast.pm b/fhem/FHEM/76_SolarForecast.pm index 820d850f9..5caa8b291 100644 --- a/fhem/FHEM/76_SolarForecast.pm +++ b/fhem/FHEM/76_SolarForecast.pm @@ -160,6 +160,8 @@ BEGIN { # Versions History intern my %vNotesIntern = ( + "1.51.8" => "02.05.2025 _specialActivities: delete overhanging days at the change of month ". + "Bugfix: https://forum.fhem.de/index.php?msg=1340666 ", "1.51.7" => "01.05.2025 __createAdditionalEvents: optimized for SVG 'steps', new key plantControl->genPVforecastsToEvent ". "aiAddRawData: add gcons, _listDataPoolCircular: add gcons_a ", "1.51.6" => "30.04.2025 graphicBeamXContent: change batsocforecast_XX to batsocCombi_XX, new options batsocForecast_XX, batsocReal_XX ". @@ -467,7 +469,7 @@ use constant { LAGTIME => 1800, # Nachlaufzeit relativ zu Sunset bis Sperrung API Abruf PRDEF => 1.0, # default Performance Ratio (PR) - STOREFFDEF => 0.9, # default Batterie Effizienz (https://www.energie-experten.org/erneuerbare-energien/photovoltaik/stromspeicher/wirkungsgrad) + STOREFFDEF => 0.90, # default Batterie Effizienz (https://www.energie-experten.org/erneuerbare-energien/photovoltaik/stromspeicher/wirkungsgrad) TEMPCOEFFDEF => -0.45, # default Temperaturkoeffizient Pmpp (%/°C) lt. Datenblatt Solarzelle TEMPMODINC => 25, # default Temperaturerhöhung an Solarzellen gegenüber Umgebungstemperatur bei wolkenlosem Himmel TEMPBASEDEF => 25, # Temperatur Module bei Nominalleistung @@ -9257,6 +9259,18 @@ sub _specialActivities { delete $data{$name}{circular}{99}{tdayDvtn}; delete $data{$name}{pvhist}{$day}; # den (alten) aktuellen Tag aus History löschen + + if (int $day == 1) { # Monatswechsel: überhängende Tage löschen + my $dtp = timestringsFromOffset ($t, -86000); # Berechne die Anzahl der Tage im Vormonat + my $dipm = int $dtp->{day}; + + for my $dtr ($dipm + 1 .. 31) { # Lösche ungültige Tage des Vormonats + if (exists $data{$name}{pvhist}{$dtr}) { + delete $data{$name}{pvhist}{$dtr}; + Log3 ($name, 3, "$name - history day >$dtr< deleted"); + } + } + } writeCacheToFile ($hash, 'plantconfig', $plantcfg.$name); # Anlagenkonfiguration sichern @@ -14228,7 +14242,7 @@ sub _genSpecialReadings { if (!AttrVal ($name, 'consumer'.$c, '')) { readingsDelete ($hash, $prpo.'_currentRunMtsConsumer_'.$c); - return; + next; } my $mion = &{$hcsr{$kpi}{fn}} ($hash, $c, $hcsr{$kpi}{par}, $def); @@ -14241,7 +14255,7 @@ sub _genSpecialReadings { if (!AttrVal ($name, 'consumer'.$c, '')) { readingsDelete ($hash, $prpo.'_runTimeAvgDayConsumer_'.$c); - return; + next; } my $radc = &{$hcsr{$kpi}{fn}} ($hash, $c, $hcsr{$kpi}{par}, $def);