From 3d73d2237244a3391e853b8093393e8649cbe1bc Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Thu, 27 Nov 2014 12:45:34 +0000 Subject: [PATCH] 10_FS20.pm: remove on-till, as it is handled by SetExtensions (Forum #29643) git-svn-id: https://svn.fhem.de/fhem/trunk@7070 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_FS20.pm | 51 +------------------------------------- fhem/FHEM/SetExtensions.pm | 2 +- 2 files changed, 2 insertions(+), 51 deletions(-) diff --git a/fhem/FHEM/10_FS20.pm b/fhem/FHEM/10_FS20.pm index c27f6fd2e..914f4379b 100755 --- a/fhem/FHEM/10_FS20.pm +++ b/fhem/FHEM/10_FS20.pm @@ -49,7 +49,7 @@ my %readonly = ( use vars qw(%fs20_c2b); # Peter would like to access it from outside -my $fs20_simple ="off off-for-timer on on-for-timer on-till reset timer toggle"; +my $fs20_simple ="off off-for-timer on on-for-timer reset timer toggle"; my %models = ( fs20fms => 'sender', fs20hgs => 'sender', @@ -121,8 +121,6 @@ FS20_Initialize($) foreach my $k (keys %codes) { $fs20_c2b{$codes{$k}} = $k; } - $fs20_c2b{"on-till"} = 99; - $hash->{Match} = "^81..(04|0c)..0101a001"; $hash->{SetFn} = "FS20_Set"; $hash->{DefFn} = "FS20_Define"; @@ -134,34 +132,6 @@ FS20_Initialize($) "model:".join(",", sort keys %models); } -############################# -sub -Do_On_Till($@) -{ - my ($hash, @a) = @_; - return "Timespec (HH:MM[:SS]) needed for the on-till command" if(@a != 3); - - my ($err, $hr, $min, $sec, $fn) = GetTimeSpec($a[2]); - return $err if($err); - - my @lt = localtime; - my $hms_till = sprintf("%02d:%02d:%02d", $hr, $min, $sec); - my $hms_now = sprintf("%02d:%02d:%02d", $lt[2], $lt[1], $lt[0]); - if($hms_now ge $hms_till) { - Log3 $hash->{NAME}, 4, - "on-till: won't switch as now ($hms_now) is later than $hms_till"; - return ""; - } - - my @b = ($a[0], "on"); - FS20_Set($hash, @b); - my $tname = $hash->{NAME} . "_till"; - CommandDelete(undef, $tname) if($defs{$tname}); - CommandDefine(undef, "$tname at $hms_till set $a[0] off"); - -} - - ################################### sub FS20_Set($@) @@ -196,8 +166,6 @@ FS20_Set($@) } - return Do_On_Till($hash, @a) if($a[1] eq "on-till"); - return "Bad time spec" if($na == 3 && $a[2] !~ m/^\d*\.?\d+$/); my $v = join(" ", @a); @@ -537,7 +505,6 @@ four2hex($$) sendstate
timer
toggle # between off and previous dim val
- on-till # Special, see the note
The set extensions are also supported.

@@ -570,13 +537,6 @@ four2hex($$) from 4 to 8 sec, 1 sec from 8 to 16 sec and so on. If you need better precision for large values, use at which has a 1 sec resolution. -
  • on-till requires an absolute time in the "at" format (HH:MM:SS, HH:MM - or { <perl code> }, where the perl-code returns a time - specification). - If the current time is greater than the specified time, then the - command is ignored, else an "on" command is generated, and for the - given "till-time" an off command is scheduleld via the at command. -

  • @@ -778,7 +738,6 @@ four2hex($$) sendstate
    timer
    toggle # zwischen aus und dem letztern Dim-Wert
    - on-till # Siehe Hinweise

    Die set extensions sind ebenfalls unterstützt.
    @@ -817,14 +776,6 @@ four2hex($$) Wenn eine höhere Genauigkeit bei großen Werten gebraucht wird, dann hilft at mit einer Auflösung von 1Sek. - -
  • on-till setzt eine absolute Zeit im "at" Format voraus (HH:MM:SS, - HH:MM oder { <perl code> }, wobei der perl-code eine Zeit - zurück geben muss). Wenn die aktuelle Zeit größer ist - als die angegebene, dann wird der Befehl ignoriert und ein at-"on" - Befehl erzeugt, sowie für die angegebe "till-time" ein at-"off" - Befehl. -

  • diff --git a/fhem/FHEM/SetExtensions.pm b/fhem/FHEM/SetExtensions.pm index 8e2b4f3e9..3ceda0432 100644 --- a/fhem/FHEM/SetExtensions.pm +++ b/fhem/FHEM/SetExtensions.pm @@ -36,7 +36,7 @@ SetExtensions($$@) # $cmd = ReplaceEventMap($name, $cmd, 1) if($cmd ne "?"); # Has problem with P#2 (Forum #28855): /on-for-timer 300:5Min/on:Ein/ # Workaround for P#1 /on-for-timer 300:5Min/on-for-timer:on-for-timer/B0:on/ - (undef, $value) = ReplaceEventMap($name, [$name, $value], 0); + (undef,$value) = ReplaceEventMap($name, [$name, $value], 0) if($cmd ne "?"); } if(!$hasOn || !$hasOff) { # No extension return "Unknown argument $cmd, choose one of $list";