Patch: SVG Plot-Typ needles (Hide line, Display plot values & Klick-Wert

Begonnen von mithrandir, 12 November 2026, 17:52:22

Vorheriges Thema - Nächstes Thema

mithrandir

Hallo,

ich habe hier in meinem Setup eine Visualisierung von PV-Erträgen mit needles. Beim Plot-Typ needles funktionierten bisher weder Hide line / Hide other lines (wegen mehrfacher identischer id="line_X" an einzelnen <rect>-Elementen) noch Display plot values (für <rect> deaktiviert) oder die korrekte Wertanzeige beim Anklicken.

Lösung im angehängten Patch:
• 98_SVG.pm: Die sichtbaren Nadeln werden gebündelt als <path id="needle_vis_line_$idx"> gezeichnet, während eine unsichtbare <polyline id="line_$idx"> die Spitzenpunkte für svg.js bereitstellt.
• svg.js: setVisibility animiert beide Elemente synchron; mousemove (Display plot values) und svg_click rasten bei needles automatisch auf den nächstgelegenen echten Datenpunkt ein, sodass immer exakte Nadel-Spitzenwerte statt interpolierter Zwischenwerte oder Klick-Höhen angezeigt werden.

Vielleicht kann das ja noch jmd. anders brauchen. Wenn der Code so ok ist kann es ja vielleicht auch integriert werden.

Hier noch die Config Schnipsel mit denen ich das verwende:
define lp logProxy
attr lp room Logging

# 1. FileLog für die Stundenwerte des laufenden Tages
define FileLog_PV_Stundenwerte FileLog ./log/pv_stundenwerte-%Y-%m-%d.log PV_Stunden_Log:.*
attr FileLog_PV_Stundenwerte nrarchive 120
attr FileLog_PV_Stundenwerte createGluedFile 1
attr FileLog_PV_Stundenwerte logtype text
attr FileLog_PV_Stundenwerte room Logging

define FileLog_PV_Tageswerte FileLog ./log/pv_tageswerte-%Y-%m.log (Sungrow_(Erzeugung|Einspeisung|Direktverbrauch|Bezug|Ladung|Entladung):.*EnergyDayLast:.*|(Hausverbrauch|AutarkieQuote|EigenverbrQuote):Gestern:.*)
attr FileLog_PV_Tageswerte archivedir ./log
attr FileLog_PV_Tageswerte logtype text
attr FileLog_PV_Tageswerte nrarchive 120
attr FileLog_PV_Tageswerte room Logging
attr FileLog_PV_Tageswerte createGluedFile 1


define FileLog_PV_Monatswerte FileLog ./log/pv_monatswerte-%Y.log (Sungrow_(Erzeugung|Einspeisung|Direktverbrauch|Bezug|Ladung|Entladung):.*EnergyMonthLast:.*|(Hausverbrauch|AutarkieQuote|EigenverbrQuote):Vormonat:.*)
attr FileLog_PV_Monatswerte archivedir ./log
attr FileLog_PV_Monatswerte logtype text
attr FileLog_PV_Monatswerte room Logging
attr FileLog_PV_Monatswerte createGluedFile 1

# 1. FileLog für die Jahresabschlusswerte (wird jeweils am 01.01. geschrieben)
define FileLog_PV_Jahreswerte FileLog ./log/pv_jahreswerte.log (Sungrow_(Erzeugung|Einspeisung|Direktverbrauch|Bezug|Ladung|Entladung):.*EnergyYearLast:.*|Hausverbrauch:Vorjahr:.*)
attr FileLog_PV_Jahreswerte archivedir ./log
attr FileLog_PV_Jahreswerte logtype text
attr FileLog_PV_Jahreswerte room Logging
attr FileLog_PV_Jahreswerte createGluedFile 1

# 1. Tagesverlauf
define SVG_PV_Tag SVG lp:SVG_PV_Tag:CURRENT
attr SVG_PV_Tag alias PV-Bilanz Tag (Wh)
attr SVG_PV_Tag group PV-Diagramme
attr SVG_PV_Tag plotsize 800,300
attr SVG_PV_Tag room PV-Statistik
attr SVG_PV_Tag fixedrange day
attr SVG_PV_Tag title "PV-Bilanz Tag (Wh)"
attr SVG_PV_Tag sortby 01

define SVG_PV_Monat SVG lp:SVG_PV_Monat:CURRENT
attr SVG_PV_Monat alias PV-Bilanz Monat
attr SVG_PV_Monat fixedrange month
attr SVG_PV_Monat group PV-Diagramme
attr SVG_PV_Monat plotsize 800,300
attr SVG_PV_Monat room PV-Statistik,Plots
attr SVG_PV_Monat sortby 02
attr SVG_PV_Monat title "PV-Bilanz Monat"
attr SVG_PV_Monat sortby 02


# 3. Balkendiagramm Jahr (Monatswerte aus dem FileLog)
define SVG_PV_Jahr SVG lp:SVG_PV_Jahr:CURRENT
attr SVG_PV_Jahr alias PV-Bilanz Jahr
attr SVG_PV_Jahr group PV-Diagramme
attr SVG_PV_Jahr plotsize 800,300
attr SVG_PV_Jahr room PV-Statistik
attr SVG_PV_Jahr fixedrange year
attr SVG_PV_Jahr title "PV-Bilanz Jahr"
attr SVG_PV_Jahr sortby 03

# 4. Balkendiagramm über alle Jahre
define SVG_PV_Gesamt SVG lp:SVG_PV_Gesamt:CURRENT
attr SVG_PV_Gesamt alias PV-Bilanz Gesamt (Jahreswerte)
attr SVG_PV_Gesamt group PV-Diagramme
attr SVG_PV_Gesamt plotsize 800,300
attr SVG_PV_Gesamt room PV-Statistik
attr SVG_PV_Gesamt fixedrange 10years
attr SVG_PV_Gesamt title "PV-Bilanz Gesamt (Jahreswerte)"
attr SVG_PV_Gesamt sortby 04

Edit: Hab noch der Vollständigkeit halber meine gplot Files angehängt.
LG

mith