98_DOIF.pm: time check in perl mode fixed

git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@17380 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
Damian 2018-09-21 13:28:15 +00:00
parent 4702cfc88b
commit 1658ffe740

View File

@ -1585,15 +1585,13 @@ DOIF_CheckTimers($$$$)
my $end; my $end;
my $intervaltimer; my $intervaltimer;
if ($timer !~ /^\s*(\[.*\]|\{.*\}|\(.*\)|\+.*|[0-9][0-9]:.*|:[0-5][0-9])$/ and $hash->{MODEL} eq "Perl") {
return ($timer,"no timer");
}
$timer =~ s/\s//g; $timer =~ s/\s//g;
($timer,$days)=SplitDoIf('|',$timer); ($timer,$days)=SplitDoIf('|',$timer);
$days="" if (!defined $days); $days="" if (!defined $days);
($timer,$intervaltimer)=SplitDoIf(',',$timer); ($timer,$intervaltimer)=SplitDoIf(',',$timer);
($time,$end)=SplitDoIf('-',$timer); ($time,$end)=SplitDoIf('-',$timer);
if (defined $intervaltimer) { if (defined $intervaltimer) {
if (!defined $end) { if (!defined $end) {
return($timer,"intervaltimer without time interval"); return($timer,"intervaltimer without time interval");
@ -1601,12 +1599,18 @@ DOIF_CheckTimers($$$$)
} }
$i=$hash->{helper}{last_timer}++; $i=$hash->{helper}{last_timer}++;
if (defined $time) { if (defined $time) {
if ($time !~ /^\s*(\[.*\]|\{.*\}|\(.*\)|\+.*|[0-9][0-9]:.*|:[0-5][0-9])$/ and $hash->{MODEL} eq "Perl") {
return ($timer,"no timer");
}
($result,$err) = DOIF_getTime($hash,$condition,$time,$trigger,$i,$days); ($result,$err) = DOIF_getTime($hash,$condition,$time,$trigger,$i,$days);
return ($result,$err) if ($err); return ($result,$err) if ($err);
} else { } else {
return($timer,"no timer defined"); return($timer,"no timer defined");
} }
if (defined $end) { if (defined $end) {
if ($end !~ /^\s*(\[.*\]|\{.*\}|\(.*\)|\+.*|[0-9][0-9]:.*|:[0-5][0-9])$/ and $hash->{MODEL} eq "Perl") {
return ($timer,"no timer");
}
($result,$err) = DOIF_getTime($hash,$condition,$end,$trigger,$hash->{helper}{last_timer}++,$days); ($result,$err) = DOIF_getTime($hash,$condition,$end,$trigger,$hash->{helper}{last_timer}++,$days);
return ($result,$err) if ($err); return ($result,$err) if ($err);
} }