[Gelöst] FTUI Chart - X-Achsbeschriftung ist verschoben

Begonnen von Rewe2000, 19 Dezember 2020, 13:00:22

Vorheriges Thema - Nächstes Thema

Rewe2000

Hallo,

kann mir jemand einen Tipp geben, damit meine Charts nicht verschoben dargestellt werden.

Ausgangslage:
Ich schreibe am Monatsende je einen einzigen Monatswert (Strom-Eigenverbrauch) in meine DbLog SQL-Datenbank.

Die Daten zur Darstellung stehen dann wie folgt, in der Datenbank zur Verfügung:

TIMESTAMP               DEVICE                TYPE      EVENT                       READING             VALUE     UNIT
2020-11-30 23:59:59     du_Eigenverbrauch     DUMMY     Verbrauch_Monat: 277.20     Verbrauch_Monat     277.20     
2020-10-31 23:59:59     du_Eigenverbrauch     DUMMY     Verbrauch_Monat: 280.32     Verbrauch_Monat     280.32     
2020-09-30 23:59:59     du_Eigenverbrauch     DUMMY     Verbrauch_Monat: 383.48     Verbrauch_Monat     383.48     
2020-08-31 23:59:59     du_Eigenverbrauch     DUMMY     Verbrauch_Monat: 382.09     Verbrauch_Monat     382.09     
2020-07-31 23:59:59     du_Eigenverbrauch     DUMMY     Verbrauch_Monat: 325.08     Verbrauch_Monat     325.08     
2020-06-30 23:59:59     du_Eigenverbrauch     DUMMY     Verbrauch_Monat: 183.08     Verbrauch_Monat     183.08     
2020-05-31 23:59:59     du_Eigenverbrauch     DUMMY     Verbrauch_Monat: 318.25     Verbrauch_Monat     318.25     
2020-04-30 23:59:59     du_Eigenverbrauch     DUMMY     Verbrauch_Monat: 187.61     Verbrauch_Monat     187.61     


Der HTML Code für meinen Chart lautet wie folgt:
<div data-type="chart"
data-device="du_Eigenverbrauch"
data-get="Verbrauch_Monat"
data-style='["ftui l0fill"]'
data-ptype="bars"
data-minvalue="0"
data-maxvalue="auto"
data-yticks="auto"
data-title="Eigenverbrauch Monat"
data-legend="Eigenverbrauch"
data-yunit=" kWh"
data-logdevice="DBLogging"
data-logfile="HISTORY"
data-columnspec='["du_Eigenverbrauch:Verbrauch_Monat"]'
data-daysago_start="0Y"
data-daysago_end="-1Y"
data-timeformat='MMM'
data-width="1100"
data-height="550"
data-cursorgroup="1"
data-scrollgroup="1"
data-title_class="legend"
data-nofulldays="false">
</div>


Das Ergebnis sieht wie im folgenden Screenshot aus.
Die Balken in X-Richtung, oder die Beschriftung der X-Achse sind um einen Monat verschoben und passen so nicht zu den Daten.
Habe schon viele Attribute und Werte getestet, bisher aber keinerlei Erfolg erzielt.

Wenn ich das Datum der Werte um einen Monat in die Vergangenheit rechne, passt die Darstellung. Mein Problem ist aber, dass mir der Monatsverbrauch erst am Monatsende bekannt ist. Eine Möglichkeit erst bei der Chartdarstellung mit den Timestamp zu rechnen habe ich (noch) nicht gefunden.
Das gleiche Problem habe ich auch bei meiner Montatsdarstellung (Tageswerten).
An welchen Stellschrauben kann ich da noch drehen, damit die Darstellung passt.

Danke für eure Hilfe.
Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

MKeY

Ich kann dir keine Lösung für das chart widget anbieten, aber ggf kannst du "einfach" deine DB Einträge manipulieren, sodass es ggf hilft?
https://wiki.fhem.de/wiki/DbLog#Bearbeitung_von_Datenbank-Eintr.C3.A4gen
Wer Fehler findet, darf sie behalten!
RPi's, D1Mini
Homematic, Hue, Sonoff, Alexa, Xiaomi, ConBee
Prusa MK2.5, Prusa MK3S (MMU2S vorhanden, aber nervtötend)
Lowrider 2CNC

Rewe2000

Hallo MKeY,

danke für den Tipp.

Da müsste ich aber immer den Timestamp manipulieren, z.B. den Timestamp von April nach März ändern. Ich vermute aber das gäbe das absolute Chaos in meiner Datenbank, da ja dann die Werte für andere Auswertungen nicht mehr passen würden. Der Wert mit Timestamp "2020-10-31 23:59:59" wäre dann der Endwert von Ende November, ich denke da verliere ich über lang oder kurz den Überblick.
Wenn ich da irgendwann mal Auswertungen mit DbRep erzeugen will, rechnet es mit den falschen Werten, da ja alle Timestamps verschoben sind.

Ich denke da müsste es eine bessere Lösung für dieses "Problem" geben, der Timestamp sollte nur für die Darstellung im Chart "verschoben" werden. Ist das wirklich so außergewöhnlich und bin ich der Einzige, welcher pro Zeiteinheit nur einen Wert in der Datenbank hat und daraus passende Charts erzeugen will?

Würde man mein Problem mit logProxy und $offset lösen können, oder gibt es da noch einen besseren Vorschlag?

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Rewe2000

Hallo,

sollte jemand vor genau dem gleichen Problem stehen wie ich, hier die Lösung.
LogProxy kann problemlos mit FTUI verwendet werden, hier mein o.g. Beispiel, umgestellt mit LogProxy.
Der Devicename von meinem logProxy lautet: lp
Der Devicename von meinem DbLog Logdevice lautet: DBLogging

<div data-type="chart"
data-device="du_Eigenverbrauch"
data-get="Verbrauch_Monat"
data-style='["ftui l0fill"]'
data-ptype="bars"
data-minvalue="0"
data-maxvalue="auto"
data-yticks="auto"
data-title="Eigenverbrauch Monat"
data-legend="Eigenverbrauch"
data-yunit=" kWh"
data-logdevice="lp"
data-columnspec='["DbLog:DBLogging,offset=-60*60*24*31:du_Eigenverbrauch:Verbrauch_Monat"]'
data-daysago_start="0Y"
data-daysago_end="-1Y"
data-timeformat='MMM'
data-width="1100"
data-height="550"
data-cursorgroup="1"
data-scrollgroup="1"
data-title_class="legend">
</div>


Das Ergebnis sieht nun für mich zufriedenstellend wie im Anhang aus.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky