From cc412566e61b6eefcfc31aa68ce0fb5ec3eff10e Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 28 Nov 2015 15:44:47 +0000 Subject: [PATCH] 90_at.pm: fix onetime at after reboot (Forum #44819) git-svn-id: https://svn.fhem.de/fhem/trunk@10035 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/90_at.pm | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/fhem/FHEM/90_at.pm b/fhem/FHEM/90_at.pm index 087b65dac..9c7772f28 100755 --- a/fhem/FHEM/90_at.pm +++ b/fhem/FHEM/90_at.pm @@ -124,8 +124,13 @@ at_Define($$) return $ret if($ret); } else { + my $fmt = FmtDateTime($nt); $hash->{TRIGGERTIME} = $nt; - $hash->{TRIGGERTIME_FMT} = FmtDateTime($nt); + $hash->{TRIGGERTIME_FMT} = $fmt; + if($hash->{PERIODIC} eq "no") { # Need for restart + $fmt =~ s/ /T/; + $hash->{DEF} = $fmt." ".$hash->{COMMAND}; + } RemoveInternalTimer($hash); InternalTimer($nt, "at_Exec", $hash, 0); $hash->{NTM} = $ntm if($rel eq "+" || $fn); @@ -295,25 +300,7 @@ at_State($$$$) if($vt eq "state" && $val eq "inactive") { readingsSingleUpdate($hash, "state", "inactive", 1); - return undef; } - - return undef if($hash->{DEF} !~ m/^\+\d/ || - $val !~ m/Next: (\d\d):(\d\d):(\d\d)/); - - my ($h, $m, $s) = ($1, $2, $3); - my $then = ($h*60+$m)*60+$s; - my $now = time(); - my @lt = localtime($now); - my $ntime = ($lt[2]*60+$lt[1])*60+$lt[0]; - return undef if($ntime > $then); - - my $name = $hash->{NAME}; - RemoveInternalTimer($hash); - InternalTimer($now+$then-$ntime, "at_Exec", $hash, 0); - $hash->{NTM} = "$h:$m:$s"; - $hash->{STATE} = $val; - return undef; }