From ea080739dd7e081ff1352410e5a131f7b185b507 Mon Sep 17 00:00:00 2001 From: justme1968 Date: Sun, 4 Jan 2015 15:29:44 +0000 Subject: [PATCH] 33_readingsGroup.pm: handle , in reading@{...} expressions. see forum: http://forum.fhem.de/index.php/topic,27399.msg240004.html#msg240004 git-svn-id: https://svn.fhem.de/fhem/trunk@7430 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/33_readingsGroup.pm | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/fhem/FHEM/33_readingsGroup.pm b/fhem/FHEM/33_readingsGroup.pm index 57f277375..1d61d7a42 100644 --- a/fhem/FHEM/33_readingsGroup.pm +++ b/fhem/FHEM/33_readingsGroup.pm @@ -144,14 +144,16 @@ readingsGroup_updateDevices($;$) my $multi = @list; for( my $i = 0; $i <= $#list; ++$i ) { my $regex = $list[$i]; - while ($regex && $regex =~ m/^$/ && defined($list[++$i]) ) { + while ($regex + && ( ($regex =~ m/^$/) #handle , in <...> + || ($regex =~ m/@\{/ && $regex !~ m/}$/) ) #handle , in reading@{...} + && defined($list[++$i]) ) { $regex .= ",". $list[$i]; } next if( !$regex ); if( $regex =~ m/^<.*>$/ ) { - # handle <{...}@reading>@device } elsif( $regex =~ m/(.*)@(.*)/ ) { $regex = $1; @@ -481,7 +483,10 @@ readingsGroup_2html($;$) my $name = $name; my $name2 = $name2; my $regex = $list[$i]; - while ($regex && $regex =~ m/^$/ && defined($list[++$i]) ) { + while ($regex + && ( ($regex =~ m/^$/) #handle , in <...> + || ($regex =~ m/@\{/ && $regex !~ m/}$/) ) #handle , in reading@{...} + && defined($list[++$i]) ) { $regex .= ",". $list[$i]; } my $h = $h; @@ -956,9 +961,12 @@ readingsGroup_Notify($$) #foreach my $regex (@list) { for( my $i = 0; $i <= $#list; ++$i ) { my $regex = $list[$i]; - while ($regex && $regex =~ m/^$/ && defined($list[++$i]) ) { + while ($regex + && ( ($regex =~ m/^$/) #handle , in <...> + || ($regex =~ m/@\{/ && $regex !~ m/}$/) ) #handle , in reading@{...} + && defined($list[++$i]) ) { $regex .= ",". $list[$i]; - } + } next if( $reading eq "state" && !$show_state && (!defined($regex) || $regex ne "state") ); my $modifier = ""; if( $regex && $regex =~ m/^([+?!]*)(.*)/ ) {