FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: Burny4600 am 05 Februar 2025, 16:33:25

Titel: [GELÖST] Balkendarstellung für Jahresvergleich gesucht
Beitrag von: Burny4600 am 05 Februar 2025, 16:33:25
Gibt es eine Möglichkeit von Jahresverbrauchsdaten in Form von Balken über einige Jahre zu definieren?

Stunden, Tage und Monate kann ich mittels Balken vergleichen, aber für gleitend, zB. 5 Jahre, habe ich keine Einstellmöglichkeiten gefunden.

Nur mittels zB. fixedrange 2020-01-01 2026-01.01 ist ein Jahresvergleich einstellbar.
Doch mit dieser Einstellung wird nur das erste Jahr angezeigt.

list SVG_htz_sdm630m_1_J
Internals:
   CFGFN      /media/hdd/fhem/myprogram/energiemanagement_rasp01.pm
   DEF        FileLog_htz_sdm630m_1_stat:SVG_htz_sdm630m_1_J:CURRENT
   FUUID      6797d7ba-f33f-f4d2-5abe-e4cfb0bf124b3d26
   GPLOTFILE  SVG_htz_sdm630m_1_J
   LOGDEVICE  FileLog_htz_sdm630m_1_stat
   LOGFILE    CURRENT
   NAME       SVG_htz_sdm630m_1_J
   NR         6783
   STATE      initialized
   TYPE       SVG
Attributes:
   alias      Energieverbrauch ∑ PV Anlagen ∑ Jahr
   fixedrange 2020-01-01 2026-01.01
   group      Energieverbrauch und Energieertrag aktuell
   label      "EV_SDM630M Min $data{min1}, Max $data{max1}, Last $data{currval1}"
   plotWeekStartDay 1
   plotsize   900,300
   room       Energiemanagement,Verbrauch-Strom
   sortby     01.06

list FileLog_htz_sdm630m_1_stat
Internals:
   CFGFN      /media/hdd/fhem/myprogram/energiemanagement_rasp01.pm
   DEF        /media/hdd/fhem/log01/zaehler/htz_sdm630m_1_stat-%Y.log htz_sdm630m_1:statActive_Energy_Exp_Total__kWhDayLast:.*|htz_sdm630m_1:statActive_Energy_Imp_Total__kWhDayLast:.*|htz_sdm630m_1:statActive_Energy_Exp_Total__kWhMonthLast:.*|htz_sdm630m_1:statActive_Energy_Imp_Total__kWhMonthLast:.*|htz_sdm630m_1:statActive_Energy_Exp_Total__kWhYearLast:.*|htz_sdm630m_1:statActive_Energy_Imp_Total__kWhYearLast:.*
   FD         255
   FUUID      679f54fc-f33f-f4d2-4e96-a5ee1d4226405a0f
   NAME       FileLog_htz_sdm630m_1_stat
   NOTIFYDEV  htz_sdm630m_1
   NR         6781
   NTFY_ORDER 50-FileLog_htz_sdm630m_1_stat
   REGEXP     htz_sdm630m_1:statActive_Energy_Exp_Total__kWhDayLast:.*|htz_sdm630m_1:statActive_Energy_Imp_Total__kWhDayLast:.*|htz_sdm630m_1:statActive_Energy_Exp_Total__kWhMonthLast:.*|htz_sdm630m_1:statActive_Energy_Imp_Total__kWhMonthLast:.*|htz_sdm630m_1:statActive_Energy_Exp_Total__kWhYearLast:.*|htz_sdm630m_1:statActive_Energy_Imp_Total__kWhYearLast:.*
   STATE      active
   TYPE       FileLog
   currentlogfile /media/hdd/fhem/log01/zaehler/htz_sdm630m_1_stat-2025.log
   logfile    /media/hdd/fhem/log01/zaehler/htz_sdm630m_1_stat-%Y.log
   READINGS:
     2025-02-04 23:59:55   linesInTheFile  6512
   pos:
     /media/hdd/fhem/log01/zaehler/htz_sdm630m_1_stat-2020.log:2020-01-01 0
     /media/hdd/fhem/log01/zaehler/htz_sdm630m_1_stat-2025.log:2025-01-01_00:00:00 0
     /media/hdd/fhem/log01/zaehler/htz_sdm630m_1_stat-2025.log:2025-02-01_00:00:00 746
Attributes:
   alias      Energieverbrauch ∑ und Energieertrag PV Anlagen ∑
   createGluedFile 1
   icon       edit_paste
   logtype    :,text
   room       _LOG
Titel: Aw: Balkendarstellung für Jahresvergleich gesucht
Beitrag von: betateilchen am 05 Februar 2025, 17:21:46
fixedrange kann aber doch - laut commandref - auch als 5years angegeben werden?

Das Attribut fixedrange unterstützt auch perl Code. Du kannst Dir also den Zeitraum einfach automatisiert "errechnen" lassen. Beispielsweise nutze ich sowas für eine Plot-Darstellung, in der ich immer die Spanne von Montag-Freitag der laufenden Woche sehen möchte, egal an welchem Wochentag ich den plot anschaue.

attr SVG_plot1 fixedrange {mo2fr($wday)}

und die Funktion mo2fr() dazu sieht so aus:


sub mo2fr {
  my $wday = shift;
     $wday = 7 unless $wday;
  my @a    = localtime(time - ($wday-1)*DAYSECONDS);
  my $from = strftime "%Y-%m-%d",@a;
     @a    = localtime(time - ($wday-6)*DAYSECONDS);
  my $to   = strftime "%Y-%m-%d",@a;
  return "$from $to";
}

Wichtig ist nur, dass das Ergebnis der Funktion im korrekten Format dargestellt wird.

DEBUG>2025-02-03 2025-02-08
Sowas lässt sich ohne großen Aufwand auch für Jahreszeiträume umsetzen.
Titel: Aw: Balkendarstellung für Jahresvergleich gesucht
Beitrag von: betateilchen am 05 Februar 2025, 17:38:21
Zitat von: Burny4600 am 05 Februar 2025, 16:33:25Nur mittels zB. fixedrange 2020-01-01 2026-01.01 ist ein Jahresvergleich einstellbar.
Doch mit dieser Einstellung wird nur das erste Jahr angezeigt.

ähm - könnte es daran liegen, dass Du im Attribut einen Punkt statt eines Bindestriches verwendest?

Zitatfixedrange 2020-01-01 2026-01.01

Bei mir liefert

fixedrange 2023-01-01 2026-01-01
korrekt einen plot für 2023+2024+2025. Das ist auf den ersten Blick der gleiche plot, den ich auch mit fixedrange = 3years erhalte.
Titel: Aw: Balkendarstellung für Jahresvergleich gesucht
Beitrag von: Burny4600 am 05 Februar 2025, 17:44:00
Danke für die Hinweise.

Den Parameter years habe ich komplett übersehen.
Mit der Einstellung fixedrange 2020-01-01 2026-01.01 kann es natürlich nicht funktionieren.
Sehr peinlich. Ich bin anscheinend nicht nur alt sondern auch schon blind.
Titel: Aw: [GELÖST] Balkendarstellung für Jahresvergleich gesucht
Beitrag von: betateilchen am 05 Februar 2025, 17:51:49
Den Punkt hatte ich übrigens zuerst als Tippfehler in Deiner Frage gehalten, bis Du dann das list des SVG ergänzt hast und da tatsächlich auch der Punkt stand  8)