Bitte um Review: Erweiterung „with points“ für SVG-Plots (98_SVG.pm)

Begonnen von WW, 04 Februar 2026, 17:30:15

Vorheriges Thema - Nächstes Thema

WW

Hallo zusammen,

ich habe eine kleine, rückwärtskompatible Erweiterung an 98_SVG.pm vorgenommen und bitte um Review.

Inhalt der Änderung:
    • Erweiterung von with points um auswählbare Markerformen (di, ci, sq, tr, td, pl, mi, cr)
    • optionales Fill-Flag über ein f / F als drittes Zeichen im Shape-Code (z. B. points:sqF:6)
    • Größe optional als dritter Parameter
    • SVG-Ausgabe über passende Primitive (circle, rect, polygon, line)
    • Aktualisierung der SVG-Dokumentation (html + html_de)

Beispiele:
with points:sqF:6
with points:tr:4
with points:ci

Der Diff enthält ausschließlich die funktionalen Änderungen sowie die zugehörige Doku, keine reinen Whitespace- oder Formatänderungen.

Neue Datei und Diff sind angehängt – Feedback oder Verbesserungsvorschläge sind willkommen.

Vielen Dank fürs Drüberschauen!

Viele Grüße
Willi
FHEM 6.x im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl), Azzurro-WR/Pylontech-Bat., Lambda-Wärmepumpe

WW

Update:

Sorry, ich habe den ursprünglich hochgeladenen Diff durch eine korrigierte Version ersetzt.

Ursache war ein Fehler im Parsing der with ...-Angaben, der inzwischen behoben ist.
Der neue Diff arbeitet rein lesend auf der Plot-Zeile und verändert den gnuplot-Code nicht mehr.

Bitte nur noch den aktuellen Diff beachten – die relevanten Änderungen sind dort im Code ausführlich kommentiert.

Im Anhang noch ein Beispiel meiner Anwendung.

Danke fürs Drüberschauen und für jedes Feedback 👍
FHEM 6.x im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl), Azzurro-WR/Pylontech-Bat., Lambda-Wärmepumpe

rudolfkoenig

Ich habe die Idee uebernommen, und eine geaenderte Version eingecheckt:
- statt den Abkuerzungen mit zwei Buchstaben habe ich die Bezeichner ausgeschrieben (plot:circle, etc): das spart Doku, insb. beim Plot-Editor.
- wenn man die Breite nicht explizit spezifiziert, dann wird lw dafuer verwendet, das vereinfacht die Bediendung im Plot-Editor
- f am Ende fuer Fill ist weggefallen: das wird per Style ausgewaehlt, wie bei den Anderen.

Den Patch-Abschnitt mit "Der Code missbraucht den s///-Operator" verstehe ich nicht: es wird doch nur die temporaere Variable $pTemp geaendert.
Kannst Du mir bitte einen Beispiel nennen?
Wie auch immer, ich habe den Abschnitt so umgebaut, dass man auf $pTemp verzichten kann.

WW

Lieber Rudi,

erst einmal vielen Dank für die prompte Reaktion. Da ich erst Anfang der Woche wieder zu Hause bin und auch noch nicht deine Änderungen sehe, vorab nur ein paar Anmerkungen.

Zitat von: rudolfkoenig am 06 Februar 2026, 20:17:32- wenn man die Breite nicht explizit spezifiziert, dann wird lw dafuer verwendet, das vereinfacht die Bediendung im Plot-Editor

Geht damit nicht ein Freiheitsgrad verloren? Mein Vorschlag benutzte "lw" für die Dicke der Striche (wie z.B. auch bei "line") und den Parameter nach dem 2-ten ":" (z.B. "with points:ci:6) für die Größe der Symbole (vergl mit den langen Minus-Strichen in der Grafik "Letzter Monat: COP(ges.) ..." in der png-Datei im letzen Post.

Zitat von: rudolfkoenig am 06 Februar 2026, 20:17:32...
Den Patch-Abschnitt mit "Der Code missbraucht den s///-Operator" verstehe ich nicht: ...

Beantworte ich Anfang der Woche.

LG
Willi
FHEM 6.x im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl), Azzurro-WR/Pylontech-Bat., Lambda-Wärmepumpe