From 6ef49d9e05e5ae101fe92ab4159bc37cc3c25493 Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Fri, 6 Oct 2023 19:57:06 +0000 Subject: [PATCH] 76_SolarForecast: replace calcRange by cloud2bin git-svn-id: https://svn.fhem.de/fhem/trunk@28027 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/76_SolarForecast.pm | 97 ++++++++++++++++------------------- 1 file changed, 44 insertions(+), 53 deletions(-) diff --git a/fhem/FHEM/76_SolarForecast.pm b/fhem/FHEM/76_SolarForecast.pm index 57d87cd9e..b577315db 100644 --- a/fhem/FHEM/76_SolarForecast.pm +++ b/fhem/FHEM/76_SolarForecast.pm @@ -144,6 +144,7 @@ BEGIN { # Versions History intern my %vNotesIntern = ( + "1.0.2" => "05.10.2023 replace calcRange by cloud2bin ", "1.0.1" => "03.10.2023 fixes in comRef, bug fix Forum: https://forum.fhem.de/index.php?msg=1288637 ", "1.0.0" => "01.10.2023 preparation for check in ", "0.83.3" => "28.09.2023 fix Illegal division by zero, Forum: https://forum.fhem.de/index.php?msg=1288032 ". @@ -5537,7 +5538,7 @@ sub ___readCandQ { delete $data{$type}{$name}{nexthours}{"NextHour".sprintf("%02d",$num)}{cloudrange}; if ($acu =~ /on_complex/xs) { # Autokorrektur complex soll genutzt werden - my $range = calcRange ($cc); # Range errechnen + my $range = cloud2bin ($cc); # Range errechnen ($hc, $hq) = CircularAutokorrVal ($hash, sprintf("%02d",$fh1), $range, undef); # Korrekturfaktor/Qualität der Stunde des Tages (complex) $hq //= '-'; $hc //= 1; # Korrekturfaktor = 1 (keine Korrektur) # keine Qualität definiert @@ -10592,7 +10593,7 @@ sub __Pv_Fc_Complex_Dnum_Hist { return; } - my $range = calcRange ($chwcc); + my $range = cloud2bin ($chwcc); if(scalar(@efa)) { debugLog ($paref, 'pvCorrection', "Complex Corrf -> Raw Days ($calcd) for average check: ".join " ",@efa); @@ -10612,7 +10613,7 @@ sub __Pv_Fc_Complex_Dnum_Hist { next; } - $histwcc = calcRange ($histwcc); # V 0.50.1 + $histwcc = cloud2bin ($histwcc); # V 0.50.1 if($range == $histwcc) { $pvrl += HistoryVal ($hash, $dayfa, $hour, 'pvrl', 0); @@ -11217,18 +11218,6 @@ sub _aiMakeIdxRaw { return $ridx; } -################################################################ -# Bewölkungs- bzw. Regenrange berechnen -################################################################ -sub calcRange { - my $range = shift; - - #$range = sprintf "%.0f", $range/10; - $range = sprintf "%.0f", $range; - -return $range; -} - ################################################################ # History-Hash verwalten ################################################################ @@ -13305,25 +13294,26 @@ return $bin; sub cloud2bin { my $wcc = shift; - my $bin = $wcc > 95 ? '95' : - $wcc > 90 ? '90' : - $wcc > 85 ? '85' : - $wcc > 80 ? '80' : - $wcc > 75 ? '75' : - $wcc > 70 ? '70' : - $wcc > 65 ? '65' : - $wcc > 60 ? '60' : - $wcc > 55 ? '55' : - $wcc > 50 ? '50' : - $wcc > 45 ? '45' : - $wcc > 40 ? '40' : - $wcc > 35 ? '35' : - $wcc > 30 ? '30' : - $wcc > 25 ? '25' : - $wcc > 20 ? '20' : - $wcc > 15 ? '15' : - $wcc > 10 ? '10' : - $wcc > 5 ? '05' : + my $bin = $wcc == 100 ? '100' : + $wcc > 95 ? '95' : + $wcc > 90 ? '90' : + $wcc > 85 ? '85' : + $wcc > 80 ? '80' : + $wcc > 75 ? '75' : + $wcc > 70 ? '70' : + $wcc > 65 ? '65' : + $wcc > 60 ? '60' : + $wcc > 55 ? '55' : + $wcc > 50 ? '50' : + $wcc > 45 ? '45' : + $wcc > 40 ? '40' : + $wcc > 35 ? '35' : + $wcc > 30 ? '30' : + $wcc > 25 ? '25' : + $wcc > 20 ? '20' : + $wcc > 15 ? '15' : + $wcc > 10 ? '10' : + $wcc > 5 ? '05' : '00'; return $bin; @@ -13335,25 +13325,26 @@ return $bin; sub rain2bin { my $wrp = shift; - my $bin = $wrp > 95 ? '95' : - $wrp > 90 ? '90' : - $wrp > 85 ? '85' : - $wrp > 80 ? '80' : - $wrp > 75 ? '75' : - $wrp > 70 ? '70' : - $wrp > 65 ? '65' : - $wrp > 60 ? '60' : - $wrp > 55 ? '55' : - $wrp > 50 ? '50' : - $wrp > 45 ? '45' : - $wrp > 40 ? '40' : - $wrp > 35 ? '35' : - $wrp > 30 ? '30' : - $wrp > 25 ? '25' : - $wrp > 20 ? '20' : - $wrp > 15 ? '15' : - $wrp > 10 ? '10' : - $wrp > 5 ? '05' : + my $bin = $wrp == 100 ? '100' : + $wrp > 95 ? '95' : + $wrp > 90 ? '90' : + $wrp > 85 ? '85' : + $wrp > 80 ? '80' : + $wrp > 75 ? '75' : + $wrp > 70 ? '70' : + $wrp > 65 ? '65' : + $wrp > 60 ? '60' : + $wrp > 55 ? '55' : + $wrp > 50 ? '50' : + $wrp > 45 ? '45' : + $wrp > 40 ? '40' : + $wrp > 35 ? '35' : + $wrp > 30 ? '30' : + $wrp > 25 ? '25' : + $wrp > 20 ? '20' : + $wrp > 15 ? '15' : + $wrp > 10 ? '10' : + $wrp > 5 ? '05' : '00'; return $bin;