FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: michael.winkler am 03 Januar 2020, 00:34:37

Titel: DBLog / SVG Plot
Beitrag von: michael.winkler am 03 Januar 2020, 00:34:37
Hallo,

habe mir ein SVG Plot erzeugt. Wenn ich den abgefragten Wert wie folgt einstelle:

myPowerMeter:total_consumption::


erhalte ich als Ergebnis

get fhem.dblog HISTORY INT 2019-12-05_00:00:00 2020-01-03_23:59:59 myPowerMeter:total_consumption:

2020-01-02_20:45:19 3180000
2020-01-02_22:01:05 3181000
2020-01-02_23:04:45 3182000
2020-01-02_23:42:18 3183000
#myPowerMeter:total_consumption:::


Wenn ich die Abfrage allerdings auf folgendes umstelle:


myPowerMeter:total_consumption::delta-d


Dann sieht das Ergebnis wie folgt aus:

get fhem.dblog HISTORY INT 2019-12-05_00:00:00 2020-01-03_23:59:59 myPowerMeter:total_consumption::delta-d

2020-01-02_12:00:00 -9.22337e+18
#myPowerMeter:total_consumption::delta-d:


In dem SVG Plot wird dann auch keine Linie mehr angezeigt.

Kann mir hier jemand weiterhelfen?

Gruß
Michael
Titel: Antw:DBLog / SVG Plot
Beitrag von: Otto123 am 03 Januar 2020, 09:29:21
Moin Michael,

ich bin in dem Thema sehr unterbelichtet, ich versuche es aber seit geraumer Zeit zu verstehen.

Was willst Du mit delta-d erreichen?

Meines Wissens kannst Du an der Stelle nur mit Ausdrücken arbeiten -> $val= ....
Siehe den Beitrag im Wiki https://wiki.fhem.de/wiki/SVG-Plots_von_FileLog_auf_DbLog_umstellen
Meine kläglichen Erkenntnisse hatte ich hier (https://heinz-otto.blogspot.com/2019/10/file-log-und-gut.html) mal aufgeschrieben.

Gesundes neues Jahr
Otto
Titel: Antw:DBLog / SVG Plot
Beitrag von: rudolfkoenig am 03 Januar 2020, 09:35:55
delta-d zeigt die Differenz eines Zaehlers seit Anfang des Tages.
Anfangs nur fuer FileLog implementiert, laut DbLog Kommentar mind. seit Oktober letzten Jahres auch da vorhanden.
Titel: Antw:DBLog / SVG Plot
Beitrag von: michael.winkler am 03 Januar 2020, 09:37:23
Zitat von: rudolfkoenig am 03 Januar 2020, 09:35:55
delta-d zeigt die Differenz eines Zaehlers seit Anfang des Tages.
Anfangs nur fuer FileLog implementiert, laut DbLog Kommentar mind. seit Oktober letzten Jahres auch da vorhanden.
Danke für die Info. Dann werde ich mich mal an den Modul Ersteller von DBLog wenden.


Gesendet von iPhone mit Tapatalk
Titel: Antw:DBLog / SVG Plot
Beitrag von: frober am 03 Januar 2020, 10:24:02
Ist dein Fhem aktuell?
Es wurden letzten Jahres versch. Probleme mit delta-d/h in dbLog behoben.

Gruß Bernd
Titel: Antw:DBLog / SVG Plot
Beitrag von: michael.winkler am 03 Januar 2020, 10:29:25
Zitat von: frober am 03 Januar 2020, 10:24:02
Ist dein Fhem aktuell?
Es wurden letzten Jahres versch. Probleme mit delta-d/h in dbLog behoben.

Gruß Bernd
Mein FHEM Server war eigentlich relativ aktuell. Das Update hat aber doch etwas bewirkt. Jetzt sieht es deutlich besser aus.
Titel: Antw:DBLog / SVG Plot
Beitrag von: michael.winkler am 03 Januar 2020, 10:39:14
Irgendwie zu früh gefreut.

Es wird zwar jetzt richtig gerechnet, allerdings nur der letzte Tag.


get fhem.dblog HISTORY INT 2020-01-02_00:00:00 2020-01-03_23:59:59 myPowerMeter:total_consumption::delta-d

2020-01-03_12:00:00 7000
#myPowerMeter:total_consumption::delta-d:


Was zusätzlich noch auffällt ist, dass im Plot selber auch keine Blockansicht kommt.
Titel: Antw:DBLog / SVG Plot
Beitrag von: DS_Starter am 03 Januar 2020, 11:36:24
Hallo Michael,

wie Bernd (frober) schon schrieb, haben wir letztes Jahr ca. im Oktober/ Anfang November einiges an der delta-h/delta-d Geschichte gerichtet.
@Bernd, weißt du den Thread noch ?

Michael, du müsstest mal mit verbose 4 oder 5 arbeiten damit man die SQL Statements und deren Ergebnisse sieht.
In dem alten Thread sieht man noch den Werdegang bis zum heutigen Stand genauer.

Grüße,
Heiko
Titel: Antw:DBLog / SVG Plot
Beitrag von: frober am 03 Januar 2020, 12:18:44
Hallo Heiko, na klar[emoji6]

https://r.tapatalk.com/shareLink/topic?url=https%3A%2F%2Fforum%2Efhem%2Ede%2Findex%2Ephp%3Ftopic%3D99280%2E0&share_tid=99280&share_fid=75100&share_type=t&link_source=app
(https://r.tapatalk.com/shareLink/topic?url=https%3A%2F%2Fforum%2Efhem%2Ede%2Findex%2Ephp%3Ftopic%3D99280%2E0&share_tid=99280&share_fid=75100&share_type=t&link_source=app)

Ich hoffe das funktioniert, bin gerade unterwegs.
Titel: Antw:DBLog / SVG Plot
Beitrag von: michael.winkler am 03 Januar 2020, 12:33:12
Hi,

habe mal ein Log erzeugt, hier das Ergebnis:


2020.01.03 12:31:01.232 4: DbLog fhem.dblog -> ################################################################
2020.01.03 12:31:01.232 4: DbLog fhem.dblog -> ###              start of new Logcycle                       ###
2020.01.03 12:31:01.232 4: DbLog fhem.dblog -> ################################################################
2020.01.03 12:31:01.232 4: DbLog fhem.dblog -> number of events received: 1 for device: global
2020.01.03 12:31:01.233 4: DbLog fhem.dblog -> check Device: global , Event: ATTR fhem.dblog verbose 5
2020.01.03 12:31:04.042 4: DbLog fhem.dblog -> ################################################################
2020.01.03 12:31:04.043 4: DbLog fhem.dblog -> ###                  new get data for SVG                    ###
2020.01.03 12:31:04.043 4: DbLog fhem.dblog -> ################################################################
2020.01.03 12:31:04.043 4: DbLog fhem.dblog -> main PID: 1805, secondary PID: 1805
2020.01.03 12:31:04.044 4: DbLog fhem.dblog -> deltacalc: day
2020.01.03 12:31:04.045 4: fhem.dblog - Processing Statement:
SELECT Z.TIMESTAMP, Z.DEVICE, Z.READING, Z.VALUE from (SELECT DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s') AS TIMESTAMP,
                    DEVICE AS DEVICE,
                    READING AS READING,
                    VALUE AS VALUE FROM history WHERE 1=1 AND DEVICE  = 'myPowerMeter' AND READING = 'total_consumption' AND TIMESTAMP < STR_TO_DATE('2020-01-02 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP > DATE_SUB(STR_TO_DATE('2020-01-02 00:00:00', '%Y-%m-%d %H:%i:%s'),INTERVAL 1 DAY) ORDER BY TIMESTAMP) AS Z
                   UNION ALL SELECT
                   MAX(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s')) AS TIMESTAMP,
                   MAX(DEVICE) AS DEVICE,
                   MAX(READING) AS READING,
                   MAX(VALUE)
                    FROM history WHERE 1=1 AND DEVICE  = 'myPowerMeter' AND READING = 'total_consumption' AND TIMESTAMP >= STR_TO_DATE('2020-01-02 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP <= STR_TO_DATE('2020-01-04 00:00:00', '%Y-%m-%d %H:%i:%s') GROUP BY DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H') ORDER BY TIMESTAMP
2020.01.03 12:31:04.046 5: fhem.dblog - SQL-result -> TS: 2020-01-02 10:45:19, DEV: myPowerMeter, RD: total_consumption, VAL: 3180000
2020.01.03 12:31:04.046 5: fhem.dblog - SQL-result -> TS: 2020-01-02 22:01:05, DEV: myPowerMeter, RD: total_consumption, VAL: 3181000
2020.01.03 12:31:04.046 5: fhem.dblog - SQL-result -> TS: 2020-01-02 23:42:18, DEV: myPowerMeter, RD: total_consumption, VAL: 3183000
2020.01.03 12:31:04.047 5: fhem.dblog - SQL-result -> TS: 2020-01-03 01:13:00, DEV: myPowerMeter, RD: total_consumption, VAL: 3184000
2020.01.03 12:31:04.047 5: fhem.dblog - Output delta-d -> TS: 03, LASTTS: 02, OUTTS: 2020-01-02 12:00:00, OUTVAL: -9.22337e+18, WRITEOUT: 0
2020.01.03 12:31:04.047 5: fhem.dblog - SQL-result -> TS: 2020-01-03 02:44:30, DEV: myPowerMeter, RD: total_consumption, VAL: 3185000
2020.01.03 12:31:04.047 5: fhem.dblog - SQL-result -> TS: 2020-01-03 04:33:59, DEV: myPowerMeter, RD: total_consumption, VAL: 3186000
2020.01.03 12:31:04.048 5: fhem.dblog - SQL-result -> TS: 2020-01-03 06:09:03, DEV: myPowerMeter, RD: total_consumption, VAL: 3187000
2020.01.03 12:31:04.048 5: fhem.dblog - SQL-result -> TS: 2020-01-03 07:47:06, DEV: myPowerMeter, RD: total_consumption, VAL: 3188000
2020.01.03 12:31:04.048 5: fhem.dblog - SQL-result -> TS: 2020-01-03 09:11:54, DEV: myPowerMeter, RD: total_consumption, VAL: 3189000
2020.01.03 12:31:04.048 5: fhem.dblog - SQL-result -> TS: 2020-01-03 10:17:50, DEV: myPowerMeter, RD: total_consumption, VAL: 3190000
2020.01.03 12:31:04.048 5: fhem.dblog - SQL-result -> TS: 2020-01-03 11:14:13, DEV: myPowerMeter, RD: total_consumption, VAL: 3191000
2020.01.03 12:31:04.048 5: fhem.dblog - SQL-result -> TS: 2020-01-03 12:16:08, DEV: myPowerMeter, RD: total_consumption, VAL: 3192000
2020.01.03 12:31:04.049 5: fhem.dblog - Output last DS -> OUTTS: 2020-01-03_12:00:00, OUTVAL: 9, WRITEOUT: implicit


Gruß
Michael
Titel: Antw:DBLog / SVG Plot
Beitrag von: DS_Starter am 03 Januar 2020, 13:26:42
Hi Michael,

kann es sein, dass in der DB in der Zeit    01.01.2020 00:00:00 - 02.01.2020 00:00:00  kein Wert des betreffenden Device/Readings in der DB vorhanden ist ?
Titel: Antw:DBLog / SVG Plot
Beitrag von: michael.winkler am 03 Januar 2020, 13:28:19
Zitat von: DS_Starter am 03 Januar 2020, 13:26:42
Hi Michael,

kann es sein, dass in der DB in der Zeit    01.01.2020 00:00:00 - 02.01.2020 00:00:00  kein Wert des betreffenden Device/Readings in der DB vorhanden ist ?
Ja, die Aufzeichnung hat erst am 02.01.2020 angefangen. Mich wunder allerdings diese Zeile des Logs:


2020.01.03 12:31:04.047 5: fhem.dblog - Output delta-d -> TS: 03, LASTTS: 02, OUTTS: 2020-01-02 12:00:00, OUTVAL: -9.22337e+18, WRITEOUT: 0
Titel: Antw:DBLog / SVG Plot
Beitrag von: frober am 03 Januar 2020, 13:28:40
Soweit ich das sehe, Delta d wird für den ganzen Tag erstellt.
Dein allererster Wert ist Abends um 20:45. D.h. du hast frisch angefangen zu loggen.
Schaue es dir Morgen für Heute an. Da müsste es dann passen.
Titel: Antw:DBLog / SVG Plot
Beitrag von: frober am 03 Januar 2020, 13:29:15
Da war ich zu langsam[emoji16]
Titel: Antw:DBLog / SVG Plot
Beitrag von: DS_Starter am 03 Januar 2020, 13:37:40
Zitat
Mich wunder allerdings diese Zeile des Logs:

2020.01.03 12:31:04.047 5: fhem.dblog - Output delta-d -> TS: 03, LASTTS: 02, OUTTS: 2020-01-02 12:00:00, OUTVAL: -9.22337e+18, WRITEOUT: 0
Ja, das passt, das OUTVAL: -9.22337e+18 ist eine Folge des unbestimmten Vorperiodenwertes. Deswegen -> WRITEOUT: 0. Sonst hättest du einen "schönen" Balken im SVG.  ;)
Bernd kennt das und wie er schon schrieb ... morgen wird alles gut sein.

Grüße,
Heiko