Hallo zusammen,
ich hab auf einer Seite drei SVG Plots für das aktuelle und die beiden vorherigen Jahre (Verbrauchsvergleich). (Diese in ein SVG zu packen wird mir zu unübersichtlich).
Per fixedrange kann ich entsprechend die Jahre festlegen(year 0, year -1, year -2) - das funktioniert.
Mit plotReplace möchte ich den Titel setzen - mit dem aktuell angezeigtem Jahr. Derzeit setze ich am Anfang des Jahres die Titel entsprechend für das aktuelle Jahr sowie $year-1 und $year-2. Das funktioniert auch,
Wenn ich nun auf der Seite durch die Plots blättere, dann werden die Daten korrekt angezeigt - die Achsenbeschriftung adaptiert sich - aber der Titel ändert sich (natürlich) nicht. Gibt es eine Möglichkeit, den Titel entsprechend des angezeigten Intervals anzuzeigen?
Ich habe bereits
title={ return 'Verbrauch '.($year-1); }(und ähnliche) für plotReplace versucht. Wobei $year, welches wohl laut meiner Interpretation der Fehlermeldung nicht zur Verfügung steht zur Laufzeit wenn der chart gebildet wird, ja dann auch nur eine Referenz des aktuellen Jahres wäre und nicht unmittelbar dem Jahr der Anzeige entspricht.
Kann ich irgendwas wie
title= { return 'Verbrauch '.$data(timestamp1); }oder ähnliches für PlotReplace nutzen?
Danke für Vorschläge. :)
Grundsätzlich steht ja das dargestellte Jahr unten links im SVG plot, im Beispiel 2025.
Man müsste rausfinden, in welcher Variablen diese Angabe steckt und ob man darauf mit plotReplace zugreifen kann.
--
Bildschirmfoto 2026-10-26 um 10.36.25.png
--
Ja, in der SVG wird das in dem text element geschrieben
<text x="0" y="156.8" class="ylabel">2025</text>
Wenn ich nach ylabel in der 98_SVG.pm suche, finde ich mehrere Stellen. L1752 (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/98_SVG.pm#L1752) bzw die davor (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/98_SVG.pm#L1751) sehen Interessant aus. Ggf hilft mir schon
SVG_fmtTime($first_tag, $fromsec, $conf{timefmt});weiter. Muss ich nur noch herausfinden, was die Funktion erwartet.
Ansonsten bekomm ich bei all meinen Versuchen
PERL WARNING: Use of uninitialized value in substitution iterator at ./FHEM/98_SVG.pm line 911als Fehler im log. Ich denke aber, dass es eher daran liegt, dass hinter dem key=value-Paar, der value nen Fehler wirft.
Ab sofort werden die $data{SVG_from} und $data{SVG_to} Werte gesetzt, beide sind im Format yyyy-mm-dd_HH:MM:SS.
Das Jahr sollte man mit substr(${data{SVG_from,0,4)} extrahieren koennen.