mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-10 03:06:37 +00:00
eventmap is added to the list of all sets.
git-svn-id: https://svn.fhem.de/fhem/trunk@1684 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
ac4399ff89
commit
7a60cb00d5
30
fhem/fhem.pl
30
fhem/fhem.pl
@ -54,6 +54,7 @@ sub CommandChain($$);
|
|||||||
sub CheckDuplicate($$);
|
sub CheckDuplicate($$);
|
||||||
sub DoTrigger($$);
|
sub DoTrigger($$);
|
||||||
sub Dispatch($$$);
|
sub Dispatch($$$);
|
||||||
|
sub EventMapAsList($);
|
||||||
sub FmtDateTime($);
|
sub FmtDateTime($);
|
||||||
sub FmtTime($);
|
sub FmtTime($);
|
||||||
sub GetLogLevel(@);
|
sub GetLogLevel(@);
|
||||||
@ -1575,6 +1576,12 @@ getAllSets($)
|
|||||||
my $a2 = CommandSet(undef, "$d ?");
|
my $a2 = CommandSet(undef, "$d ?");
|
||||||
$a2 =~ s/.*choose one of //;
|
$a2 =~ s/.*choose one of //;
|
||||||
$a2 = "" if($a2 =~ /^No set implemented for/);
|
$a2 = "" if($a2 =~ /^No set implemented for/);
|
||||||
|
|
||||||
|
my $em = AttrVal($d, "eventMap", undef);
|
||||||
|
if($em) {
|
||||||
|
$em = join(" ", map { $_ =~ s/.*://s; $_ } EventMapAsList($em));
|
||||||
|
$a2 = "$em $a2";
|
||||||
|
}
|
||||||
return $a2;
|
return $a2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2499,6 +2506,19 @@ addToAttrList($)
|
|||||||
$attr{global}{userattr} = join(" ", sort keys %hash);
|
$attr{global}{userattr} = join(" ", sort keys %hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub
|
||||||
|
EventMapAsList($)
|
||||||
|
{
|
||||||
|
my ($em) = @_;
|
||||||
|
my $sc = " "; # Split character
|
||||||
|
my $fc = substr($em, 0, 1); # First character of the eventMap
|
||||||
|
if($fc eq "," || $fc eq "/") {
|
||||||
|
$sc = $fc;
|
||||||
|
$em = substr($em, 1);
|
||||||
|
}
|
||||||
|
return split($sc, $em);
|
||||||
|
}
|
||||||
|
|
||||||
# $dir: 0 = User to Fhem (i.e. set), 1 = Fhem to User (i.e trigger)
|
# $dir: 0 = User to Fhem (i.e. set), 1 = Fhem to User (i.e trigger)
|
||||||
sub
|
sub
|
||||||
ReplaceEventMap($$$)
|
ReplaceEventMap($$$)
|
||||||
@ -2508,16 +2528,10 @@ ReplaceEventMap($$$)
|
|||||||
return $str if(!$em);
|
return $str if(!$em);
|
||||||
my $dname = shift @{$str} if(!$dir);
|
my $dname = shift @{$str} if(!$dir);
|
||||||
|
|
||||||
my $sc = " "; # Split character
|
|
||||||
my $fc = substr($em, 0, 1); # First character of the eventMap
|
|
||||||
if($fc eq "," || $fc eq "/") {
|
|
||||||
$sc = $fc;
|
|
||||||
$em = substr($em, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
my $nstr = join(" ", @{$str}) if(!$dir);
|
my $nstr = join(" ", @{$str}) if(!$dir);
|
||||||
my $changed;
|
my $changed;
|
||||||
foreach my $rv (split($sc, $em)) {
|
my @emList = EventMapAsList($em);
|
||||||
|
foreach my $rv (@emList) {
|
||||||
my ($re, $val) = split(":", $rv, 2); # Real-Event-Regexp:GivenName
|
my ($re, $val) = split(":", $rv, 2); # Real-Event-Regexp:GivenName
|
||||||
next if(!defined($val));
|
next if(!defined($val));
|
||||||
if($dir) { # event -> GivenName
|
if($dir) { # event -> GivenName
|
||||||
|
Loading…
x
Reference in New Issue
Block a user