plotAsPng liefert Linien bzw. Graphen nur in Schwarz / Weiß

Begonnen von koeberl2, 24 November 2020, 17:23:41

Vorheriges Thema - Nächstes Thema

koeberl2

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

ndschambar

#1
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 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.

koeberl2

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

Joesky

@ndschambar Danke für den Hinweis, konnte das Problem auch lösen.
_______________
FREI STATT BAYERN

enno

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
Einfacher FHEM Anwender auf Intel®NUC

Roger

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
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

knopf_piano

Hab auf debian bullseye aktualisiert.
sw-plots via telegram.

der fix hilft, plots jetzt farbig

pls check in to trunk!!
zotac nano mit proxmox und ganz viel zeug drauf

knopf_piano

#7
Zitat 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!!

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
zotac nano mit proxmox und ganz viel zeug drauf

rudolfkoenig

Ich habe diesen Beitrag uebersehen, vmtl weil plotAsPng in SVG.pm nicht von mir stammt.
Die erwaehnte Zeile zerstoert CSS Anweisungen, die praezisiert wurden, damit sie nur die SVG-Plots beeinflussen.
Mir fehlt die Fantasie vorzustellen, was der Sinn dieser Anweisung urspruenglich gewesen sein sollte.

Habe die Zeile auskommentiert und eingecheckt.

knopf_piano

zotac nano mit proxmox und ganz viel zeug drauf

Frank_Huber

Guten Morgen,

Seit dem update gestern sind bei mir  alle Linien in den gesendeten Plots schwarz.
RaspiOS Buster und FHEM wurden gestern aktualisiert.

Danke & Grüße
Frank

knopf_piano

Zitat von: Frank_Huber am 23 Februar 2022, 08:32:23
Guten Morgen,

Seit dem update gestern sind bei mir  alle Linien in den gesendeten Plots schwarz.
RaspiOS Buster und FHEM wurden gestern aktualisiert.

Danke & Grüße
Frank

kannst du die Version mal prüfen:

Package: libimage-librsvg-perl
Version: 0.07-8+b8
zotac nano mit proxmox und ganz viel zeug drauf

Frank_Huber

#12
root@FHEM-HOF-BUSTER:~# apt list libimage-librsvg-perl
Auflistung... Fertig
libimage-librsvg-perl/oldstable,now 0.07-8+b5 armhf  [installiert]
root@FHEM-HOF-BUSTER:~#


laut AptToDate Modul ist alles aktuell.
Habe jetzt erstmal einen restore der "alten" SVG.pm gemacht. damit ist erstmal wieder alles i.O.

jonien

Hallo, habe auch seit einigen Tagen nur noch Schwarz Weß Diagramme von meinen Plots die ich mit Telegram versende. Vorab war jahrelang alles gut. Ich nutze die aktuellste Buster Version. Fhem iat aktuell. Bei der Recherche habe ich gelesen, das ca. vor einem Jahr bei einigen Usern dieses Problem schonmal aufgetreten ist. Daraufhin wurde bei einem der letzten Updates eine angepasste 98_SVG.pm eingestellt.

Nachdem ich die aktuelle Änderung hier rückgängig gemacht habe, wird wieder alles farbig dargestellt.
(ziehmlich am Ende der Datei; Forumsverweis ist an Änderungsstelle hinterlegt).

Nach dieser Erfahrung müsste das Problem an einer anderen Stelle liegen. Wäre es ggf. dann möglich die Standartversion (vorherige) wieder herzustellen
LG Jörg

sinus61