...
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
|
|
||||||
package main;
|
package main;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use POSIX;
|
use POSIX;
|
||||||
@@ -312,12 +314,39 @@ sub checkSkip($)
|
|||||||
return($skipRunter, $skipHoch);
|
return($skipRunter, $skipHoch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub 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()
|
sub RollCheck()
|
||||||
{
|
{
|
||||||
state $tagalt=0;
|
state $tagalt=0;
|
||||||
state $wachalt=0;
|
state $wachalt=0;
|
||||||
|
|
||||||
my $r;
|
my $r;
|
||||||
my $ndelay = 0;
|
my $ndelay = 0;
|
||||||
my $tempOut= ReadingsVal("myWH1080", "Temp-outside", 99);
|
my $tempOut= ReadingsVal("myWH1080", "Temp-outside", 99);
|
||||||
|
|||||||
Reference in New Issue
Block a user