Modul DbRep: Problem mit defEntries

Begonnen von Hermann20, 09 Oktober 2016, 18:48:55

Vorheriges Thema - Nächstes Thema

Hermann20

Hallo,

ich verwende DbRep zum Datenexport in csv-Files. (Die Auswahl mittels device, timestamp_begin, timestamp_end, ... habe ich verstanden und es funktioniert.)

Nun versuche ich bisher leider erfolglos, alte oder überflüssige Daten zu löschen.

Attibute:
   allowDeletion 1
   expimpfile /media/usbssd/Db.csv
   reading    pressure-nn
   room       CUL
   webCmd     exportToFile


set myDbRep countEntries liefert:
1970-01-01__pressure-nn__COUNT__all_between_timestamps 413  2016-10-09 18:31:28
state                                                  done 2016-10-09 18:31:28

D.h. es existieren 413 Readings "pressure-nn".

set myDbRep delEntries liefert:
state  running   2016-10-09 18:36:13
Hängt, da passiert nichts mehr.

Und im LOG-File ist folgende Fehlermeldung:
DBD::SQLite::db prepare failed: ORDER BY without LIMIT on DELETE at ./FHEM/93_DbRep.pm line 2000.

Ich habe das Löschen auch mit anderen Parametern (Zeit, anderes devices oder reading) probiert, AllowDeletion steht auf 1, es funktioniert trotzdem nicht.

Was habe ich nicht richtig verstanden oder was mache ich falsch?

Vielen Dank im voraus,
Gruß Hermann
FHEM, Raspberry Pi 4, CUL868 V1.58, HM-Sec-SCo, HM-Sec-SC-2, HM-Sec-RHS, HM-Sen-MDIR-O-2,HM-LC-Sw1-BA, HM-LC-SW1-FM, HM-LC-SW2-FM, HM-LC-Sw4-BA, FRITZ!DECT 200 (Wetter: BMP180, DHT22, TSL2561, Heizung: ECMD/ECMDDevice), CCU3, MQTT

DS_Starter

Hallo Hermann,

da kannst du nichts dafür, das war mein Fehler. Hab ich gleich korrigiert.
Nimm mal bitte die V4.1.3 aus diesem Thread:

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

Und gib bitte Bescheid ob nun bei dir alles klappt.

Grüße
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

Hermann20

Hallo Heiko,

das ging ja schneller als der Blitz. Das Löschen funktioniert nun, ich habe mittels Selektion device, reading und/oder Zeit den angesammelten Müll aus meiner Datenbank entfernen können. Herzlichen Dank für die schnelle Hilfe.

Darf ich noch eine weitere Frage anhängen?
Gibt es eine Möglichkeit etwas wie den Befehl VACUUM aus FHEM heraus auszuführen?
Erst dieser Befehl auf der SQLite Kommandozeile verkleinert die Datei wirklich. (Habe nicht wirklich Ahnung von SQLite, im aktuellen Fall wurde das File halbiert.)

Gruß
Hermann
FHEM, Raspberry Pi 4, CUL868 V1.58, HM-Sec-SCo, HM-Sec-SC-2, HM-Sec-RHS, HM-Sen-MDIR-O-2,HM-LC-Sw1-BA, HM-LC-SW1-FM, HM-LC-SW2-FM, HM-LC-Sw4-BA, FRITZ!DECT 200 (Wetter: BMP180, DHT22, TSL2561, Heizung: ECMD/ECMDDevice), CCU3, MQTT

DS_Starter

#3
Hallo Hermann,

prima dass es jetzt funktioniert. Wie das manchmal so ist, war es ein cut & paste-Fehler. Ist mir sofort wie Schuppen von den Augen gefallen als ich deine Meldung sah  ;)

Ein großer Kenner von SQLite bin ich auch nicht, ich setze MySQL ein, dort gibt es kein VACUUM.
Aber um deine Frage zu beantworten .... ich denke dass es funktionieren würde den Befehl abzusetzen. Soviel ich aber weiß, wird FHEM bei der Ausführung des VACUUM-Befehls blockieren da die Datenbank, solange der Befehl läuft, keine Verarbeitung zuläßt.
DbLog ist nicht nonblocking konzipiert und wird seine Daten nicht losbekommen wenn VACUUM läuft.

Also ich vermute ... ja man könnte es machen. Aber ob das sinnvoll ist ??

Allerdings probiert und getestet habe ich so etwas bisher nicht.
Probier doch mal wie FHEM sich verhält solange der VACUUM läuft !  Wäre auch für mich interessant zu wissen.
Ich habe ein kleine SQLIte für Testzwecke (für die Entwicklung des Moduls), aber da ist nicht viel drin.

Grüße
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

Hermann20

Hallo Heiko,

ich denke, das mit dem VACUUM macht keinen Sinn. Solange VACCUM läuft sollten keine Zugriffe erfolgen, das schreit ja nach Ärger. Probieren geht leider nicht mehr, die Datenbank ist jetzt klein. Zunächst hatte ich mich halt gewundert, dass die Datei trotz löschen nicht kleiner wurde und war auf VACUUM gestoßen.

Gruß
Hermann
FHEM, Raspberry Pi 4, CUL868 V1.58, HM-Sec-SCo, HM-Sec-SC-2, HM-Sec-RHS, HM-Sen-MDIR-O-2,HM-LC-Sw1-BA, HM-LC-SW1-FM, HM-LC-SW2-FM, HM-LC-Sw4-BA, FRITZ!DECT 200 (Wetter: BMP180, DHT22, TSL2561, Heizung: ECMD/ECMDDevice), CCU3, MQTT