GPLOT-Link fehlt, wenn SVG-Devicename und gplot-Dateiname unterschiedlich sind

Begonnen von Flachzange, 11 Oktober 2026, 19:27:09

Vorheriges Thema - Nächstes Thema

Flachzange

Mir ist ein kleiner Fehler mit SVGs aufgefallen, wenn man den verlinkten GPLOT-Editor nutzen möchte.

Ausgangssituation

Ein SVG-Device verwendet eine gplot-Datei, deren Name vom SVG-Devicenamen abweicht (fragt mich nicht, warum die so heißen, historisch entstanden...):

define SVG_Wetter_Luftdruck SVG logdb:SVG_SVG_SVG_Wetter_Luftdruck:HISTORY

Die Internals lauten entsprechend:

NAME       SVG_Wetter_Luftdruck
GPLOTFILE  SVG_SVG_SVG_Wetter_Luftdruck

Problem

In der Detailansicht wird das Internal GPLOTFILE nur als Text angezeigt, nicht als anklickbarer Link zum Bearbeiten der gplot-Datei, wie sonst üblich.

Ursache

In SVG_PEdit() wird der Link per JavaScript eingefügt. Der verwendete Selektor lautet:

$("table.internals div[informid=$gpfEsc-GPLOTFILE]")
  .html("<a href='$link'>$gpf</a>");

Hier wird $gpfEsc (der gplot-Dateiname) verwendet. FHEMWEB erzeugt das informid-Attribut jedoch mit dem SVG-Devicenamen als Präfix. Wenn sich beide Namen unterscheiden, findet der Selektor das Element nicht.

Lösungsvorschlag

Ja, ich könnte die Dateinamen entsprechend der Devices benennen, aber schöner wäre, wenn es auch so funktioniert. Daher:

Den Selektor auf $d (SVG-Devicename) ändern:

Bisher:
$("table.internals div[informid=$gpfEsc-GPLOTFILE]")

Korrigiert:
$("table.internals div[informid=$d-GPLOTFILE]")

Ergebnis

Die Änderung habe ich getestet. Der GPLOTFILE-Link wird anschließend korrekt angezeigt und lässt sich anklicken.

Es handelt sich um einen Interface-Fehler in FHEMWEB. Die eigentliche Plot-Funktion ist nicht betroffen.

Hope that makes sense.

rudolfkoenig

ZitatEin SVG-Device verwendet eine gplot-Datei, deren Name vom SVG-Devicenamen abweicht (fragt mich nicht, warum die so heißen, historisch entstanden...):
Von FHEM generierte SVGs gabs erst, nachdem ich gplot nicht ohne Weiteres auf dem FritzBox 7270 zum Laufen gekriegt habe.
Davor wurden die Grafiken mit gplot berechnet, das SVG Modul startete als gplot Ersatz.


ZitatIn der Detailansicht wird das Internal GPLOTFILE nur als Text angezeigt, nicht als anklickbarer Link zum Bearbeiten der gplot-Datei, wie sonst üblich.
Ich vermute, dass das Absicht war.
Es gibt auch mit FHEM ausgelieferte .gplots, die per autocreate einem Geraet zugeordnet werden.
Wenn man diese Datei aendert, dann wird die Aenderung beim naechsten update entfernt.
Loesung ist ein "set <svgName> copyGplotFile", was die .gplot Datei kopiert mit dem Namen der SVG-Instanz.