DBLog - Historische Werte ausdünnen

Begonnen von C0mmanda, 14 September 2015, 18:38:21

Vorheriges Thema - Nächstes Thema

Sandmann

Hallo alle,

ich möchte meine logfiles auch "ausdünnen" weil mein Fhem ( auf Raspberry Pie ) in letzter Zeit des öfteren schon mal Wegstürzt.

Wenn Ich nun: set fhem-2017-03.log reduceLog 10
eingebe bekomme ich ein "Please define fhem-2017-03.log first" als Antwort.

Wenn ich ein "set Logfile reduceLog 10" eingebe bekomme ich ein
"Unknown argument reduceLog, choose one of absorb addRegexpPart removeRegexpPart reopen"
als Antwort. Was mache ich falsch ?

Leider sind in der Commandref dazu keine direkten Beispiele vergeben und da ich vieles in diesem Thread nicht verstehe,
ist es mir unmöglich die ganzen (gefühlten) 100 Seiten hier zu lesen.

Kann mir da bitte jemand weiter helfen ?

Bis denn dann
Sandman
Bis denn dann
Sandman

Frank_Huber

der Befehl ist für DBLog.

Bei log FILES kannst einfach die alten Dateien löschen-

Sandmann

Jau, vielen Dank Frank.

Ich habe es mir gerade angesehen, DB-Log ist ja eine ganz andere Geschichte :-(
Sieht auf den ersten augenblich sehr kompliziert aus aber auch sinnvoll.
Bis jetzt habe ich die älteren Logfiles die über 40 - 50 MB waren manuell "ausgedünnt"
nun wird mir das aber zuviel arbeit und ich werde über kurz oder lang auf DBlog umstellen müssen.
Hoffentlich bekomme ich das hin.

Nochmals vielen Dank

Bis denn dann
Sandman
Bis denn dann
Sandman

cmonty14

Zitat von: rapster am 22 September 2015, 15:58:44
Den benötigten INDEX kannst du mit diesem SQL-Befehl erstellen:

CREATE INDEX index_reduceLog ON history (TIMESTAMP,DEVICE,EVENT);


Hallo!

Mit welcher WHERE-Bedingung werden von der Funktion "reduceLog" die Datensätze selektiert, die gelöscht bzw. akkumuliert werden sollen?

THX

reibuehl

Ich würde gerne das reduce nur für ein Device verwenden. Gibt es eine einfache RegExp mit der ich alles außer einem Device bei reduce exclude angeben könnte? Also ohne alle Devices im exclude Attribut angeben zu müssen? Oder ein include?
Reiner.

sku

Zitat von: Xcoder am 03 Januar 2017, 01:09:53
Hallo,
In meinem Datenhaufen gibt es einige Devices welche oft gleiche Werte haben um dann gelegentlich auf andere Werte wechseln. Z.B. Stromverbrauch ist für einige Zeit 0 und wechselt dann auf irgend einen Wert.

Ich suche eine verlustfreie Methode um die Daten zu reduzieren indem für ein bestimmtes Device alle Konstanten Werte, ausser der erste und letzte gelöscht werden. Noch schicker wäre, wenn bei langen konstanten Phasen, z.B. ein Wert pro Stunde erhalten bleibt.

Da gibt es sicher ein SQL Trick mit JOIN oder ähnlich, aber da bin ich nicht so fit.

Aktuelle Daten begrenze ich mit DbLogExclude  und minInterval auf 3600 sec. Schick wäre das aber auf ältere Daten anwenden zu können. Kann mir da jemand auf die Sprünge helfen?

Gruss, Xcoder

Einen ähnlichen Gedanken hatte ich auch und bin bei der Suche auf diesen Thread gestoßen. Gefällt mir, da hier zB die Ventilpositionen und Batteriespannungen von Heizkörpern erhalten bleiben. Außer es gab einen Ausfall, der wäre dann nicht mehr zu erkennen... Sahnehäubchen wäre noch, wenn man diesen Ausfall irgendwie sichtbar machen könnte.

Wäre es möglich, das einzubauen?

Deckoffizier

Hallo Sandmann,

ZitatBis jetzt habe ich die älteren Logfiles die über 40 - 50 MB waren manuell "ausgedünnt"

hast Du bei FileLog attr nrarchive in Benutzung ?

Gruß

Hans-Jürgen
FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

bobyg

Hallo,

ich suche eine Möglichkeit den Startzeitpunkt beim reduceLog festzulegen. Also damit nicht alle Einträge vom Anfang der Datenbank täglich aufs neue überprüft werden müssen. Ich erhoffe mir davon eine schnellere Ausführung.
Habe ich die Möglichkeit dafür übersehen?
Vielen Dank.

wuast94

Ich habe mittlerweile kanpp 15.000.000 einträge .. nachdem ich reducelog mit 90 tagen gemacht habe lief das kurz .. ist auf knapp 14.000.000 Einträge runter und ab da passiert leider nichts mehr .. im log steht dann nach dem befehl "set logdb reduceLog 90 average" folgendes "reduceLog executed. Rows processed: 7100, deleted: 0, updated: 0, time: 0.00sec" irgendwas kommt da nicht hin :D

Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered

DS_Starter

Schaut euch alternativ mal delSeqDoublets im DbRep an um Sätze zu löschen. Die Funktion behandelt im Gegensatz zu reduceLog auch nichtnumerische Werte und ist einstellbar was den Behandlungszeitraum betrifft.
Commandref bitte vorher genau lesen und vestehen was da passiert !

Grüße
ESXi@NUC+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

wuast94

aber damit kann ich ja nur auf einander folgende nicht geänderte werte löschen. ich möchte aber ja genau das was reduceLog eigentlich macht allerdings tut es das bei mir aus unbekannten gründen nicht :/
Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered

wuast94

Gibt es eine Möglichkeit die Zeitspanne zu ändern die reduziert wird? Also das nicht eine Stunde zu einem Wert gemacht wird sondern zb 10 Minuten zu einem Eintrag gemacht werden?
Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered

miche

Hallo,

ich habe gerade reducelog ausprobiert, bekomme aber folgenden Fehler:

DBD::mysql::st execute failed: Error writing file '/tmp/MYFGCYoQ' (Errcode: 28) at ./FHEM/93_DbLog.pm line 4205.


Habe ich beim einrichten was falsch gemacht?
FHEM läuft auf einem rpi und die MySQL Datenbank auf einem Qnap Nas

DS_Starter

Nein, hast nichts falsch gemacht. Die Lösung liest du hier :

https://forum.fhem.de/index.php/topic,90597.msg830653.html

Idt zwar für Synology, wird für dich aber ebenso zutreffen.

Grüsse,
Heiko
ESXi@NUC+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

miche

Daumen hoch, genau das wars! Vielen Dank