From 571cf038b4a660577cd1465ff67009273c8d4030 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Sat, 7 Dec 2013 14:46:07 +0000 Subject: [PATCH] fhem.pl: added eval to devspec filter git-svn-id: https://svn.fhem.de/fhem/trunk@4338 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index da0f7142c..8b88936da 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -756,7 +756,7 @@ AnalyzePerlCommand($$) { my ($cl, $cmd) = @_; - $cmd =~ s/\\ *\n/ /g; # Multi-line + $cmd =~ s/\\ *\n/ /g; # Multi-line. Probably not needed anymore # Make life easier for oneliners: %value = (); @@ -877,11 +877,19 @@ devspec2array($) my @res; foreach my $dName (split(":FILTER=", $name)) { my ($n,$op,$re) = ("NAME","=",$dName); - ($n,$op,$re) = ($1,$2,$3) if($dName =~ m/^([^!]*)(=|!=)(.*)$/); + ($n,$op,$re) = ($1,$2,$3) if($dName =~ m/^([^!]*)(=|!=)(.*)$/); + ($n,$op,$re) = ($1,"eval","") if($dName =~ m/^{(.*)}$/); @res=(); foreach my $d (@names) { next if($attr{$d} && $attr{$d}{ignore}); + + if($op eq "eval") { + my $exec = EvalSpecials($n, %{{"%NAME"=>$d}}); + push @res, $d if(AnalyzePerlCommand(undef, $exec)); + next; + } + my $hash = $defs{$d}; my $val = $hash->{$n}; if(!defined($val)) {