From 7bf9b41ce91d5ef7b0d3b60d9c26bd65b33575f7 Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Sun, 10 Apr 2022 14:17:48 +0000 Subject: [PATCH] 76_SolarForecast.pm: contrib 0.57.3 git-svn-id: https://svn.fhem.de/fhem/trunk@25944 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/contrib/DS_Starter/76_SolarForecast.pm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fhem/contrib/DS_Starter/76_SolarForecast.pm b/fhem/contrib/DS_Starter/76_SolarForecast.pm index 0b09a7d89..34ecab0e8 100644 --- a/fhem/contrib/DS_Starter/76_SolarForecast.pm +++ b/fhem/contrib/DS_Starter/76_SolarForecast.pm @@ -120,6 +120,7 @@ BEGIN { # Versions History intern my %vNotesIntern = ( + "0.57.3 "=> "10.04.2022 some fixes (\$eavg in ___csmSpecificEpieces, useAutoCorrection switch to regex) ", "0.57.2 "=> "03.04.2022 area factor for 25° added ", "0.57.1 "=> "28.02.2022 new attr flowGraphicShowConsumerPower and flowGraphicShowConsumerRemainTime (Consumer remainTime in flowGraphic)", "0.56.11"=> "01.12.2021 comment: 'next if(\$surplus <= 0);' to resolve consumer planning problem if 'mode = must' and the ". @@ -2200,6 +2201,7 @@ sub _specialActivities { deleteReadingspec ($hash, "Today_Hour.*_PV.*"); deleteReadingspec ($hash, "Today_Hour.*_Bat.*"); deleteReadingspec ($hash, "powerTrigger_.*"); + if(ReadingsVal ($name, "pvCorrectionFactor_Auto", "off") eq "on") { for my $n (1..24) { $n = sprintf "%02d", $n; @@ -3006,7 +3008,11 @@ sub ___csmSpecificEpieces { } - $data{$type}{$name}{consumers}{$c}{epiecAVG}{$hour} = sprintf('%.2f',$data{$type}{$name}{consumers}{$c}{epiecAVG}{$hour} / $hoursE); # Durchschnitt ermittelt und in epiecAVG schreiben + my $eavg = defined $data{$type}{$name}{consumers}{$c}{epiecAVG}{$hour} ? + $data{$type}{$name}{consumers}{$c}{epiecAVG}{$hour} : + 0; + + $data{$type}{$name}{consumers}{$c}{epiecAVG}{$hour} = sprintf('%.2f', $eavg / $hoursE); # Durchschnitt ermittelt und in epiecAVG schreiben } } @@ -5777,7 +5783,7 @@ sub useAutoCorrection { my $dcauto = ReadingsVal ($name, 'pvCorrectionFactor_Auto', 'off'); - return 1 if($dcauto eq 'on'); + return 1 if($dcauto =~ /^on/xs); return; }