diff --git a/fhem/FHEM/91_watchdog.pm b/fhem/FHEM/91_watchdog.pm index f69e15d03..d3c3e9365 100755 --- a/fhem/FHEM/91_watchdog.pm +++ b/fhem/FHEM/91_watchdog.pm @@ -47,8 +47,13 @@ watchdog_Define($$) $ntfy->{CMD} = $command; - $ntfy->{STATE} = ($re1 eq ".") ? "active" : "defined"; - watchdog_Activate($ntfy) if($ntfy->{STATE} eq "active"); + if($re1 eq ".") { + watchdog_Activate($ntfy) + + } else { + $ntfy->{STATE} = "defined"; + + } return undef; } @@ -71,12 +76,15 @@ watchdog_Notify($$) for (my $i = 0; $i < $max; $i++) { my $s = $dev->{CHANGED}[$i]; $s = "" if(!defined($s)); + my $dotTrigger = ($ln eq $n && $s eq "."); # trigger w . + my $dontReAct = AttrVal($ln, "regexp1WontReactivate", 0); if($ntfy->{STATE} =~ m/Next:/) { + if($n =~ m/^$re2$/ || "$n:$s" =~ m/^$re2$/) { RemoveInternalTimer($ntfy); - if($re1 eq $re2 || $re1 eq ".") { + if(($re1 eq $re2 || $re1 eq ".") && !$dontReAct) { watchdog_Activate($ntfy); return ""; @@ -85,14 +93,20 @@ watchdog_Notify($$) } + } elsif($n =~ m/^$re1$/ || "$n:$s" =~ m/^$re1$/) { + watchdog_Activate($ntfy) if(!$dontReAct); + } - } + } elsif($ntfy->{STATE} eq "defined") { + if($dotTrigger || # trigger w . + ($n =~ m/^$re1$/ || "$n:$s" =~ m/^$re1$/)) { + watchdog_Activate($ntfy) + } + + } elsif($dotTrigger) { + $ntfy->{STATE} = "defined"; # trigger w . - if(($ln eq $n && $s eq ".") || # trigger w . - (($n =~ m/^$re1$/ || "$n:$s" =~ m/^$re1$/) && - !AttrVal($ln, "regexp1WontReactivate", 0))) { - watchdog_Activate($ntfy) } } @@ -130,5 +144,4 @@ watchdog_Undef($$) return undef; } - 1; diff --git a/fhem/docs/commandref.html b/fhem/docs/commandref.html index 33872cad6..8928dcb52 100644 --- a/fhem/docs/commandref.html +++ b/fhem/docs/commandref.html @@ -7260,9 +7260,11 @@ href="http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=29870">U