Hallo,
ich habe mein Log auf DB umgestellt und das läuft super, allerdings werden zunächst ja alle Events geloggt. Das wollte ich nun einschränken. Ich habe z.B. bei meinem OBIS Stromzähler
attr Stromzaehler DbLogInclude total_consumption,state,statTotal_consumptionLast,statTotal_consumption,statPowerYearLast,statPowerYear,statPowerMonthLast,statPowerMonth,statPowerHourLast,statPowerHour,statPowerDayLast,statPowerDay,statAnzahl_NeustartsLast,statAnzahl_Neustarts,power,Neustart,Anzahl_Neustarts
versucht, das Logging einzugrenzen und hätte das so verstanden, dass dann auch nur diese Readings geloggt werden, es werden aber trotzdem wie im Anhang viele andere Readings mitgeloggt, interessanterweise aber nicht alle Readings. Das ist bei anderen Devices anscheinend auch so. Ich habe auch schon ohne Leerzeichen nach dem Komma probiert...
Mach ich da was falsch ?
Vermutlich hast du im DbLog-Device das Attribut "DbLogSelectionMode" nicht auf "Include" gesetzt.
Standard ist "Exclude".
Grüße.
Heiko
Jepp, genau das wars wohl :-)
Danke dir !!!
Hallo,
Oh Mann, ich habe solange gesucht. Ich hatte DbLogInclude und nicht DbLogSelectionMode eingestellt. Richtiges lesen hilft.
Kann man einfach die überflüssigen Device-Logs löschen? Meine Datenbank ist in paar Tagen riesig geworden. Ich möchte aber einige Devices behalten. Sonst würde ich bei Null anfangen.
Dankeschön
Moin,
ZitatKann man einfach die überflüssigen Device-Logs löschen? Meine Datenbank ist in paar Tagen riesig geworden.
Na klar geht das. Ganz einfach mit DbRep. Wenn du noch etwas Geduld hast, zeige ich es dir bei unserem nächsten Stammtisch. :D
Wenn ich dazu komme, schreibe ich heute Abend ein kleines How-To ins Wiki.
LG,
Heiko
Hallo Heiko,
immer wieder Klasse.... Prima.
Mach Dir keinen Streß, ich kann warten. Eine Übersicht, welches Device wieviel Platz braucht wäre in diesem Zusammenhang auch interessant. Aber das sind Wünsche...
Liebe Grüße
:) dein Wunsch kann auch erfüllt werden, zumindest sieht man die anzahl der datensätze aller in der DB enthaltenen Devices.
Liebe Grüsse zurück
Zitat von: FHEM-User22 am 18 September 2019, 09:09:22
Eine Übersicht, welches Device wieviel Platz braucht wäre in diesem Zusammenhang auch interessant. Aber das sind Wünsche...
Das kannst auf SQL Ebene rausziehen:
select `history`.`DEVICE` AS `device`,`history`.`READING` AS `reading`,count(0) AS `number` from `history` group by `history`.`DEVICE`,`history`.`READING` order by `number` DESC;
Wenn man ein DbRep-Device definiert hat, gibt es dort ein Set "sqlSpecial".
Dort sind zur Zeit drei Routinen hinterlegt die man häufiger braucht und die man regelmäßig ausführen möchte/könnte.
So gibt es auch ein
set <dbrep> sqlSpecial allDevCount
Das liefert nach etwas Laufzeit die in der DB vorhandenen Devices und die Anzahl ihrer Datensätze. (einen vordefinierten Setter incl. Readings gibt es auch)
Um die Ausgabe etwas freundlicher zu gestalten, kann man das Attribut "sqlResultFormat = table" setzen.
Ich habe das im DbRep eingebaut um bei Bedarf noch mehr vordefinierte Statements den Usern ausliefern zu können. Wenn jemand also ein Statement hat was es wert wäre dort zu hinterlegen, kann er es mir gerne mitteilen.
Grüße,
Heiko