[GELÖST] Balkendarstellung für Jahresvergleich gesucht

Begonnen von Burny4600, 05 Februar 2025, 16:33:25

Vorheriges Thema - Nächstes Thema

Burny4600

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
Mfg Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#2
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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Burny4600

#3
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.
Mfg Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

betateilchen

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)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!