Hallo,
Ich habe seit längerem DBlog mit einer MySQL DB am laufen. Daten werden dort auch gelogt, aber heute musste ich nach einem Fehlalarm meiner Rauchmelder feststellen, dass deren Meldungen seit September nicht mehr in der Datenbank stehen.
In den Readings sehe ich, das FHEM eine Änderung empfangen hat:
alive yes 2016-11-23 09:55:16
battery ok 2016-11-23 09:55:16
contact open (to vccu) 2016-11-23 09:55:16
recentStateType info 2016-11-23 09:55:16
sabotageError off 2016-11-23 09:55:16
state open 2016-11-23 09:55:16
Im Log steht aber nichts, obwohl dort meiner Meinung nach alles gelogt werden sollte:
Internals:
CONFIGURATION ./db.conf
DBMODEL MYSQL
DEF ./db.conf .*:.*
NAME logdb
NR 678
NTFY_ORDER 50-logdb
PID 3011
REGEXP .*:.*
STATE connected
TYPE DbLog
dbconn mysql:database=fhem;host=localhost;port=3306
dbuser fhemuser
Helper:
Dblog:
State:
Logdb:
TIME 1479353854.30536
VALUE connected
Readings:
2016-11-17 04:37:34 state connected
Attributes:
room Haus,Logfiles
Was könnte hier falsch laufen?
Moin,
schau mal in die DB und sehe nach, ob in der Tabelle current viele alte Werte stehen. Ich habe es schon gehabt, dass wenn da viele Werte für dasselbe Device stehen, diese nicht mehr in die Tabelle history übernommen werden.
...außerdem mache ich auch nicht alle Logs in eine Tabelle, die dürfte dann doch seehr groß werden.
Gruß,
Stephan
Von diesem Device stehen nur die 6 Einträge aus dem September in Current:
mysql> select * from current where DEVICE="Rauchmelder";
+---------------------+-------------+--------+-------------------------+-----------------+----------+------+
| TIMESTAMP | DEVICE | TYPE | EVENT | READING | VALUE | UNIT |
+---------------------+-------------+--------+-------------------------+-----------------+----------+------+
| 2016-09-03 23:03:34 | Rauchmelder | CUL_HM | Activity: alive | Activity | alive | |
| 2016-09-03 23:08:09 | Rauchmelder | CUL_HM | R-cyclicInfoMsg: on | R-cyclicInfoMsg | on | |
| 2016-09-03 23:08:58 | Rauchmelder | CUL_HM | sabotageError: off | sabotageError | off | |
| 2016-09-03 23:08:58 | Rauchmelder | CUL_HM | open | state | open | |
| 2016-09-03 23:08:09 | Rauchmelder | CUL_HM | R-pairCentral: 0x1E9E56 | R-pairCentral | 0x1E9E56 | |
| 2016-09-03 23:08:09 | Rauchmelder | CUL_HM | R-sabotageMsg: on | R-sabotageMsg | on | |
+---------------------+-------------+--------+-------------------------+-----------------+----------+------+
6 rows in set (0.11 sec)
Insgesamt sind momentan 150642 Einträge in Current.
Wie teilst Du das DBlog auf mehrere Tabellen auf? Über mehrere DBlog Devices?
Zitat von: reibuehl am 24 November 2016, 11:12:41
Insgesamt sind momentan 150642 Einträge in Current.
Das ist wohl zuviel... als ich das hatte, habe ich die aus current weggelöscht und dann ging es wieder... ich vermute mal, es hängt damit zusammen, wie dbLog die Werte von current nach history umschaufelt.
Zitat von: reibuehl am 24 November 2016, 11:12:41Wie teilst Du das DBlog auf mehrere Tabellen auf? Über mehrere DBlog Devices?
Genau so... allerdings beutze ich tatsächlich mehrere Datenbanken, denn dbLog greift ja immer auf current/history zu. Und der Sinn ist ja, dass die einzelnen Dateien nicht so groß werden.
Gruß,
Stephan
150tsd in Current? Nicht vertan und du meinst HISTORY? Ich habe gerade geschaut Current: 137, History:475000.
Nein, nicht vertan :-) In history sind es deutlich mehr:
mysql> select count(*) from history;
+----------+
| count(*) |
+----------+
| 26535837 |
+----------+
1 row in set (16.98 sec)
Wahnsinn, logst du für Gott die Welt?
Mal blind: falls auf pi, Speicherkarte voll?
Ist doch 'ne Datenbank ;)
Die DB liegt auf einem Server, der damit eigentlich keine Probleme hat. Für andere Devices sehe ich auch aktuelle Einträge.
Nach welchen Kriterien werden den die Einträge von current nach history verschoben?