Plotabriss teils beabsichtigen & teils nicht

Begonnen von Dracolein, 26 Oktober 2022, 11:45:50

Vorheriges Thema - Nächstes Thema

Dracolein

Hallo zusammen,
ein kurioser Titel, ich weiß und hoffe es erklären zu können:

Zum Hintergrund:
Ein Diagramm mit fixer X-Achse von z.B. 06:00 Uhr morgens bis 22:00 Uhr abends stellt Leistungswerte auf der Y-Achse dar.
Erste Datenpunkte im FileLog entstehen z.B. um 07:00 Uhr und stoppen gegen 09:00 Uhr.
Zwischen 12:00 Uhr und 13:00 Uhr läuft das Gerät erneut und produziert im Logfile zuverlässig weitere Datenpunkte.

Grafisch im Diagramm passiert von 06:00 - 07:00 Uhr gar nichts. Zwischen 7-9 Uhr entsteht eine gewünschte Kurve, die um 09:00 Uhr wieder fein auf der X-Achse bei Null endet. Bis hierhin alles gut.
Der nächste Datenpunkt entsteht bei obigem Beispiel um 12 Uhr. Folglich wird eine Linie vom letzten Datenpunkt von 09:00 Uhr (Null-Linie der X-Achse) diagonal mitten durch die Diagrammfläche zum nächsten Datenpunkt um 12:00 Uhr gezogen und verläuft mitten durch den grafischen Bereich, der eigentlich leer sein soll. Genau das Verhalten möchte ich unterbinden.

1.) Ansatz: Am Device attr event-min-interval: .*:900
Damit entstehen zusätzlich alle 15 Minuten Datenpunkte im Logfile, welche obigen hässlichen Linienabschnitt weitgehend (im akzeptablen Bereich) vermeiden.
Leider entstehen natürlich auch ungewünschte Datenpunkte im 15-Minuten Takt über den gesamten vorherigen und restlichen Tagesverlauf rund um die Uhr und ich habe im Diagramm eine weitgehend permanente Nulllinie auf der X-Achse dargestellt.

2.) Ansatz: im FileLog-Device das Attribut
attr disabledForIntervals {sunset_abs()}-24:00 00:00-{sunrise_abs()}

hinzugefügt, was eine Datenpunktvermeidung über die Nacht ermöglicht, aber nicht final meiner Vorstellung entspricht.

Weitere Lösungsmöglichkeiten konnte ich nicht finden.
Nun bin ich anderweitig am verfeinern und möchte Diagramme (FTUI3) mit dynamischer X-Achse einführen, was auch grundsätzlich schon klappt.
Leider bereitet diese hier beschriebene Kurve dort Probleme, denn Beginn und Ende der X-Achse hängen vom Attribut disabledForIntervals ab und nicht vom eigentlichen Beginn und Ende der FileLog-Einträge erst um (um hier bei Beispiel zu bleiben:) 09:00 Uhr. 

Könnt Ihr weiterhelfen?
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

frank

was immer hilft sind points, da diese nur die wirklich vorhandenen daten zeigen.

jede linie erzeugt fake-daten zwischen den messpunkten (logdaten). woher soll die linie wissen, dass ausgerechnet zwischen den speziellen messpunkten 7:00 und 9:00 keine linie erscheinen soll?

je nach menge der vorhandenen messpunkte im gewählten plottausschnitt ergeben die points dann abschnittsweise "linien". über die grösse der points und gefüllt/nicht_gefüllt lässt sich der eindruck einer "linie" auch noch verbessern.
oder auch mal mit bars rumspielen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Dracolein

Zitat von: frank am 26 Oktober 2022, 12:19:40
woher soll die linie wissen, dass ausgerechnet zwischen den speziellen messpunkten 7:00 und 9:00 keine linie erscheinen soll?
Völlig klar, ich sehe die Problematik. Ich dachte mir, "fragste ma"  ;D
Selber Funktionen basteln, sinngemäß mit der temporären Aktivierung der addlog-Funktion, getriggert durch den ersten FileLog-Eintrag des Tages könnte weiterhelfen, aber auch hier kenne ich keine Lösung, wie ich solches Konstrukt mit Abschluss des letzten regulären Datenpunktes beenden lassen soll.

Aber generell ist Dein Hinweis gut. Ich könnte die Diagrammdarstellung dieser einen Datenlinie verändern. Die Idee ist gut... muss ich nachdenken
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

xenos1984

Zitat von: Dracolein am 26 Oktober 2022, 11:45:50
Folglich wird eine Linie vom letzten Datenpunkt von 09:00 Uhr (Null-Linie der X-Achse) diagonal mitten durch die Diagrammfläche zum nächsten Datenpunkt um 12:00 Uhr gezogen und verläuft mitten durch den grafischen Bereich, der eigentlich leer sein soll. Genau das Verhalten möchte ich unterbinden.
Genau das sollte eigentlich der Linientyp "steps" tun, also "with steps" statt "with lines" in der gplot Datei.