mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-12 16:46:35 +00:00
fhem.pl: Make the event-on-change threshold work with even-min-interval (Forum #30810)
git-svn-id: https://svn.fhem.de/fhem/trunk@7301 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
41db4790fd
commit
f941838426
@ -476,9 +476,7 @@ Gerät dokumentiert.
|
||||
Wenn nicht gesetzt, erzeugt jede Veränderung eines "readings" ein
|
||||
Ereignis, welches z.B. von <a href="#notify">notify</a> oder<a
|
||||
href="FileLog"> FileLog</a> berücksichtigt wird. Wenn gesetzt erzeugen
|
||||
nur Aktualisierungen der eingetragenen "readings" ein Ereignis. Wenn hinter dem
|
||||
Namen eines "readings" ein optionaler Schwellwert über [:threshold] angegeben ist
|
||||
wird das event nur getriggert wenn die Änderungen >= threshold ist.
|
||||
nur Aktualisierungen der eingetragenen "readings" ein Ereignis.
|
||||
</li>
|
||||
|
||||
<a name="event-on-change-reading"></a>
|
||||
@ -486,7 +484,13 @@ Gerät dokumentiert.
|
||||
Dieses Attribut enthält eine durch Kommata getrennte Liste von
|
||||
"readings". Wenn gesetzt, erzeugen nur Veränderungen der gelisteten
|
||||
"readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten
|
||||
"readings" identisch sind, wird kein Ereignis generiert.</li>
|
||||
"readings" identisch sind, wird kein Ereignis generiert.<br>
|
||||
|
||||
Wenn hinter dem Namen eines "readings" eine :Schwelle angegeben ist, wird
|
||||
das Event nur getriggert wenn die Änderung grösser als diese
|
||||
Schwelle ist.
|
||||
</li>
|
||||
|
||||
|
||||
Die unterschiedlichen Bedeutungen von event-on-update-reading und
|
||||
event-on-change-reading sind folgende:
|
||||
|
@ -3671,7 +3671,6 @@ readingsBulkUpdate($$$@)
|
||||
my $eour = $attreour && grep($reading =~ m/^$_$/, @{$attreour});
|
||||
|
||||
# check if threshold is given
|
||||
my $threshold_reached = 1;
|
||||
if( $eocr
|
||||
&& $eocrv[0] =~ m/.*:(.*)/ ) {
|
||||
my $threshold = $1;
|
||||
@ -3681,11 +3680,10 @@ readingsBulkUpdate($$$@)
|
||||
if( !defined($last_value) ) {
|
||||
$hash->{".attreocr-threshold$reading"} = $value;
|
||||
} elsif( abs($value-$last_value) < $threshold ) {
|
||||
$threshold_reached = 0;
|
||||
$eocr = 0;
|
||||
} else {
|
||||
$hash->{".attreocr-threshold$reading"} = $value;
|
||||
}
|
||||
#Log 1, "EOCR:$eocr value: $value last:$last_value threshold: $1 reached: $threshold_reached";
|
||||
}
|
||||
|
||||
# determine if an event should be created:
|
||||
@ -3696,7 +3694,7 @@ readingsBulkUpdate($$$@)
|
||||
# ...and the change greater then the threshold
|
||||
$changed= !($attreocr || $attreour)
|
||||
|| $eour
|
||||
|| ($eocr && ($value ne $readings->{VAL}) && $threshold_reached);
|
||||
|| ($eocr && ($value ne $readings->{VAL}));
|
||||
#Log 1, "EOCR:$eocr EOUR:$eour CHANGED:$changed";
|
||||
|
||||
my @v = grep { my $l = $_;
|
||||
|
Loading…
x
Reference in New Issue
Block a user