FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: koeberl2 am 24 November 2020, 17:23:41

Titel: plotAsPng liefert Linien bzw. Graphen nur in Schwarz / Weiß
Beitrag von: koeberl2 am 24 November 2020, 17:23:41
Hallo!

Die FHEM Installation bei mir ist auf einem Raspberry Pi 4 mit 4Gbyte auf Ubuntu 20.04.1 LTS 64bit ausgeführt.
Beim Implementieren des TelegramBot bzw. dem Versenden von SVG-Graphen mittels plotAsPng bin ich drauf gekommen, dass die unterschiedlichen Farben zwar in der Legende korrekt dargestellt werden, allerdings nicht in der Grafik selbst. Die Linien sind alle schwarz.

Siehe auch hier angefügtes File svgDachDb.png.

Im Web-Interface sieht alles normal bzw. in Farbe aus. Siehe auch hier angefügtes File svgDachDb_web_screenshot.png

Zuerst dachte ich, es liegt am cmdSend Befehl vom TelegramBot.
Habe dann festgestellt, dass es wohl eher doch am printAsPng liegt weil der Export in ein File genau so aussieht wie das übertragene File an Telegram (svgDachDb.png), also ohne Farbe bei den Linien.

In anderen, meist recht alten Threads aus diesem Forum wurde noch auf ein Update der 98_SVG.pm bzw. das www/pgm2/svg_style.css verwiesen.
Da mein FHEM up2date ist denke ich nicht, dass alte Versionen der Module bei mir im Einsatz sind.

Die Abhängigkeiten lt. Wiki für printAsPng sind natürlich installiert und aktuell laut apt-get:
libimage-librsvg-perl              0.07-8build5
libgd-graph-perl                   1.54~ds-2
libgd-text-perl                    0.86-9

Gerade auch libimage-librsvg-perl (bzw. Perl Modul Image::LibRSVG), worauf in einigen Threads bei Problemen mit plotAsPng verwiesen wird ist definitiv da und up2date.
Habe auch versucht mit cpan eine neuere Version zu installieren, dürfte allerdings keine zu bekommen sein.


Langer Rede kurzer Sinn.
Hat jemand eine Idee wie ich meine Linien für den File-Export bzw. den TelegramBot in der lt. Web-Interface gewohnten Farbe hinbekomme?


Danke und bleibt gesund!
Markus
Titel: Antw:plotAsPng liefert Linien bzw. Graphen nur in Schwarz / Weiß
Beitrag von: ndschambar am 13 Dezember 2020, 21:10:38
Hi,
ich hatte das gleiche Problem wie du. Damit ich meine Lösung teilen kann, habe ich mich extra registriert.

Drauf gekommen bin ich durch diesen alten Thread (https://forum.fhem.de/index.php?topic=32791.0) hier im Forum. Das Problem hat ausnahmsweise nicht mit dem Stylesheet zu tun, sondern vermutlich mit einer gepatchten libimage-librsvg-perl. Vor dem Update von Ubuntu 18.04LTS auf 20.04LTS ging es bei mir nämlich ebenfalls.

Letzlich muss die damals eingefügte RegEx-Befehlszeile in FHEM/98_SVG.pm auskommentiert (# davorstellen) oder gelöscht werden:

$svgdata =~ s/\.SVGplot\./\./g;
Letzlich sieht die Datei bei mir nun so aus:
--- 98_SVG_old.pm       2020-12-13 21:03:48.024076933 +0100
+++ 98_SVG.pm   2020-12-13 20:52:02.649492067 +0100
@@ -2439,7 +2439,7 @@

   my ($w, $h) = split(",", AttrVal($plotName[0],"plotsize","800,160"));
   $svgdata =~ s/<\/svg>/<polyline opacity="0" points="0,0 $w,$h"\/><\/svg>/;
-  $svgdata =~ s/\.SVGplot\./\./g;
+  #$svgdata =~ s/\.SVGplot\./\./g;

   eval {
     require Image::LibRSVG;

Probier es mal aus!

@rudolfkoenig: Bitte mal reinschauen und ggf. einchecken.
Titel: Antw:plotAsPng liefert Linien bzw. Graphen nur in Schwarz / Weiß
Beitrag von: koeberl2 am 13 Dezember 2020, 22:42:23
Hallo und schönen 3. Advent ndschambar !

Ich danke Dir vielmals, Du hast mein Problem gelöst.
Auskommentieren der von Dir erwähnten Zeile und in Fhem ...
reload 98_SVG.pm... und siehe da, alles in Farbe.

Ich war schon kurz davor manuell auf die neueste Version der Image::LibRSVG umzusteigen (https://debian.pkgs.org/sid/debian-main-arm64/libimage-librsvg-perl_0.07-8+b7_arm64.deb.html).
Das wäre dann das Build 7 gewesen (anstatt Standardmäßig bei Ubuntu 20.04.1 LTS mitgeliefert Build 5). Diese hätte allerdings auch Perl > 5.32.0-4 benötigt und hier schreibt ein User in einem anderen Thread (https://forum.fhem.de/index.php?topic=112649.0), dass er in der 5.32er Version von Perl mit Memory Leaks zu kämpfen hat.

Naja, tut jetzt auch nichts mehr zur Sache.
Mit Deinem Hint geht's ja jetzt und ich kann ansonsten keine Einschränkungen in der Funktion der plotAsPng Funktion erkennen.


Nochmal vielen Dank, dass Du Dein Wissen gepostet und einen User im Forum angelegt hast und eine den Umständen entsprechend schöne Vorweihnachtszeit!
Markus
Titel: Antw:plotAsPng liefert Linien bzw. Graphen nur in Schwarz / Weiß
Beitrag von: Joesky am 16 Januar 2021, 11:38:55
@ndschambar Danke für den Hinweis, konnte das Problem auch lösen.
Titel: Antw:plotAsPng liefert Linien bzw. Graphen nur in Schwarz / Weiß
Beitrag von: enno am 20 Mai 2021, 15:03:16
Thema schon etwas älter, hat mir aber bei der aktuellen Version von FHEM heute auch geholfen.

#$svgdata =~ s/\.SVGplot\./\./g; in der 98_SVG.pm

Gruss
  Enno
Titel: Antw:plotAsPng liefert Linien bzw. Graphen nur in Schwarz / Weiß
Beitrag von: Roger am 22 Mai 2021, 14:47:15
Oh wie schön, ich bin mit dem Problem nicht allein und bei mir hat der Patch auch geholfen.  :)

Ich habe noch ein altes System mit einer älteren Perl-Version: 5.20.2
Da kommen die Farben auch ohne den Patch.

Aber bei meinem Hauptsystem:
Ubuntu 20.04.2 LTS
Perl v5.30.0
waren die Linen bei plotAsPng alle in Schwarz --> durch Entfernen der Zeile
$svgdata =~ s/\.SVGplot\./\./g;in 98_SVG.pm sind sie wie im Browser von FHEMWEB in Farbe.

Vielleicht kann mann das ja offiziell machen?

//Roger
Titel: Antw:plotAsPng liefert Linien bzw. Graphen nur in Schwarz / Weiß
Beitrag von: knopf_piano am 21 August 2021, 20:12:06
Hab auf debian bullseye aktualisiert.
sw-plots via telegram.

der fix hilft, plots jetzt farbig

pls check in to trunk!!
Titel: Antw:plotAsPng liefert Linien bzw. Graphen nur in Schwarz / Weiß
Beitrag von: knopf_piano am 23 Dezember 2021, 22:27:44
Hab auf debian bullseye aktualisiert.
sw-plots via telegram.

der fix hilft, plots jetzt farbig

pls check in to trunk!!

Hi, ist es möglich, den fix einzuchecken?

was mir grad noch aufgefallen ist, dass eine yellow-fill-spur im png als schwarze linie exportiert wird.
bei fill mit grün/blau funktioniert es.

habe aktuell den fix aktiv auf debian bullseye.
Package: libimage-librsvg-perl
Version: 0.07-8+b8

1. anhang: fhemweb screenshot
2. anhang: plotaspng-export