FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: jlp2097 am 16 März 2015, 20:02:17

Titel: 98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 16 März 2015, 20:02:17
Hallo rudolfkoenig, werter Maintainer des SVG-Moduls :)

ich würde gerne die gnuplot-Unterstützung im FHEM etwas auf Vordermann zu bringen. Als erstes möchte ich ein paar offensichtliche Sachen fixen (z.B. Unterstützung für mehrere Dateien), danach würde ich auch gerne den zusätzlichen Modus "gnuplot-scroll-svg" o.ä. einbringen und den aktuellen SVG gplot-Editor auch für gnuplot verfügbar machen. Das sollte nach einer ersten Recherche alles mit sehr wenig Aufwand und sehr wenig Code machbar sein.

Wenn ich mir das SVN anschaue, scheinst du der Maintainer von diesem Modul zu sein. von daher meine Frage: kann ich die offensichtlichen Fixes dir irgendwie als Patch schicken? Ich bin kein FHEM-Entwickler und habe aktuell auch nicht vor, mich außerhalb dieses Teilbereiches groß einzubringen (dafür funktioniert FHEM sonst zu gut :) ) . Ich fände es jedoch gut, wenn meine Fixes mit in trunk eingehen könnten. Mich würde es freuen, wenn Gnuplot FHEM erhalten bleibt, die letzten Kommentare bei den Commits der 98_SVG.pm klangen ja nicht allzu optimistisch.

Von daher die zentrale Frage: besteht Interesse an entsprechenden Patches oder ist für dich die Gnuplot-Unterstützung auf der baldigen Löschliste?

Viele Grüße,
Michael
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: betateilchen am 16 März 2015, 20:11:53
Ist denn gnuplot für fhem überhaupt noch aktiv gesetzt oder ist das nicht nur noch aus historischen Gründen vorhanden und wurde durch die SVG Generierung abgelöst?
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 16 März 2015, 20:45:09
Hi betateilchen,

also zumindestens in meinem 1-2 Wochen alten Stand lässt es sich ganz normal über das Attribut plotmode im entsprechenden FHEMWEB-Eintrag auswählen und einstellen. Und da Gnuplot halt doch mehr Features unterstützt und es sich seeeehr viele Beispiele im Internet finden lassen, nutze ich es lieber. Mir fehlen lediglich ein paar Bugfixes und die SVG-Darstellung, welche nahezu kostenlos (ein paar Zeilen) für FHEM über das SVG-Terminal von Gnuplot ergänzt werden kann.

-Michael
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: rudolfkoenig am 17 März 2015, 10:12:59
Eigentlich will ich von gnuplot weg, da es komplizierter zum Aufsetzen und zum Stylen ist, und es keine Interaktion zulaesst. Weiterhin habe ich damals nicht hingekriegt, dass mehrere Plots in einem Raum "ordentlich" ausschauen, d.h. die Zeitangaben exakt untereinander sind.

Wenn die Patches sich in Grenzen halten, dann habe ich aber kein Problem, sie einzubauen.
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 18 März 2015, 22:24:23
Hi,

danke für die Information, dann mache ich mich mal an die Arbeit. Wie soll ich denn die Patches erstellen? Ich hätte diff -u altdatei neudatei > patchdatei gemacht. Wenn es anders gewünscht ist, gib mir bitte kurz Bescheid. Die Patches würde ich an diesen Thread anhängen, okay?

Eine Frage nebenbei: hat der Modus "gnuplot" irgendwelche Alleinstellungsmerkmale gegenüber gnuplot-scroll bzw. SVG? Ich sehe keinen...

Viele Grüße,
Michael
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: rudolfkoenig am 19 März 2015, 07:27:28
Gnuplot liest die Daten direkt aus der Datei, und verzichtet auf FileLog-Get, duerfte also schneller sein.
Dafuer funktioniert Zoom/Scroll nicht. Spiegelt die Geschichte, wie alles nach und nach entstand.
Titel: Patch - Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 24 März 2015, 20:43:41
Hallo,

anbei der erste Patch. Ich habe heute (24.03.) ein update gemacht und den Patch dagegen erstellt. Der Patch lässt sich im FHEM-Unterordner mit "patch < dateiname.patch" einspielen.

Dieser Patch macht hauptsächlich folgendes:
1. Identischen und somit redundanten Code zwischen gnuplot und gnuplot-scroll entfernen. Hierdurch fallen einige Zeilen weg.
Darüber hinaus werden zwei Bugs behoben:
2. Die temporär erzeugten Datenfiles werden im Modus gnuplot-Modus nicht gelöscht. Dieser Bug wurde quasi umsonst durch Punkt 1 behoben.
3. gnuplot und gnuplot-scroll den Umgang mit mehreren Quellen beibringen. Das ist nicht ganz umsonst, hier sind ca. 5 Zeilen für die foreach-Schleife hinzugekommen.

Ich habe den Patch seit einer Woche getestet, bei mir funktioniert er. Wenn du trotzdem kurz die foreach-Schleifen gegenchecken könntest, wäre ich dankbar. Bei Rückfragen bin ich immer hier erreichbar :-)

Als nächstes würde ich einen gnuplot-scroll-svg Modus einbauen und noch einen ziemlich obskuren Bug fixen.

-Michael
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: rudolfkoenig am 25 März 2015, 08:13:13
Ich vermute du hast den Sinn von gnuplot nicht verstanden: mit dieser Variante liest gnuplot die Daten direkt, ohne FileLog-get, damit es schneller ist, und damit es nicht von dem Code in FileLog abhaengt. Dein Patch entfernt die Vorteile, und behaelt die Nachteile der Methode.
Ich bestehe aber nicht auf die Unterstuetzung aller gnuplot-Varianten (die offensichtlich nicht verwendet werden), mir wuerde gnuplot-scroll oder gnuplot-scroll-svg alleine auch reichen. Bzw. ich brauche gnuplot-* gar nicht, ich bin eher fuer die Verlagerung der Berechnung ins Browser (jsSVG).
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 25 März 2015, 19:28:20
Hallo,

in der Tat - ich kann dir nicht ganz folgen. Das konnte ich auch schon bei der ersten Antwort nicht ganz, habe aber gedacht, dass du vielleicht von Code redest, der in anderen Dateien liegt. Vielleicht hätte ich explizit nochmal nachhaken sollen.

Warum kann ich dir nicht folgen: Der Code, den mein Patch entfernt, ist zwischen gnuplot und gnuplot-scroll absolut identisch (inklusive FW_fC-Aufruf). Im aktuellen Trunk (ohne meinen Patch) sind das die Zeilen 989-1011 für gnuplot bzw. 1016-1038 für gnuplot-scroll. Die einzigen beiden Unterschiede sind die unterschiedliche xrange-Zeile sowie das fehlende unlinken bei gnuplot. Daher konnte ich deine ursprüngliche Antwort, dass gnuplot schneller sein soll, auch nicht wirklich nachvollziehen bzw. ich sehe keine Vorteile vom reinen gnuplot-Modus...

Jetzt wage ich mal als blutiger FHEM-Programmmier-Einsteiger eine sehr gewagte Frage an den FHEM-Guru (bitte nicht hauen, falls ich falsch liege  ;)): kann es sein, dass du dich irrst oder dein Wissen sich auf ältere Stände bezieht ;) ? Falls nicht, bitte ich um Erleuchtung...

Viele Grüße,
Michael
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: rudolfkoenig am 25 März 2015, 20:37:32
Du hast Recht mit der Gleichheit, irgendwann zwischen 5.5 und 5.6 ist die "direkte" Variante, was ich gerade beschrieben habe, verloren gegangen. In diesem Form hat plotmode=gnuplot gar keine Daseinsberechtigung, und sollte entfernt werden.
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 25 März 2015, 20:50:17
Puh, Glück gehabt :-) Was heißt das für meinen Patch bzw. für weitere Anpassungen?
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: rudolfkoenig am 26 März 2015, 07:40:57
Kannst du nicht gleich die vollstaendige Variante (mit SVG) posten, und den dann ohne gnuplot und von mir aus auch gerne ohne gnuplot-scroll Unterstuetzung.
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 17 Oktober 2015, 20:08:40
Hi,

anbei die angesprochenen Patches, welche ich seit dem letzten Forenbeitrag (März) bei mir regelmäßig nutze. Seit der Beginn der Heizsaison nochmal etwas extensiver, daher bin ich mir relativ sicher, dass der Code zumindest nicht mehr Bugs besitzt, als vorher auch schon drin waren ;)

Der Code macht folgendes:

1. Entfernt gnuplot (aber lässt gnuplot-scroll drin!)
2. Fügt gnuplot-scroll-svg hinzu
3. Fixt ein oder zwei Bugs, die auch im bisherigen gnuplot-Code enthalten waren bei Verwendung mehrerer Datenquellen
4. Passt die Dokumentation in FHEMWEB bzw. SVG.pm entsprechend an.

Ich habe heute, 17.10. ein Update gemacht und dagegen die Patches erstellt. Wenn diese aus deiner Sicht ok sind, kannst du die bitte comitten? Falls nicht - woran hakt es? Gibt es beispielsweise noch irgendwo Dokumentation, die ich ergänzen müsste?

Den Patch für 98_SVG.pm kann ich auch gerne aufteilen in drei einzelne Patches, die die Codeanpassungen etwas leichter ersichtlich machen. Wenn dir das lieber ist als der einzelne Patch, kann ich auch gerne die drei Einzelpatches hochladen.
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: rudolfkoenig am 21 Oktober 2015, 19:45:09
Habs eingecheckt.
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 21 Oktober 2015, 21:06:35
Danke, dann brauche ich die Patches jetzt nicht mehr parallel pflegen. Darüber hinaus eine Frage: ich bin eher selten im Forum (falls hierzu Fragen aufkommen) - soll ich noch irgendwo anders ein Beispiel dokumentieren?
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: rudolfkoenig am 21 Oktober 2015, 21:13:39
Je nach Geduld hier oder in der Wiki.
Du koenntest auch diese Diskussion fuer Benachrichtigung markieren.
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 17 Juni 2016, 19:29:18
Hi,

anbei ein weiterer Patch für die Verbesserung von gnuplot-*.

Der Patch macht folgendes: statt für die gnuplot-Datenholung mehrfach FW_fC aufzurufen, wird SVG_getData genutzt. Dies hat mehrere Vorteile:
- Es behebt ein paar Bugs der aktuellen Implementierung (z.B. falsche Reihenfolge von Datenlinien bei der Nutzung mehrerer FileLogs für einen Plot)
- Code-Vereinfachung: es ist weniger Code erforderlich und es findet mehr Code-Reuse statt
- Neben FileLogs wird dadurch DbLog unterstützt (!)
- Vermutlich ist es auch minimal schneller, aber das ist eher Vermutung als gemessene Tatsache

Ich nutze Ihn bei mir seit mehreren Monaten und konnte keine negativen Auswirkungen feststellen. Wenn du den Patch für gut befindest, kannst du Ihn bitte einchecken?
-Michael
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: rudolfkoenig am 18 Juni 2016, 18:47:36
Habe die Aenderungen eingecheckt.
Titel: Antw:98_SVG.pm: Ausbau / Verbesserung Gnuplot-Unterstützung
Beitrag von: jlp2097 am 18 Juni 2016, 20:09:39
Danke  :)