mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-02 19:15:31 +00:00
SetExtension.pm: Cancel from justme1968 (Forum #53137)
git-svn-id: https://svn.fhem.de/fhem/trunk@11410 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
e51122d425
commit
e8dbb5634e
@ -8,6 +8,25 @@ use warnings;
|
|||||||
sub SetExtensions($$@);
|
sub SetExtensions($$@);
|
||||||
sub SetExtensionsFn($);
|
sub SetExtensionsFn($);
|
||||||
|
|
||||||
|
sub
|
||||||
|
SetExtensionsCancel($)
|
||||||
|
{
|
||||||
|
my ($hash) = @_;
|
||||||
|
$hash = $defs{$hash} if( ref($hash) ne 'ARRAY' );
|
||||||
|
|
||||||
|
return undef if( !$hash );
|
||||||
|
my $name = $hash->{NAME};
|
||||||
|
|
||||||
|
return undef if( !$hash->{SetExtensionTimer} );
|
||||||
|
my $cmd = $hash->{SetExtensionTimer}{CMD};
|
||||||
|
|
||||||
|
RemoveInternalTimer("SE $name $cmd");
|
||||||
|
|
||||||
|
delete $hash->{SetExtensionTimer};
|
||||||
|
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
sub
|
sub
|
||||||
SetExtensions($$@)
|
SetExtensions($$@)
|
||||||
{
|
{
|
||||||
@ -61,10 +80,13 @@ SetExtensions($$@)
|
|||||||
my $param = $a[0];
|
my $param = $a[0];
|
||||||
|
|
||||||
if($cmd eq "on-for-timer" || $cmd eq "off-for-timer") {
|
if($cmd eq "on-for-timer" || $cmd eq "off-for-timer") {
|
||||||
RemoveInternalTimer("SE $name $cmd");
|
SetExtensionsCancel($hash);
|
||||||
return "$cmd requires a number as argument" if($param !~ m/^\d*\.?\d*$/);
|
return "$cmd requires a number as argument" if($param !~ m/^\d*\.?\d*$/);
|
||||||
|
|
||||||
if($param) {
|
if($param) {
|
||||||
|
$hash->{SetExtensionTimer} = {
|
||||||
|
START=>time(), START_FMT=>TimeNow(), DURATION=>$param, CMD=>$cmd
|
||||||
|
};
|
||||||
DoSet($name, $cmd1);
|
DoSet($name, $cmd1);
|
||||||
InternalTimer(gettimeofday()+$param,"SetExtensionsFn","SE $name $cmd",0);
|
InternalTimer(gettimeofday()+$param,"SetExtensionsFn","SE $name $cmd",0);
|
||||||
}
|
}
|
||||||
@ -150,8 +172,10 @@ sub
|
|||||||
SetExtensionsFn($)
|
SetExtensionsFn($)
|
||||||
{
|
{
|
||||||
my (undef, $name, $cmd) = split(" ", shift, 3);
|
my (undef, $name, $cmd) = split(" ", shift, 3);
|
||||||
return if(!defined($defs{$name}));
|
my $hash = $defs{$name};
|
||||||
|
return if(!$hash);
|
||||||
|
|
||||||
|
delete $hash->{SetExtensionTimer};
|
||||||
|
|
||||||
if($cmd eq "on-for-timer") {
|
if($cmd eq "on-for-timer") {
|
||||||
DoSet($name, "off");
|
DoSet($name, "off");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user