mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 09:16:53 +00:00
SetExtension.pm: Fix(?) eventMap handling (Forum #84561)
git-svn-id: https://svn.fhem.de/fhem/trunk@16211 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c1f4aa023b
commit
e2c1bedb44
@ -60,19 +60,18 @@ SetExtensions($$@)
|
||||
|
||||
my $hasOn = ($list =~ m/(^| )on\b/);
|
||||
my $hasOff = ($list =~ m/(^| )off\b/);
|
||||
my $value = Value($name);
|
||||
my $em = AttrVal($name, "eventMap", undef);
|
||||
if($em) {
|
||||
if(!$hasOn || !$hasOff) {
|
||||
$hasOn = ($em =~ m/:on\b/) if(!$hasOn);
|
||||
$hasOff = ($em =~ m/:off\b/) if(!$hasOff);
|
||||
|
||||
if((!$hasOn || !$hasOff) && AttrVal($name, "eventMap", undef)) {
|
||||
if(!$hasOn) {
|
||||
my (undef,$value) = ReplaceEventMap($name, [$name, "on"], 0);
|
||||
$hasOn = ($value ne "on");
|
||||
}
|
||||
if(!$hasOff) {
|
||||
my (undef,$value) = ReplaceEventMap($name, [$name, "off"], 0);
|
||||
$hasOff = ($value ne "off");
|
||||
}
|
||||
# Following is fix for P#1: /B0:on/on-for-timer 300:5Min/
|
||||
# $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) if($cmd ne "?");
|
||||
}
|
||||
|
||||
if(!$hasOn || !$hasOff) { # No extension
|
||||
return "Unknown argument $cmd, choose one of $list";
|
||||
}
|
||||
@ -169,6 +168,7 @@ SetExtensions($$@)
|
||||
}
|
||||
|
||||
} elsif($cmd eq "toggle") {
|
||||
my $value = Value($name);
|
||||
$value = ($1==0 ? "off" : "on") if($value =~ m/dim (\d+)/); # Forum #49391
|
||||
SE_DoSet($name, $value =~ m/^on/ ? "off" : "on");
|
||||
|
||||
|
@ -255,8 +255,8 @@ use vars qw($fhemForked); # 1 in a fhemFork()'ed process, else undef
|
||||
$selectTimestamp = gettimeofday();
|
||||
$cvsid = '$Id$';
|
||||
|
||||
my $AttrList = "alias comment:textField-long eventMap group room ".
|
||||
"suppressReading userReadings:textField-long ".
|
||||
my $AttrList = "alias comment:textField-long eventMap:textField-long ".
|
||||
"group room suppressReading userReadings:textField-long ".
|
||||
"verbose:0,1,2,3,4,5";
|
||||
|
||||
my $currcfgfile=""; # current config/include file
|
||||
@ -3981,7 +3981,7 @@ ReplaceEventMap($$$)
|
||||
}
|
||||
|
||||
# $dir: 0:usr,$str is array pointer, 1:dev, $str is string
|
||||
# perl notation: { dev=>{"re1"=>"Evt1",...}, dpy=>{"re2"=>"Set 1",...}}
|
||||
# perl notation: { dev=>{"re1"=>"Evt1",...}, fw=>{"re1"=>"Set 1",...}}
|
||||
sub
|
||||
ReplaceEventMap2($$$)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user