[gelöst] DbLog: delta-h(d) funktioniert nicht mehr

Begonnen von frober, 03 April 2019, 11:31:20

Vorheriges Thema - Nächstes Thema

frober

Ok, dann nochmals danke für deine Mühe.

Schönen Abend noch.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

DS_Starter

Ich habe noch einen Lösungsansatz gefunden.
Falls du DbRep im Einsatz hast und dieses Statement im scqlCmd ausführst:


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  = 'KS300' AND READING = 'data' AND TIMESTAMP < STR_TO_DATE('2019-09-25 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP > DATE_SUB(STR_TO_DATE('2019-09-25 00:00:00', '%Y-%m-%d %H:%i:%s'),INTERVAL 1 DAY) 
                   
ORDER BY TIMESTAMP DESC LIMIT 1 ) 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  = 'KS300' AND READING = 'data' AND TIMESTAMP >= STR_TO_DATE('2019-09-25 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP <= STR_TO_DATE('2019-09-26 00:00:00', '%Y-%m-%d %H:%i:%s') GROUP BY DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H') ORDER BY TIMESTAMP


klappt das sowohl für Reading "data" als auch für "rain".
Muss mal schauen ob das in der Form einbaubar ist.
Würde mich freuen wenn du das Statement bei dir mit verschiedenen Readingvariablen testen könntest.

Grüße,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

frober

Hallo Heiko,
natürlich werde ich es testen, kann leider nur sagen, ob es am WE klappt.

Grüsse Bernd
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

frober

Hallo Heiko,

ich habe 'data' und 'rain' getestet und 'data' mit verschiedenen Zeiträumen, in denen der Plot die "Fehlanzeige" hat.
Des weiteren habe ich eine Std. früher angefangen, alles am Vortag um 23:00.

Die Daten sehen TOP aus:

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  = 'KS300' AND READING = 'data' AND TIMESTAMP < STR_TO_DATE('2019-09-24 23:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP > DATE_SUB(STR_TO_DATE('2019-09-24 23:00:00', '%Y-%m-%d %H:%i:%s'),INTERVAL 1 DAY) 
                   
ORDER BY TIMESTAMP DESC LIMIT 1 ) 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  = 'KS300' AND READING = 'data' AND TIMESTAMP >= STR_TO_DATE('2019-09-24 23:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP <= STR_TO_DATE('2019-09-26 00:00:00', '%Y-%m-%d %H:%i:%s') GROUP BY DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H') ORDER BY TIMESTAMP


Um 23:45 steht nun die richtige Regengesamtmenge: :)
ZitatSqlResultRow_01

2019-09-24 23:45:11|KS300|data|T: 14.2 H: 92 W: 0.0 R: 1666.9 IR: no Wi: 0

2019-10-06 17:49:40


SqlResultRow_02

2019-09-25 00:58:54|KS300|data|T: 14.2 H: 92 W: 0.0 R: 1666.9 IR: no Wi: 0

2019-10-06 17:49:40


SqlResultRow_03

2019-09-25 01:54:49|KS300|data|T: 14.4 H: 92 W: 0.0 R: 1666.9 IR: no Wi: 0

2019-10-06 17:49:40


SqlResultRow_04

2019-09-25 02:53:17|KS300|data|T: 14.5 H: 92 W: 0.0 R: 1666.9 IR: no Wi: 0

Zum Verständnis für mich, da mir der SQL-Befehlssatz nicht geläufig ist:
Von jeder Std wird der letzte, also höchste, Timestamp und dazu der höchste Wert (String) aus dieser Std. angezeigt.
D.h. Timestamp und value gehören eigentlich nicht zusammen, sind aber aus der gleichen Std.

Wenn das so ist, dann passt alles.  :)

Danke und Gruß
Bernd


Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

DS_Starter

Hallo Bernd,

hört sich gut an.  :)
Der Subselect in der Klammer am Angang liefert dem eigentlichen Select eine Tabelle "Z" die aus einem Datensatz besteht, nämlich den letzten der Vorperiode (INTERVAL 1 Day = - Tag des vorher angegebenen Datums).
Das wird dann mit dem nächsten Select gemergt (UNION ALL) um die Grundlage für Berechnung der Deltas zu haben.

Nun muss ich das Konstrukt im DbLog einbauen ohne ungewünschte Nebenwirkungen hervorzurufen.
Wenn ich das gemacht habe und der Meinung bin dass es richtig arbeitet, werde ich die neue DbLog-Version in dem
DbLog Optimierungsthread (https://forum.fhem.de/index.php/topic,65860.0.html) veröffentlichen.

Ich bitte dich dann, und natürlich auch alle anderen User, möglichst intensiv die SVG-Erstellung zu testen.
Die Änderung der SQL-Statements hat ja eine fundamentale Auswirkung.  ;)

Danke dir !

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

frober

Auch nochmals danke dir.
Den Thread lese ich eh mit....

Schönen Sonntag noch.

Bernd
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...