<n>months und <n>weeks

Begonnen von quartz, 24 Mai 2026, 22:21:18

Vorheriges Thema - Nächstes Thema

quartz

Ich habe gesucht, und zu dem Thema https://forum.fhem.de/index.php?action=post;quote=336733;topic=41125 gefunden, wonach es vielleicht sogar schon gehen sollte.

Ich poste als Neuling hier trotzdem, da es bei mir nicht geklappt hat und entweder die Doku (und Kommentare im Code) nicht ganz vollständig sind, oder evtl. doch die nachstehenden überschaubare Änderungen hilfreich sein könnten.

Neben <n>days und <n>years sollte es auch <n>weeks und <n>months bei Plots geben.

Ich habe versucht, <n>months bei Plots (SVG-) einzuführen. Scheint - bis auf den Jahreswechsel mit LogFile und fehlendem Attribut createGluedFile 1 (https://forum.fhem.de/index.php?action=post;quote=1354733;topic=143511) - funktioniert zu haben.

Meine Änderungen für die Monate in 98_SVG.pm ($Id: 98_SVG.pm 29659 2025-02-16 15:25:27Z rudolfkoenig) in der Funktion SVG_calcOffsets waren sehr überschaubar:
  • im if($fr) die Zeile ergänzt
    $fr =~ m/^\d+month/ ||
  • bei der Abfrage des Zooms den elseif Zweig angepasst
    } elsif($zoom =~ m/^(\d+)?month/) {
  • im elseif Zweig die Zeile
    my $nMonths= $1 ? ($1-1) : 0; am Anfang hinzugefügt
  • im elseif Zweig vor $SVG_devs... die Zeile
    $sm = $sm-$nMonths; while ($sm < 0) { $sm += 12, $sy-- if($sm < 0); } hinzugefügt

Für <n>-wöchige Diagramme wäre es ähnlich. Neben den if/else Änderungen ist im wesentlichen die Zeile vor dem Startwert anzupassen:
@l = localtime(($t - ((($1 ? ($1-1) : 0)*86400)*7))); (oder lesbarer mit einer $nWeeks Variable).

Das <n>-monatige Diagramm lässt sich damit monatsweise verschieben.

Falls es sowieso funktioniert hätte, wäre vielleicht die Doku (und die Kommentare im Code) anzupassen. Falls der Code hilfreich ist, kann er gerne übernommen werden. Es sind so wenige Zeilen, dass sich formelleres (git? svn?) nicht lohnt.