Selektion über DbLog history

Begonnen von decaflo, 07 Dezember 2016, 23:57:14

Vorheriges Thema - Nächstes Thema

decaflo

Liebe fhem-Gemeinde,

ich verwende für verschiedene Anwendungen Selektionen aus der history Tabelle von DbLog. Um dabei zusammengehörende Events zu erkennen (z.B. internal_number und external_number eines Anrufs im DEVICE fbcallmonitor) verwende ich einen selfjoin über TIMESTAMP.

MariaDB [fhem]> select a.TIMESTAMP,a.value,b.value from history a, history b where a.DEVICE='fbcallmonitor' and b.DEVICE='fbcallmonitor' and a.TIMESTAMP=b.TIMESTAMP and a.READING='internal_number' and b.READING='external_number' and a.TIMESTAMP>NOW() - INTERVAL 7 HOUR;
+---------------------+----------+-------------+
| TIMESTAMP           | value    | value       |
+---------------------+----------+-------------+
| 2016-12-07 16:56:16 | 31xxxxxx | 0179xxxxxxx |
| 2016-12-07 16:56:25 | 31xxxxxx | 0179xxxxxxx |
| 2016-12-07 17:11:35 | 31xxxxxx | 0179xxxxxxx |
+---------------------+----------+-------------+
3 rows in set (0.02 sec)

Das erscheint mir nicht sehr verlässlich, immerhin könnte es verschiedene Events in einer Sekunde geben, die nicht zusammengehören. Ausserdem frage ich mich, ob der TIMESTAMP einer solchen Gruppe auch immer identisch ist, oder ob es auch sein kann, dass die Events unterschiedliche TIMESTAMPs haben, wenn der Abruf länger als 1s dauert. Hängt vermutlich vom Modul ab.

Gibts dafür eine bessere Lösung? Wie macht Ihr das?

Beste Früße
Florian