Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

    Out of the box gibt es da nichts. Da müsstest Du Dich in SQL einlesen und eine Logik dafür schreiben die das erledigt.
    Oder Du kannst die Datenbank kopieren und dann an der Kopie mit einem Datenbanktool (z.B. DB Browser SQLite) ändern. Wenn alles geklappt hat, dann kann die kopierte Datenbank anstelle des Originals verwendet werden.

    Kommentar


      bmx ok danke für den Tipp!

      Kommentar


        Hi,

        Ich bin vor einiger Zeit von sqlite auf das database plugin umgestiegen und daher ist meine DB noch nicht sehr alt/gefüllt.

        Code:
        Item Power.E_Minus.Jahr: problem evaluating 'sh.Power.E_Minus() - sh.Power.E_Minus.db('max', sh.day.since.year.dbstr(), sh.day.since.year.dbstr())': unsupported operand type(s) for -: 'int' and 'NoneType'
        Zwecks Statistik hab ich einige solcher Items die nun im LOG Eintrag finden.
        Kann ich das irgendwie abfangen? zb. mit

        Code:
         0 if sh.Power.E_Minus.db('max', sh.day.since.year.dbstr(), sh.day.since.year.dbstr()) is None else sh.Power.E_Minus() - sh.Power.E_Minus.db('max', sh.day.since.year.dbstr(), sh.day.since.year.dbstr())
        Oder wie macht man das am Besten?

        Danke
        Markus

        Kommentar


          Zitat von Msinn Beitrag anzeigen
          Der andere Fall Code:

          2021-02-04 09:16:29 WARNING plugins.database Problem dumping env.system.diskusagepercent: database is locked
          klingt entweder nach einer defekten Datenbank oder die SQLite Datenbank ist von einem anderen Tool (oder einer weiteren laufenden SmartHomeNG Instanz) geöffnet.
          Bei kommt dieser Fehler nun schon seit Wochen ...

          Code:
          2022-11-24  18:11:21 WARNING  plugins.database    Problem dumping env.core.memory: database is locked
          2022-11-24  18:11:26 WARNING  plugins.database    Problem dumping env.core.threads: database is locked
          2022-11-24  18:11:31 WARNING  plugins.database    Problem dumping env.core.scheduler.worker_threads: database is locked
          2022-11-24  18:11:36 WARNING  plugins.database    Problem dumping env.core.scheduler.idle_threads: database is locked
          2022-11-24  18:11:41 WARNING  plugins.database    Problem dumping env.core.scheduler.active_threads: database is locked
          2022-11-24  18:11:46 WARNING  plugins.database    Problem dumping env.system.load: database is locked
          2022-11-24  18:11:51 WARNING  plugins.database    Problem dumping env.system.memory.used: database is locked
          2022-11-24  18:11:56 WARNING  plugins.database    Problem dumping env.system.memory.percent: database is locked
          2022-11-24  18:12:02 WARNING  plugins.database    Problem dumping env.system.swap: database is locked
          2022-11-24  18:12:07 WARNING  plugins.database    Problem dumping env.system.diskusagepercent: database is locked
          2022-11-24  18:12:12 WARNING  plugins.database    Problem dumping Zentral.Wetter.pluggit.Temperatur: database is locked
          2022-11-24  18:12:18 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.currently.precipIntensity: database is locked
          2022-11-24  18:12:23 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.currently.temperature: database is locked
          2022-11-24  18:12:28 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.currently.apparenttemperature: database is locked
          2022-11-24  18:12:34 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.currently.dewpoint: database is locked
          2022-11-24  18:12:40 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.currently.windSpeed: database is locked
          2022-11-24  18:12:45 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.currently.windGust: database is locked
          2022-11-24  18:12:51 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.currently.cloudCover: database is locked
          2022-11-24  18:12:56 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.currently.ozone: database is locked
          2022-11-24  18:13:01 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.hourly.hour12.temperature: database is locked
          2022-11-24  18:13:06 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.hourly.hour12.dewpoint: database is locked
          2022-11-24  18:13:12 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.daily.day3.apparentTemperatureMin: database is locked
          2022-11-24  18:13:17 WARNING  plugins.database    Skipping dump, since an other database operation running! Data is buffered and dumped later.
          2022-11-24  18:13:17 WARNING  plugins.database    Problem dumping Zentral.Wetter.darksky.daily.day6.apparentTemperatureMaxTime: database is locked
          2022-11-24  18:13:22 WARNING  plugins.database    Problem dumping OG.Diele.Heizung.ist: database is locked
          2022-11-24  18:13:23 WARNING  plugins.database    Dumping buffered data from skipped dump(s).
          2022-11-24  18:13:28 WARNING  plugins.database    Problem dumping EG.WC.Heizung.ist: database is locked
          2022-11-24  18:14:23 WARNING  plugins.database    Problem dumping Zentral.Wetter.pluggit.Temperatur: database is locked
          2022-11-24  18:14:29 WARNING  plugins.database    Problem dumping EG.Diele.Heizung.ist: database is locked​
          Ist mein Auszug direkt nach dem Neustart von SmartHomeNG ... Den ganzen Tag über werden immer wieder solche Dinge angezeigt. Wie kann man das denn lösen?

          Kommentar


            Welche Datenbank nutzt Du (SQLite, MySQL) und welche Version des database Plugins hast Du im Einsatz?

            Ich muss dazu sagen:
            Ich habe Warnungen "Problem dumping ..." bei mir noch nie erlebt.
            Meldungen "Skipping dump ..." und "Dumping buffered data ..." können bei größeren Datenbanken und hoher Anzahl an neuen Einträgen schon mal vorkommen und sind unbedenklich. Ich überlege diese Meldungen von WARNING auf INFO herabzusetzen.

            Ich nutze SQLite3 und meine Datenbank ist ca. 12.9 GB groß (in der Spitzenzeit rund 165 Millionen Einträge).

            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              Zitat von Msinn Beitrag anzeigen
              Welche Datenbank nutzt Du (SQLite, MySQL) und welche Version des database Plugins hast Du im Einsatz?
              Plugin-Version ist 1.6.3, SQLite 3. Meine Datenbank ist nur 1,22 GB groß - sollte also nicht so riesig sein. Wie viele Einträge ich habe, weiß ich aber nicht.

              Kommentar


                Dann klingt das nach einer defekten Datenbank. Schau mal, wie Du SQLite3 Datenbanken reparieren kannst. ABER: Zuerst SmartHomeNG beenden UND eine Sicherungskopie der Datenbank Datei machen.
                Viele Grüße
                Martin

                There is no cloud. It's only someone else's computer.

                Kommentar


                  Noch eine Idee: Läuft evtl. bei Dir eine andere Software, die auch auf die Datenbank zugreift?
                  Viele Grüße
                  Martin

                  There is no cloud. It's only someone else's computer.

                  Kommentar


                    Zitat von Msinn Beitrag anzeigen
                    Dann klingt das nach einer defekten Datenbank. Schau mal, wie Du SQLite3 Datenbanken reparieren kannst. ABER: Zuerst SmartHomeNG beenden UND eine Sicherungskopie der Datenbank Datei machen.
                    Ich habe die Datenbank geprüft und keine Fehler festgestellt. Problem besteht weiter.

                    Zitat von Msinn Beitrag anzeigen
                    Noch eine Idee: Läuft evtl. bei Dir eine andere Software, die auch auf die Datenbank zugreift?
                    Nicht, dass ich wüsste. Wahrscheinlich würde ich es wohl wissen, wenn das so wäre. Ich musste erst einmal sqlite3 installieren, um den Test zu machen.

                    Kommentar


                      sqlite3 muss bereits installier gewesen sein. Sonst könnte SmartHomeNG es nicht nutzen.
                      Viele Grüße
                      Martin

                      There is no cloud. It's only someone else's computer.

                      Kommentar


                        Zitat von Msinn Beitrag anzeigen
                        sqlite3 muss bereits installier gewesen sein. Sonst könnte SmartHomeNG es nicht nutzen.
                        Ich dachte es wird intern anders genutzt. Ich habe sqlite3 nicht gefunden gehabt. Es konnte auch nicht gestartet werden, bevor ich es installiert habe. Ging also auch ohne Installation:

                        Code:
                        database:
                            class_name: Database
                            class_path: plugins.database
                            driver: sqlite3
                            # prefix: log
                            precision: 6
                            connect:
                                - database:/usr/local/smarthome/eigene.db
                                - check_same_thread:0​

                        Kommentar


                          Hi,

                          Ich hole mir aus meiner DB folgenden max Eintrag.
                          Code:
                          Heute:
                              type: num
                              eval: sh.solar.current.db('max', sh.minute.since.midnight.dbstr(), 'now')
                              eval_trigger: solar.current
                              database: 'init'
                              cache: 'yes'
                          ​
                          Das klappt soweit wunderbar. Nun würde mich allerdings auch interessieren WANN dieser Max Wert war.
                          Wie bekomm ich diesen Zeitstempel in ein item geschrieben?

                          Kommentar


                            Hi,

                            Ich habe noch eine Frage.
                            Kann man ein Item aus der DB inkl. aller Werte mit einem neuen Namen duplizieren?

                            Hintergrund:
                            aktuell habe ich ein "TotalErtrag" item meiner PV das vom Wechselrichter gefüttert wird. Nun bekomme ich eine zweite Anlage. "TotalErtrag" sollte dann aus der Summe zweier Anlagen errechnet werden. Das kopierte item wird dann weiter mit der bestehenden Anlage versorgt. Ich mag einfach meine erstellten Diagramme/Tabellen weiterführen.

                            Kommentar


                              Wegen dem Kopieren der Werte für ein Item... denke das einfachste wäre das über MySQL SuperPower zu tun:
                              https://www.w3schools.com/sql/sql_in...nto_select.asp

                              Also in etwa so:

                              INSERT INTO log​ (time, item_id, duration, val_str, val_num​, val_bool, changed)
                              SELECT time,
                              23 as item_id, duration,val_str, val_num, val_bool, changed FROM log WHERE item_id=1;

                              Ist natürlich ungetestet (backup vorher erstellen). Du musst die Item IDs aus der DB besorgen (Tabelle item).
                              23 wäre die neue ItemID, 1 das von dem kopiert wird.


                              Zuletzt geändert von TCr82; 21.12.2022, 21:38.

                              Kommentar


                                Hallo,

                                seit ein paar Tagen bekomme ich sporadisch folgenden Fehler:
                                Code:
                                2023-01-12  03:16:10 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:16:10 WARNING  lib.db                                   Database [Database]: Connection error Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:16:10 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): (0, '')
                                2023-01-12  03:16:10 WARNING  lib.db                                   Database [Database]: Connection error (0, '')
                                2023-01-12  03:21:48 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:21:48 WARNING  lib.db                                   Database [Database]: Connection error Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:21:48 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): (0, '')
                                2023-01-12  03:21:48 WARNING  lib.db                                   Database [Database]: Connection error (0, '')​
                                Manchmal gibt es Folgefehler:
                                Code:
                                2023-01-12  03:25:29 ERROR    lib.db                                   Can not execute query: DELETE FROM log WHERE item_id = %(id)s ORDER BY time ASC LIMIT %(maxrecords)s; (args OrderedDict([('id', 301), ('maxrecords', 20000)])): 'NoneType' object has no attribute 'read'
                                2023-01-12  03:25:29 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): Packet sequence number wrong - got 78 expected 2
                                2023-01-12  03:25:29 ERROR    plugins.database                         Database: Error for query DELETE FROM log WHERE item_id = 301 ORDER BY time ASC LIMIT 20000;: 'NoneType' object has no attribute 'read'
                                2023-01-12  03:25:29 WARNING  lib.db                                   Database [Database]: Connection error Packet sequence number wrong - got 78 expected 2
                                2023-01-12  03:25:29 ERROR    plugins.database.Remove old              Method plugins.database.Remove old exception: 'NoneType' object has no attribute 'read'
                                Traceback (most recent call last):
                                  File "/usr/local/smarthome/lib/scheduler.py", line 678, in _task
                                    obj()
                                  File "/usr/local/smarthome/plugins/database/__init__.py", line 1558, in remove_older_than_maxage
                                    self._execute(self._prepare("DELETE FROM {log} WHERE item_id = :id ORDER BY time ASC LIMIT :maxrecords;"), {'id': item_id, 'maxrecords': self.max_delete_logentries}, cur=cur)
                                  File "/usr/local/smarthome/plugins/database/__init__.py", line 1660, in _execute
                                    self._query(self._db.execute, query, params, cur)
                                  File "/usr/local/smarthome/plugins/database/__init__.py", line 1690, in _query
                                    raise e
                                  File "/usr/local/smarthome/plugins/database/__init__.py", line 1687, in _query
                                    tuples = func(self._prepare(query), params, cur=cur)
                                  File "/usr/local/smarthome/lib/db.py", line 332, in execute
                                    result = cur.execute(stmt, args)
                                  File "/home/smarthome/.local/lib/python3.8/site-packages/pymysql/cursors.py", line 148, in execute
                                    result = self._query(query)
                                  File "/home/smarthome/.local/lib/python3.8/site-packages/pymysql/cursors.py", line 310, in _query
                                    conn.query(q)
                                  File "/home/smarthome/.local/lib/python3.8/site-packages/pymysql/connections.py", line 548, in query
                                    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
                                  File "/home/smarthome/.local/lib/python3.8/site-packages/pymysql/connections.py", line 775, in _read_query_result
                                    result.read()
                                  File "/home/smarthome/.local/lib/python3.8/site-packages/pymysql/connections.py", line 1156, in read
                                    first_packet = self.connection._read_packet()
                                  File "/home/smarthome/.local/lib/python3.8/site-packages/pymysql/connections.py", line 711, in _read_packet
                                    recv_data = self._read_bytes(bytes_to_read)
                                  File "/home/smarthome/.local/lib/python3.8/site-packages/pymysql/connections.py", line 732, in _read_bytes
                                    data = self._rfile.read(num_bytes)
                                AttributeError: 'NoneType' object has no attribute 'read'
                                2023-01-12  03:31:09 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:31:09 WARNING  lib.db                                   Database [Database]: Connection error Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:31:09 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): (0, '')
                                2023-01-12  03:31:09 WARNING  lib.db                                   Database [Database]: Connection error (0, '')
                                2023-01-12  03:37:10 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:37:10 WARNING  lib.db                                   Database [Database]: Connection error Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:37:10 WARNING  lib.db                                   fetchone: No cursor defined for stmt SELECT 1 with params ()
                                2023-01-12  03:41:56 ERROR    lib.db                                   Can not execute query: SELECT id, name, time, val_str, val_num, val_bool, changed from item WHERE name = %(id)s; (args OrderedDict([('id', 'wetter.darksky.currently.cloudCover')])): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:41:56 ERROR    plugins.database                         Database: Error for query SELECT id, name, time, val_str, val_num, val_bool, changed from item WHERE name = wetter.darksky.currently.cloudCover;: Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:41:56 WARNING  plugins.database                         id(): No id found for item wetter.darksky.currently.cloudCover - Exception Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:41:56 ERROR    lib.db                                   Can not execute query: SELECT MAX(id) FROM item; (args OrderedDict()): (0, '')
                                2023-01-12  03:41:56 ERROR    plugins.database                         Database: Error for query SELECT MAX(id) FROM item;: (0, '')
                                2023-01-12  03:41:56 WARNING  plugins.database                         Problem dumping wetter.darksky.currently.cloudCover: (0, '')
                                2023-01-12  03:41:56 WARNING  plugins.database                         Error rolling back: (0, '')
                                2023-01-12  03:41:56 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): (0, '')
                                2023-01-12  03:41:56 WARNING  lib.db                                   Database [Database]: Connection error (0, '')
                                2023-01-12  03:41:56 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): (0, '')
                                2023-01-12  03:41:56 WARNING  lib.db                                   Database [Database]: Connection error (0, '')
                                2023-01-12  03:41:56 WARNING  plugins.database                         remove_older_than_maxage skipped because db is not connected
                                2023-01-12  03:47:52 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:47:52 WARNING  lib.db                                   Database [Database]: Connection error Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:47:52 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): (0, '')
                                2023-01-12  03:47:52 WARNING  lib.db                                   Database [Database]: Connection error (0, '')
                                2023-01-12  03:54:02 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:54:02 WARNING  lib.db                                   Database [Database]: Connection error Packet sequence number wrong - got 1 expected 2
                                2023-01-12  03:54:02 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): (0, '')
                                2023-01-12  03:54:02 WARNING  lib.db                                   Database [Database]: Connection error (0, '')
                                2023-01-12  04:00:17 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  04:00:17 WARNING  lib.db                                   Database [Database]: Connection error Packet sequence number wrong - got 1 expected 2
                                2023-01-12  04:00:17 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): (0, '')
                                2023-01-12  04:00:17 WARNING  lib.db                                   Database [Database]: Connection error (0, '')
                                2023-01-12  04:00:17 WARNING  plugins.database                         remove_older_than_maxage skipped because db is not connected
                                2023-01-12  04:06:16 ERROR    lib.db                                   Can not execute query: SELECT 1 (args OrderedDict()): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  04:06:16 WARNING  lib.db                                   Database [Database]: Connection error Packet sequence number wrong - got 1 expected 2
                                2023-01-12  04:06:16 WARNING  lib.db                                   fetchone: No cursor defined for stmt SELECT 1 with params ()
                                2023-01-12  04:11:06 ERROR    lib.db                                   Can not execute query: SELECT id, name, time, val_str, val_num, val_bool, changed from item WHERE name = %(id)s; (args OrderedDict([('id', 'wetter.darksky.hourly.hour6.windGust')])): Packet sequence number wrong - got 1 expected 2
                                2023-01-12  04:11:06 ERROR    plugins.database                         Database: Error for query SELECT id, name, time, val_str, val_num, val_bool, changed from item WHERE name = wetter.darksky.hourly.hour6.windGust;: Packet sequence number wrong - got 1 expected 2
                                2023-01-12  04:11:06 WARNING  plugins.database                         id(): No id found for item wetter.darksky.hourly.hour6.windGust - Exception Packet sequence number wrong - got 1 expected 2​

                                Sagt Euch das was?
                                Vielen Dank und beste Grüße

                                Kommentar

                                Lädt...
                                X