Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread - "DatabaseAddOn" Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Und vielleicht noch mal als Ergänzung. Noch mal im Admin-Interface alles hin- und hergestellt und es läuft dann auch im DEBUG-Modus wieder.

    Wenn ich von DEBUG auf INFO umstelle, während alles funktioniert und den Core nicht neu starte, dann läuft das danach auch weiter. Irgendwie will er die DB-Verbindung nicht herstellen, wenn das LOGLEVEL auf INFO eingestellt ist. Aber auch, wenn es manuell in die logging.yaml eingefügt wird geht es nicht. Nur aus dem Admin-IF. Aber auch im Log sehe ich nichts bedeutendes.

    Kommentar


      Hallo,

      auch bei der Logger-Einstellung auf DEBUG kommt es zu einem Fehler:

      Das Plugin startet mit run():
      Code:
      2025-04-06 12:50:22 DBGHIGH plugins.db_addon Methode 'run()' aufgerufen
      2025-04-06 12:50:22 DEBUG plugins.db_addon Corresponding plugin 'database' with given config name 'database' found.
      2025-04-06 12:50:22 DEBUG plugins.db_addon Database is of type 'sqlite' found.
      2025-04-06 12:50:22 DEBUG plugins.db_addon Database Plugin available with instance=None and connection=['database:./var/db/smarthomeng.db', 'check_same_thread:0']
      2025-04-06 12:50:22 DEBUG plugins.db_addon Initialization of database API successful
      2025-04-06 12:50:22 DEBUG plugins.db_addon Connect to database.​
      Hier wird die Verbindung hergestellt.

      Nach der "Startup-Berechnungspause" beginnt die Berechnung der Items. Dazu wird eine neue Verbindung zur DB hergestellt, und die kommt nicht zu Stande:

      Code:
      2025-04-06 12:55:26 DEBUG plugins.db_addon Connect to database.
      2025-04-06 12:55:26 CRITICAL plugins.db_addon Initialization of Database Connection failed: unable to open database file
      2025-04-06 12:55:26 DEBUG plugins.db_addon Called with query='SELECT min(time) FROM log WHERE item_id = :item_id;', params={'item_id': None}, cur=None​
      Das Plugin läuft zwar weiter, aber nach dem keine Verbindung zu DB besteht, berechnet es wahrscheinlich auch nichts.

      Prüfst Du das mal?

      Kommentar


        Zitat von Sisamiwe Beitrag anzeigen
        Das Plugin läuft zwar weiter, aber nach dem keine Verbindung zu DB besteht, berechnet es wahrscheinlich auch nichts.

        Prüfst Du das mal?


        Ja das ist auch so. Ich meinte nur, dass ich nichts feststellen kann, warum die Verbindung nicht hergestellt wird. Es kommen dann auch weitere Fehler, weil die Verbindung nicht hergestellt wird. Das kommt dann auch mehrmals: "Database reconnect suppressed since last connection is less then 20sec ago".

        Wenn aber das ganze im Admin-IF auf DEBUG eingestellt ist, dann kann auch die Verbindung hergestellt werden. Dann läuft alles und auch dann, wenn dann wieder auf INFO umgestellt wird .... bis zum nächsten Neustart.

        Kommentar


          Hallo zusammen,
          ich habe immer mal wieder - alle paar Monate - das Problem, dass scheinbar meine Database korrupt wird. Das zeigt sich dann in Fehlermeldungen beim database Addon.

          Code:
          2025-10-05 00:00:15 ERROR plugins.db_addon Error 'database disk image is malformed' for query=SELECT time, MIN(val_num) as value FROM log WHERE item_id = 15 AND time BETWEEN 1744305434000 AND 1767222000000 AND val_bool = 1 occurred.
          2025-10-05 00:00:15 ERROR plugins.db_addon Error occurred during '_query_log_timestamp' of item=paradigma.Aussentemperatur. Aborting...
          2025-10-05 00:01:06 ERROR lib.db Can not execute query: SELECT time, MIN(val_num) as value FROM log WHERE item_id = ? AND time BETWEEN ? AND ? AND val_bool = 1 (args [204, 1750629628920, 1767222000000]): database disk image is malformed
          Ich habe bisher auch keine Möglichkeit gefunden, das wieder zu "reparieren", d.h., ich muss dann leider wieder von null anfangen.
          Ein database Backup einspielen funktioniert manchmal, aber auch nicht immer.

          Verwende folgende config bzw. mache regelmäßig durch einen Neustart ein Backup. Aber irgendwie ist das nicht befriedigend.
          Ich speicher die database schon auf einen USB Stick, um die Speicherkarte nicht zu belasten, funktioniert aber offensichtlich auch nicht wirklich.

          Code:
          database:
              plugin_name: database
              driver: sqlite3
              copy_database: true
              copy_database_name: /media/usbstick/smarthomeng_backup.db
          
              connect:
              -   database:/media/usbstick/smarthomeng.db
              -   check_same_thread:0
          
          db_addon:
              plugin_name: db_addon
              database_plugin_config: database
              startup_run_delay: 120
              use_oldest_entry: true
          Hat jemand ähnliche Probleme oder eine Idee, was das Problem sein könnte?

          Kommentar


            Zitat von ooUrmeloo Beitrag anzeigen
            Hat jemand ähnliche Probleme oder eine Idee, was das Problem sein könnte?
            Hey,

            du nutzt sqlite3 als Datenbank, richtig?

            Kommentar


              Zitat von Sisamiwe Beitrag anzeigen
              Hey,

              du nutzt sqlite3 als Datenbank, richtig?
              ja ... siehe oben:
              Code:
              driver: sqlite3
              Gibt's bessere Alternativen?

              Kommentar


                Zitat von ooUrmeloo Beitrag anzeigen
                Gibt's bessere Alternativen?
                Ich selbst nutze mysql. Dort können mehrere Zugriffe auf die Datenbank besser gehandhabt werden. Dafür ist das Backup etwas aufwendiger
                Da ich aber sqlite3 nicht produktiv einsetzte, kann ich das auch nicht extensiv testen. Auf meiner Testinstanz gab es bislang keine Probleme.

                Bist Du dir sicher, dass die Probleme mit der DB vom db_addon Plugin kommen.
                Ich vermute, dass das Problem bei dir liegt daran, dass 2 Plugins parallel auf die Datenbank zugreifen.
                Kannst Du dich vielleicht mal in die Treiber einlesen?

                Kommentar


                  Zitat von Sisamiwe Beitrag anzeigen

                  Bist Du dir sicher, dass die Probleme mit der DB vom db_addon Plugin kommen.
                  Ich vermute, dass das Problem bei dir liegt daran, dass 2 Plugins parallel auf die Datenbank zugreifen.
                  Kannst Du dich vielleicht mal in die Treiber einlesen?
                  Nein, bin nicht sicher, dass es vom Addon Plugin kommt. Ich habe jetzt auch gelesen, dass sqlite3 ggf. Probleme bei mehreren Usern (d.h. Plugins?) haben kann.
                  Dann muss ich mich wohl mal einlesen, wie ich einen MySQL Server zum laufen bringe ... damit ich das Mal probieren kann.

                  Kommentar

                  Lädt...
                  X