SVG-Plot -> endPlotToday für year-Plots

Begonnen von CQuadrat, 03 Januar 2014, 14:37:58

Vorheriges Thema - Nächstes Thema

CQuadrat

Hallo Zusammen,

hat es einen Grund, dass der Parameter endPlotToday nur für Wochen- und Monatsplots implementiert ist?

Ich würde es gut finden, wenn das auch für Jahresplots funktionieren würde. Wer ist denn hierzu der Maintainer?


Viele Grüße

Christoph
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

rudolfkoenig


CQuadrat

Asche auf mein Haupt  :o -> wer lesen kann ist klar im Vorteil  :-[

Und wie ist es mit meiner Frage?
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

rudolfkoenig

Ist halt ein Wunsch, gehoert damit eigentlich in den Bereich Wunschliste, die ich nicht lese.

Einen passenden Patch wuerde ich einspielen.

Frank_Huber

Würde das Thema mal reaktivieren.
Mir fällt es auch gerade negativ auf dass die Jahres Plots leer sind.

Mit endPlotToday wäre das viel besser.
Kann aber leider nicht programmieren.
Niemand da der sich au solch einen Patch rantraut?

Mit dem Handy online, daher kurz gefasst...


elektron-bbs

Mir gefiel das auch nicht, deshalb hatte ich schon für mich eine Änderung eingebaut. Nach etwa einem Monat Test denke ich, das ich das veröffentlichen kann. In der Datei "98_SVG.pm" ist in der Sub "SVG_calcOffsets" nur eine kleine Änderung notwendig:

} elsif($zoom eq "year") {
    my @l = localtime($now);
   if(SVG_Attr($FW_wname, $wl, "endPlotToday", undef)) {
$l[3] = 1; # day
if ($l[4] < 11) { # month
$l[4]++;  # + 1 Monat
} else {
$l[4] = 0; # Januar
}
      $off--; # - 1 Jahr
    } else {
$l[4] = 0; # Januar
    }
    $l[5] += $off;
    $SVG_devs{$d}{from} = SVG_tspec(3,0,@l);
    $l[5]++;
    $SVG_devs{$d}{to}   = SVG_tspec(3,1,@l);
  }


Wie das Ergebnis aussieht und das komplette Modul lade ich mit hoch.
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + LaCrosseGateway

Frank_Huber

Ich hab mich mittlerweile mit Attribut fixedrange 365days beholfen.
Werde mir aber deine Variante mal anschauen!
Danke fürs teilen

Mit dem Handy online, daher kurz gefasst...


rudolfkoenig

Der Patch ist
- nicht gegen die aktuelle SVG.pm Version (r16075 vs. r15863)
- trotz endPlotToday endet es am Ende des aktuellen Monats und nicht heute.
- falls endPlotToday nicht gesetzt ist, dann wird das aktuelle Jahr ab Januar, aktueller MonatsTag dargestellt.

Bin noch unentschlossen, ob ich auf einem "ordentlichen" Patch warten soll, oder ob ich es selbst fixen und testen soll.

elektron-bbs

OK, ich habe das nochmal überarbeitet und in die aktuelle Version übernommen.
Die erfassten Zeiträume sehen jetzt so aus:

2018.02.07 20:30:12 3: SVG with endPlotToday from: 2017-02-07_00:00:00   Offset: 0
2018.02.07 20:30:12 3: SVG with endPlotToday to:   2018-02-07_23:59:59   Offset: 0
2018.02.07 20:30:46 3: SVG with endPlotToday from: 2016-02-07_00:00:00   Offset: -1
2018.02.07 20:30:46 3: SVG with endPlotToday to:   2017-02-07_23:59:59   Offset: -1
2018.02.07 20:25:34 3: SVG without endPlotToday from: 2018-01-01_00:00:00   Offset: 0
2018.02.07 20:25:34 3: SVG without endPlotToday to:   2018-12-31_23:59:59   Offset: 0
2018.02.07 20:26:08 3: SVG without endPlotToday from: 2017-01-01_00:00:00   Offset: -1
2018.02.07 20:26:08 3: SVG without endPlotToday to:   2017-12-31_23:59:59   Offset: -1

Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + LaCrosseGateway

rudolfkoenig

Habe jetzt fuer fixedRange year endPlotNow oder endPlotToday beruecksichtigt, mit dem Ergebnis:
ohne endPlot*: FROM: 2018-01-01_00:00:00   TO: 2018-12-31_23:59:59
endPlotToday:  FROM: 2017-02-09_00:00:00   TO: 2018-02-08_23:59:59
endPlotNow:    FROM: 2017-02-09_11:52:02   TO: 2018-02-08_11:52:02

Wenn der SVN Server wieder zur Verfuegung steht, werde ich es einchecken.

rudolfkoenig


elektron-bbs

Danke, aber was passiert mit $l[3]++ am Monatsletzten? Das ergibt ein ungültiges Datum und das Diagramm bleibt leer.
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + LaCrosseGateway

rudolfkoenig

Ungueltiges Datum ist egal, es wird ein Stringvergleich gemacht. Aeh.... wenigstens in FileLog. Was macht DbLog?

elektron-bbs

Egal ist es auf jeden Fall nicht, da das Diagramm leer bleibt. Das Diagramm umfasst zwar den richtigen Zeitraum, aber es kommen wohl keine Werte aus der Datenbank.
2018.02.08 17:43:38 3: SVG with endPlotToday from: 2017-03-32_00:00:00   Offset: 0
2018.02.08 17:43:38 3: SVG with endPlotToday to:   2018-03-31_23:59:59   Offset: 0
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + LaCrosseGateway

rudolfkoenig

Diese Datenkbank Jungs mit Ihrem speziellen Datentypen machen einem das Leben nur unnoetig schwer.
Ich habe das Addieren des Tages entfernt.

Danke fuer den Test und fuer den Hinweis!