Problem: Event-Logging in SQLite-DB

  • Nachdem ich eine ganze Weile gesucht habe und immer wieder über die Anzahl der Events in der Event-History gestolpert bin, habe ich Folgendes gefunden.


    Beim Start schreibt mein doorpi eine SQLite-Datenbank, die eventlog.db. Die ist allerdings leer, hat eine Größe von 3072 Byte.


    Events sollten in diese Datenbank geschrieben werden. Sie landen aber tatsächlich in der Datei eventlog.db-journal (angelegt im gleichen Verzeichnis, wie die eventlog.db), das ist eine temporäre Datei die im gleichen Verzeichnis angelegt wird. Die Events werden zu keiner Zeit in das eigentliche Datenbankfile committed, es behält immer die Größe von 3072 Byte.


    Nun kann es ja sein, dass da bei der Installation ein Fehler passiert ist - darum zunächst die Frage, ob jemand eine eventlog.db mit anderer Größe hat. Steht in der Default-Installation im gleichen Verzeichnis wie die doorpi.ini.


    LG


    pah

  • OK, das wundert mich nicht, denn im Code fehlt das Commit. Anbei eine modifizierte Datei handler.py (leider wegen der entsprechenden Sperren des Forums mit der zusätzlichen Änderung .txt), die man statt


    /usr/local/lib/python2.7/dist-packages/DoorPi-2.5.0.4-py2.7.egg/doorpi/action/handler.py einsetzen kann


    handler.py.txt


    Diese Lösung ist keineswegs optimal, weil jetzt nach jedem Insert in die Datenbank ein Commit durchgeführt wird - da sollte noch ein anderer Mechanismus rein, der das z.B. erst nach ein paar Events macht.


    LG


    pah

  • Nächster Schritt:


    Ersatzdateien für


    /usr/local/lib/python2.7/dist-packages/DoorPi-2.5.0.4-py2.7.egg/doorpi/action/handler.py
    /usr/local/lib/python2.7/dist-packages/DoorPi-2.5.0.4-py2.7.egg/doorpi/status/status_lib/history_event.py


    Verfügen nicht nur über das reparierte Event-Logging. Sondern mit dem Web-Aufruf


    http://<ip-adresse des doorpi>/status?module=history_event&name=purge&value=<gleitkommazahl>


    werden alle Einträge in der Event-Datenbank gelöscht, die älter als eine bestimmte Anzahl von Tagen (!) sind.


    LG


    pah


    handler.py.txt
    history_event.py.txt


    (Aktuelle Versionen von Sonntag 24.7.)

  • Hallo pah


    Danke für den Tipp!


    Auf meinem derzeitigen DoorPi System, welches ich erst vor 4 tagen aufgesetzt habe, finden sich die dateien allerdings wie folgt:


    /usr/local/lib/python2.7/dist-packages/doorpi/action/handler.py
    /usr/local/lib/python2.7/dist-packages/doorpi/status/status_lib/history_event.py


    Die Frage ist: Was nun?
    Muss ich das Doorpi - system komplett neu aufsetzen oder reicht das pure Ersetzen der Dateien?


    Gruß
    Sailor