diff --git a/fhem/FHEM/99_MyUtils.pm b/fhem/FHEM/99_MyUtils.pm index 4b0d18674..11fb1e958 100644 --- a/fhem/FHEM/99_MyUtils.pm +++ b/fhem/FHEM/99_MyUtils.pm @@ -312,6 +312,32 @@ sub checkSkip($) return($skipRunter, $skipHoch); } +getTempOutRepaired() +{ + state @temps = (0,0,0,0,0); + state $i = 0; + + my $cnt=scalar@ temps; + my $temp=ReadingsVal("myWH1080", "Temp-outside", 99); + my $n=0; + my $result=$temp; + # Anzahl der zu grossen Abweichungen ermitteln + foreach my $t (@temps) { + if(abs($t-$temp)>5) { + $n+=1; + } + } + # zuviele Abweichungen->Ausreißer->letzten Wert ausgeben (besser Mittelwert ?) + if($n >= 2) { + $result=@temps[$i]; + } + # aktuellen Wert merken + $i=($i+1) % $cnt; + @temps[$i]=$temp; + + return($result); +} + #------------------------------------------ sub RollCheck()