SVG plot 24:00 / 00:00 Uhr Problem (Lösung gefunden)

Begonnen von Klaus_R, 06 Oktober 2022, 10:00:32

Vorheriges Thema - Nächstes Thema

Klaus_R

Hallo zusammen,
mache ich was falsch bzw. was sollte ich ändern um folgendes Problem zu beseitigen?

2022-10-02_23:00:00 Du_Strom VerbrauchStunde: 0.220
2022-10-03_00:00:00 Du_Strom VerbrauchStunde: 0.210
2022-10-03_01:00:00 Du_Strom VerbrauchStunde: 0.120
2022-10-03_02:00:00 Du_Strom VerbrauchStunde: 0.150
2022-10-03_03:00:00 Du_Strom VerbrauchStunde: 0.110
2022-10-03_04:00:00 Du_Strom VerbrauchStunde: 0.100
2022-10-03_05:00:00 Du_Strom VerbrauchStunde: 0.090
2022-10-03_06:00:00 Du_Strom VerbrauchStunde: 0.110
2022-10-03_07:00:00 Du_Strom VerbrauchStunde: 0.090
2022-10-03_08:00:00 Du_Strom VerbrauchStunde: 0.160
2022-10-03_09:00:00 Du_Strom VerbrauchStunde: 0.110
2022-10-03_10:00:00 Du_Strom VerbrauchStunde: 0.240
2022-10-03_11:00:00 Du_Strom VerbrauchStunde: 0.120
2022-10-03_12:00:00 Du_Strom VerbrauchStunde: 0.150
2022-10-03_13:00:00 Du_Strom VerbrauchStunde: 0.180
2022-10-03_14:00:00 Du_Strom VerbrauchStunde: 0.720
2022-10-03_15:00:00 Du_Strom VerbrauchStunde: 0.310
2022-10-03_16:00:00 Du_Strom VerbrauchStunde: 0.460
2022-10-03_17:00:00 Du_Strom VerbrauchStunde: 0.200
2022-10-03_18:00:00 Du_Strom VerbrauchStunde: 0.100
2022-10-03_19:00:00 Du_Strom VerbrauchStunde: 0.110
2022-10-03_20:00:00 Du_Strom VerbrauchStunde: 0.190
2022-10-03_21:00:00 Du_Strom VerbrauchStunde: 1.000
2022-10-03_22:00:00 Du_Strom VerbrauchStunde: 0.370
2022-10-03_23:00:00 Du_Strom VerbrauchStunde: 0.230
2022-10-04_00:00:00 Du_Strom VerbrauchStunde: 0.270
2022-10-04_01:00:00 Du_Strom VerbrauchStunde: 0.180


Aus dieser Datenreihe bekomme ich die anhängenden Grafiken:
Erste Frage: Der Verbrauch fällt zwischen z.B. 20:00 und 21:00 an wird aber in der Grafik als Verbrauch von 20:30 bis 21:30 dargestellt. Lässt sich das ändern?

Bei der derzeitigen  Darstellung entsteht zwischen 23:00 Uhr und 01:00 des nächsten Tages folgendes Problem.
Wert von 23:00 bis 00:00 ( bzw. 23:30 bis 24:00) wird nicht dargestellt. Am nachfolgenden Tag  wird ein Balken für den halben Stundenwert 00:00 bis 00:30 dargestellt)

Hoffe es ist alles Verständlich und das Problem ersichtlich.
Gruss Klaus
Linux Mint, Raspi-OSMC, Raspi-fhem, WemosD1, Shelly, CUL

frank

nimm einen, zu deinen erwartungen passenden linienstyl.
eventuell zeigt "fsteps" das, was du willst.

oder die kurve verschieben mit logproxy.
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

Klaus_R

Zitat von: frank am 06 Oktober 2022, 10:49:33
nimm einen, zu deinen erwartungen passenden linienstyl.
eventuell zeigt "fsteps" das, was du willst.

oder die kurve verschieben mit logproxy.

Danke! Ersteres hat schonmal geholfen. Die letzte Stunde fehlt aber immer noch s.Bild. Mit loxproxy muss ich mich jetzt erst mal beschäftigen.
Gruß Klaus
Linux Mint, Raspi-OSMC, Raspi-fhem, WemosD1, Shelly, CUL

Klaus_R

Evtl. sollte/könnte ich auch bei der Erstellung des Log etwas ändern denn, dass es den letzen Wert eines Tages mit 00:00 logt ist eigentlich falsch. Besser wäre 24:00!
24:00 und 00:00 sind ja nicht genau dasselbe ;)
Linux Mint, Raspi-OSMC, Raspi-fhem, WemosD1, Shelly, CUL

Otto123

Zitat2022-10-03_23:00:00 Du_Strom VerbrauchStunde: 0.230
2022-10-04_00:00:00 Du_Strom VerbrauchStunde: 0.270
Der letzte Wert des Tages ist 23:00 Uhr
Der erste Wert des neuen Tages ist 00:00

Aus meiner Sicht ist das in Ordnung.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

Zitat von: Klaus_R am 06 Oktober 2022, 11:15:42
Evtl. sollte/könnte ich auch bei der Erstellung des Log etwas ändern denn, dass es den letzen Wert eines Tages mit 00:00 logt ist eigentlich falsch. Besser wäre 24:00!
24:00 und 00:00 sind ja nicht genau dasselbe ;)
eventuell fehlt dir dann aber ein wert am tagesanfang.  :)
ausserdem könnte es sein, dass 24:00 auch nicht funktioniert, sondern eher 23:59.
es könnte also sein, dass du 2 werte für den tageswechsel brauchst.

aber auch hierbei hilft logproxy mit option extend.
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

Klaus_R

Zitat von: Otto123 am 06 Oktober 2022, 11:52:51
Der letzte Wert des Tages ist 23:00 Uhr
Der erste Wert des neuen Tages ist 00:00

Aus meiner Sicht ist das in Ordnung.

Naja???
Mir dämmert, dass meine Frage falsch gestellt war denn  gewollt ist  den Verbrauch einer kompletten Stunde anzuzeigen. Den kann ich aber erst am Ende der Stunde feststellen. Die letzte Stunde eines Tages ist doch wohl die Stunde zwischen 23:00 und 24:00 Uhr. Wenn dieser Wert mit der Zeitangabe 00:00 gespeichert wird bedeutet das aber dass der Verbrauch auf den nächsten Tag verschoben wird.

Würde er mit der Zeitangabe 24:00 gespeichert wäre alles in Ordnung. Ist also eher ein Problem das beim Erstellen der Logreihe entsteht.

Ich glaube ich sollte die Sache als neue Frage mit  dem Betreff "AT und 00:00 24:00 Uhrproblem stellen.
Gruss Klaus
Linux Mint, Raspi-OSMC, Raspi-fhem, WemosD1, Shelly, CUL

Otto123

#7
Naja - ich denke Deine Erwartung ist falsch. Man kann zwar umgangssprachlich sagen es ist der 31.12. 24:00 Uhr - es ist aber in dem Moment die letzte Sekunde des Tages vorbei und es ist rein technisch der 1.1. 00:00 Uhr

So steht es zumindest auch hier https://de.wikipedia.org/wiki/24-Stunden-Z%C3%A4hlung

Du stellst Deinen Verbrauch jetzt nicht am Ende der Stunde sondern am Beginn der Stunde fest. Beispiel 11:00 ist der Beginn der neue Stunde! Die vorherige Stunde endet unendlich kurz vor 11:00 (10:59:59).

Wenn du das optisch anders willst musst Du den Eintrag immer xx:59 Uhr  machen - wie Frank auch sagt.
Aber wie rum Du die Decke ziehst, bei voller Stunde fehlt Dir der Wert entweder früh oder Abends.

Kannst Du dein mentales Problem mit fixedrange (oder https://forum.fhem.de/index.php?topic=88338.0) lösen?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

Kannst Du nicht einfach um xx.59.59 per at und addLog einen zusätzlichen Wert ins Log schreiben?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Klaus_R

Zitat von: Otto123 am 06 Oktober 2022, 14:07:23
Du stellst Deinen Verbrauch jetzt nicht am Ende der Stunde sondern am Beginn der Stunde fest. Beispiel 11:00 ist der Beginn der neue Stunde! Die vorherige Stunde endet unendlich kurz vor 11:00 (10:59:59).


Da hast Du Recht aber..... bei jeder Stunde wird der Plotbalken dann trotzdem richtig gesetzt (bei Einstellung fsteps) nämlich links der Plotzeit(Stunde). In deinem Zeitbeispiel von oben die Stunde "vor" 11:00. Also von 10:00 - 11:00. Nur bei 00:00 passiert das nicht (weil eben auch der Tag gewechselt hat).

Ist jetzt aber nicht weiter schlimm ich schau mal ob ich mein AT mit
+*01:00:00
und
alignTime 00:00
belasse und diese Zusatzeile einfüge

my $Zeit = strftime("%Y-%m-%d %H:%M:%S",localtime(time-1));;
fhem("setreading Du_Strom $Zeit VerbrauchStunde $VerbrauchStunde");;


und dadurch erreiche, dass das AT zwar zu 00:00 ausgeführt wird aber die Logzeit auf den Vortag fällt.

Wenn das nicht klappt ist  logproxy dran.

Danke für die Tipps Gruss Klaus
Linux Mint, Raspi-OSMC, Raspi-fhem, WemosD1, Shelly, CUL

frank

ZitatWenn das nicht klappt ist  logproxy dran.
wieso nicht gleich?
ist doch deutlich einfacher, als die zusätzlichen logeinträge.
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

Klaus_R

Zitat von: frank am 07 Oktober 2022, 14:15:00
wieso nicht gleich?
ist doch deutlich einfacher, als die zusätzlichen logeinträge.
Zunächst mal vielen Dank für den Hinweis auf logProxy! Ohne den Tipp wäre ich vermutlich nicht darauf gestossen.

Warum ich es nicht gleich nutzen wollte? Weil ich als Anfänger mit lernen von Fhem, Perl, Tasmota, Tasmota Rules, ESPEasy, ESPEasy Rules usw. usw. eigentlich schon gut  ausgelastet bin ;) ;)

Da die Plots aber immer noch nicht fehlerfrei sind muss ich mich nun wohl oder übel auch noch in dieses Detail reinknien.

Ich habe jetzt zwar Logeinträge ohne 00:00 Uhr sondern diese Zeiten als letztes:
2022-10-07_21:59:59 Du_Strom VerbrauchStunde: 0.240
2022-10-07_22:59:59 Du_Strom VerbrauchStunde: 0.280
2022-10-07_23:59:59 Du_Strom VerbrauchStunde: 0.070

und diese Darstellung ist jetzt fehlerfrei!
aber die ersten des neuen Tages sind:
2022-10-08_00:59:59 Du_Strom VerbrauchStunde: 0.100
2022-10-08_01:59:59 Du_Strom VerbrauchStunde: 0.100
2022-10-08_02:59:59 Du_Strom VerbrauchStunde: 0.120

und da wird der erste  Wert einfach unterschlagen.

Gibt es dafür eine Erklärung?
Und kann ich das mit logProxy wirklich besser hinbekommen?

Ach... und beim letzten Test gerade merke ich... wenn ich statt fsteps auf bars umschalte stimmt alles :D
Also ist mein Problem gelöst ;D

LG Klaus
Linux Mint, Raspi-OSMC, Raspi-fhem, WemosD1, Shelly, CUL