98_DOIF.pm: fixed problem with indirect timer

git-svn-id: https://svn.fhem.de/fhem/trunk@13253 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
Damian 2017-01-27 19:04:01 +00:00
parent 01711b3860
commit 8e36c646d8

View File

@ -1175,7 +1175,7 @@ sub CheckiTimerDoIf($$$)
return 1 if ($itimer =~ /\[$device\]/); return 1 if ($itimer =~ /\[$device\]/);
for (my $j = 0; $j < $max; $j++) { for (my $j = 0; $j < $max; $j++) {
if ($eventa->[$j] =~ "^(.+): ") { if ($eventa->[$j] =~ "^(.+): ") {
$found = ($itimer =~ /\[$device:$1[:\]]/); $found = ($itimer =~ /\[$device:$1(\]|:.+\]|,.+\])/);
if ($found) { if ($found) {
return 1; return 1;
} }
@ -1480,8 +1480,8 @@ DOIF_TimerTrigger ($)
} }
$ret=DOIF_Trigger ($hash,"") if (ReadingsVal($pn,"mode","") ne "disabled"); $ret=DOIF_Trigger ($hash,"") if (ReadingsVal($pn,"mode","") ne "disabled");
for (my $j=0; $j<$hash->{helper}{last_timer};$j++) { for (my $j=0; $j<$hash->{helper}{last_timer};$j++) {
if ($hash->{localtime}{$j} == $localtime) {
$hash->{timer}{$j}=0; $hash->{timer}{$j}=0;
if ($hash->{localtime}{$j} == $localtime) {
if (!AttrVal($hash->{NAME},"disable","")) { if (!AttrVal($hash->{NAME},"disable","")) {
if (defined ($hash->{interval}{$j})) { if (defined ($hash->{interval}{$j})) {
if ($hash->{interval}{$j} != -1) { if ($hash->{interval}{$j} != -1) {