FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: Kharim am 17 September 2020, 14:11:17

Titel: SVG Plot: "Zeit" pro Tag als Säulendiagram
Beitrag von: Kharim am 17 September 2020, 14:11:17
Hallo Zusammen,

ist folgendes möglich?

Ich sammel in einem LogFile Zeiten im Format hh:mm:ss.
Dabei handelt es sich zum Beispiel um berechnete Zeiten wie Sonnendauer (Zeit zwischen Sonnenauf- und Untergang), oder um Laufzeiten von "Dingen".

Am Beispiel Sonnendauer

2020-09-16_00:05:00 Sonnendauer1 12:45:31
2020-09-16_00:05:00 Sonnendauer2 13:38:29
2020-09-17_00:05:00 Sonnendauer1 12:46:10
2020-09-17_00:05:00 Sonnendauer2 13:34:33


(In dem Fall fester Berechnungszeitpunkt.)

Ich möchte nun:
X-Achse - ein Einrag pro Tag, entsprechender Zoom/Wert auf Tag nicht auf Zeitpunkt
Y-Achse - die Zeit hh:mm:ss als Säule dargestellt

Vielen Dank,
Kharim
Titel: Antw:SVG Plot: "Zeit" pro Tag als Säulendiagram
Beitrag von: rudolfkoenig am 17 September 2020, 14:48:41
Ich wuerde folgende Funktion nach 99_myUtils.pm schreiben:
Zitatsub
time2sec()
{
  my ($h,$m,$s) = split(":", @_[0]);
  return $h*3600+$m*60+$s;
}
und in PlotEditor, func Spalte sie aufrufen mit time2sec($fld[2])
Achtung: ungetestet.
Titel: Antw:SVG Plot: "Zeit" pro Tag als Säulendiagram
Beitrag von: Kharim am 17 September 2020, 15:03:39
Hab ich auch schon überlegt, aber dann habe ich "reichlich hohe" Säulen mit schwer lesbaren Werten.
Es wäre nice, auch im Plot dann noch Stunden/Minuten erkennen zu können.
Titel: Antw:SVG Plot: "Zeit" pro Tag als Säulendiagram
Beitrag von: Kharim am 23 September 2020, 07:42:42
Update.

Ich habe die Stunden nun in Komma-Werte umgerechnet.
Stelle also einmal pro Tag Werte wie 12,5  8,7 etc dar.

Wie kann ich nun aber den Zoom fest einstellen, dass ich auf der X-Achse nur Tage habe?
Titel: Antw:SVG Plot: "Zeit" pro Tag als Säulendiagram
Beitrag von: OdfFhem am 23 September 2020, 08:45:59
Für taggenaue SVG-Darstellungen nutze ich das fixedrange-Attribut mit dem Wert month; gibt es auch mit week.

Da ich nicht starr den aktuellen Monat oder die aktuelle Woche, sondern eher die letzten Tage sehen möchte, verwende ich außerdem noch das endPlotToday-Attribut.