From 29f27c38e1ca32407b13b8e406cf6dc0a95f3faf Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 26 Feb 2022 10:05:58 +0000 Subject: [PATCH] 98_SVG.pm: add plotAsPngFix attribute (Forum #116138) git-svn-id: https://svn.fhem.de/fhem/trunk@25742 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_SVG.pm | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/fhem/FHEM/98_SVG.pm b/fhem/FHEM/98_SVG.pm index 69a332f58..737b03121 100644 --- a/fhem/FHEM/98_SVG.pm +++ b/fhem/FHEM/98_SVG.pm @@ -82,6 +82,7 @@ SVG_Initialize($) plotmode:gnuplot-scroll,gnuplot-scroll-svg,SVG plotsize plotReplace:textField-long + plotAsPngFix:1,0 startDate title ); @@ -2453,19 +2454,22 @@ plotAsPng(@) } } + my $svgName = $plotName[0]; $FW_RET = undef; - $FW_webArgs{dev} = $plotName[0]; - $FW_webArgs{logdev} = InternalVal($plotName[0], "LOGDEVICE", ""); - $FW_webArgs{gplotfile} = InternalVal($plotName[0], "GPLOTFILE", ""); - $FW_webArgs{logfile} = InternalVal($plotName[0], "LOGFILE", "CURRENT"); + $FW_webArgs{dev} = $svgName; + $FW_webArgs{logdev} = InternalVal($svgName, "LOGDEVICE", ""); + $FW_webArgs{gplotfile} = InternalVal($svgName, "GPLOTFILE", ""); + $FW_webArgs{logfile} = InternalVal($svgName, "LOGFILE", "CURRENT"); $FW_pos{zoom} = $plotName[1] if $plotName[1]; $FW_pos{off} = $plotName[2] if $plotName[2]; ($mimetype, $svgdata) = SVG_showLog("unused"); - my ($w, $h) = split(",", AttrVal($plotName[0],"plotsize","800,160")); + my ($w, $h) = split(",", AttrVal($svgName,"plotsize","800,160")); $svgdata =~ s/<\/svg>/<\/svg>/; - # $svgdata =~ s/\.SVGplot\./\./g; # Forum #116138 / "corrupt" CSS: why? + + # Forum #32791,#116138: some lib versions cannot parse complex CSS selectors + $svgdata =~ s/\.SVGplot\./\./g if(AttrVal($svgName, "plotAsPngFix", 0)); eval { require Image::LibRSVG; @@ -2638,6 +2642,14 @@ plotAsPng(@) 1,1.
+ +
  • plotAsPngFix [0|1]
    + Affects only the plotAsPng function: Some LibRSVG versions cannot cope + with complex CSS selectors, so the resulting PNG is black and white + only. If this attribute is set to 1, the CSS selector complexity will + be reduced. +

  • +
  • plotfunction
    Space value separated list of values. The value will be used to replace @@ -2915,6 +2927,13 @@ plotAsPng(@) Achse links, 1 Achse rechts).

  • + +
  • plotAsPngFix [0|1]
    + Betrifft nur die plotAsPng Funktion: Bestimmte LibRSVG Versionen + können nicht mit komplexen CSS Selektoren umgehen, und das + Ergebnis ist ein schwarz/weiß Bild. Falls dieses Attribut auf 1 + gesetzt wird, werden die CSS Anweisungen vereinfacht. +

  • plotfunction