mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
98_DOIF.pm: card: time slot correction
git-svn-id: https://svn.fhem.de/fhem/trunk@24570 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
bd64672cbc
commit
46cfe22cd8
@ -1385,13 +1385,15 @@ sub collect_setValue
|
|||||||
${$collect}{last_value}=${$collect}{value} if (defined ${$collect}{value});
|
${$collect}{last_value}=${$collect}{value} if (defined ${$collect}{value});
|
||||||
@{$va}=();
|
@{$va}=();
|
||||||
@{$ta}=();
|
@{$ta}=();
|
||||||
|
${$collect}{last}=undef;
|
||||||
} else {
|
} else {
|
||||||
my @rv=splice (@{$va},0,$diff_slots);
|
my @rv=splice (@{$va},0,$diff_slots);
|
||||||
my @rt=splice (@{$ta},0,$diff_slots);
|
my @rt=splice (@{$ta},0,$diff_slots);
|
||||||
if ($diff_slots > 1 and !defined ${$va}[$dim-$diff_slots] and defined ${$collect}{value} and ${$collect}{value} != ${$va}[$dim-$diff_slots-1]) {
|
if ($diff_slots > 1 and !defined ${$va}[$dim-$diff_slots] and defined ${$collect}{last} and ${$va}[$dim-$diff_slots-1] != ${$collect}{last}) {
|
||||||
${$va}[$dim-$diff_slots]=${$collect}{value};
|
${$va}[$dim-$diff_slots]=${$collect}{last};
|
||||||
${$ta}[$dim-$diff_slots]=(int(${$ta}[$dim-$diff_slots-1]/$seconds_per_slot)+1)*60*$seconds_per_slot;
|
${$ta}[$dim-$diff_slots]=(int(${$ta}[$dim-$diff_slots-1]/$seconds_per_slot)+1)*$seconds_per_slot;
|
||||||
}
|
}
|
||||||
|
${$collect}{last}=undef;
|
||||||
for (my $i=@rv-1;$i>=0;$i--) {
|
for (my $i=@rv-1;$i>=0;$i--) {
|
||||||
if (defined ($rv[$i])) {
|
if (defined ($rv[$i])) {
|
||||||
${$collect}{last_value}=$rv[$i];
|
${$collect}{last_value}=$rv[$i];
|
||||||
@ -1404,9 +1406,11 @@ sub collect_setValue
|
|||||||
|
|
||||||
${$collect}{avg} = defined ${$collect}{max_value} ? (${$collect}{max_value}-${$collect}{min_value})/2 + ${$collect}{min_value}: $r;
|
${$collect}{avg} = defined ${$collect}{max_value} ? (${$collect}{max_value}-${$collect}{min_value})/2 + ${$collect}{min_value}: $r;
|
||||||
|
|
||||||
if (!defined ${$va}[$dim-1] or $r >= ${$collect}{avg} and $r > ${$va}[$dim-1] or $r < ${$collect}{avg} and $r < ${$va}[$dim-1]) {
|
if (!defined ${$va}[$dim-1] or ($r >= ${$collect}{avg} and $r > ${$va}[$dim-1] or $r < ${$collect}{avg} and $r < ${$va}[$dim-1])) {
|
||||||
${$va}[$dim-1]=$r;
|
${$va}[$dim-1]=$r;
|
||||||
${$ta}[$dim-1]=$seconds;
|
${$ta}[$dim-1]=$seconds;
|
||||||
|
} elsif (${$va}[$dim-1] != $r) {
|
||||||
|
${$collect}{last}=$r;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user