diff --git a/fhem/FHEM/AttrTemplate.pm b/fhem/FHEM/AttrTemplate.pm index 05d3ec157..34964c623 100644 --- a/fhem/FHEM/AttrTemplate.pm +++ b/fhem/FHEM/AttrTemplate.pm @@ -77,7 +77,8 @@ AttrTemplate_Set($$@) my @list; for my $k (sort keys %templates) { my $h = $templates{$k}; - my $matches = grep /$name/, devspec2array($h->{filter}) if($h->{filter}); + my $matches; + $matches = devspec2array($h->{filter}, undef, [$name]) if($h->{filter}); if(!$h->{filter} || $matches) { push @list, $k; $haveDesc = 1 if($h->{desc}); @@ -97,7 +98,8 @@ AttrTemplate_Set($$@) my @hlp; for my $k (sort keys %templates) { my $h = $templates{$k}; - my $matches = grep /$name/, devspec2array($h->{filter}) if($h->{filter}); + my $matches; + $matches = devspec2array($h->{filter}, undef, [$name]) if($h->{filter}); if(!$h->{filter} || $matches) { push @hlp, "$k: $h->{desc}" if($h->{desc}); } diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 78043f032..41f15a4a1 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -120,7 +120,7 @@ sub concatc($$$); sub configDBUsed(); sub createNtfyHash(); sub createUniqueId(); -sub devspec2array($;$); +sub devspec2array($;$$); sub doGlobalDef($); sub escapeLogLine($); sub evalStateFormat($); @@ -1238,9 +1238,9 @@ AnalyzeCommand($$;$) } sub -devspec2array($;$) +devspec2array($;$$) { - my ($name, $cl) = @_; + my ($name, $cl, $initialList) = @_; return "" if(!defined($name)); if(defined($defs{$name})) { @@ -1262,7 +1262,7 @@ devspec2array($;$) next; } - my @names = sort keys %defs; + my @names = $initialList ? @{$initialList} : sort keys %defs; my @res; foreach my $dName (split(":FILTER=", $l)) { my ($n,$op,$re) = ("NAME","=",$dName);