diff --git a/fhem/FHEM/98_SVG.pm b/fhem/FHEM/98_SVG.pm index 63e8a04d2..f24bfacb1 100755 --- a/fhem/FHEM/98_SVG.pm +++ b/fhem/FHEM/98_SVG.pm @@ -1239,9 +1239,13 @@ SVG_render($$$$$$$$$;$$) my $w = $ow-$nr_left_axis*$axis_width-$nr_right_axis*$axis_width; my $h = $oh-2*$y; # Rect size - my $filter = $srcDesc->{all}; - $filter =~ s/[^: ]*:([^: ]):[^ ]*/$1/g; - $filter = AttrVal($parent_name, "longpollSVG", 0) ? "flog=\" $filter \"" : ""; + my $filter = $srcDesc->{all}." "; + $filter =~ s/ [^: ]*:/ /g; + $filter =~ s/:[^ ]* / /g; + $filter =~ s/(^ | $)//g; + $filter =~ s/ /|/g; + $filter =~ s/"/./g; + $filter = AttrVal($parent_name, "longpollSVG", 0) ? "flog=\"$filter\"" : ""; my %dataIdx; # Build a reverse Index for the dataSource @@ -1250,7 +1254,7 @@ SVG_render($$$$$$$$$;$$) # SVG Header my $svghdr = 'version="1.1" xmlns="http://www.w3.org/2000/svg" '. 'xmlns:xlink="http://www.w3.org/1999/xlink" '. - 'id="SVGPLOT_'.(++$SVG_id).'"'.$filter; + 'id="SVGPLOT_'.(++$SVG_id).'" '.$filter; if(!$styleW) { SVG_pO ''; SVG_pO ''; diff --git a/fhem/www/pgm2/fhemweb.js b/fhem/www/pgm2/fhemweb.js index 04c121018..683f1598e 100644 --- a/fhem/www/pgm2/fhemweb.js +++ b/fhem/www/pgm2/fhemweb.js @@ -334,7 +334,7 @@ FW_doUpdate() FW_widgets[w].updateLine(d); if(d[0].indexOf("-") == -1) // Wont contain - - devs.push(d[0]); + devs.push(d); } for(var w in FW_widgets) diff --git a/fhem/www/pgm2/svg.js b/fhem/www/pgm2/svg.js index 1bc2d25fc..13a19d2d7 100644 --- a/fhem/www/pgm2/svg.js +++ b/fhem/www/pgm2/svg.js @@ -268,8 +268,12 @@ FW_svgUpdateDevs(devs) if(!svg || !svg.firstChild || !svg.firstChild.nextSibling) continue; var flog = svg.firstChild.nextSibling.getAttribute("flog"); + if(!flog) + continue; + log("longpollSVG filter:"+flog); for(var j=0; j < devs.length; j++) { - if(flog !== null && flog.match(" "+devs[j]+" ")) { + var ev = devs[0]+":"+devs[1]; + if(ev.match(flog)) { var e = embArr[i]; var newE = document.createElement("embed"); for(var k=0; k