Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Neues Database Plugin

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

  • Cannon
    antwortet
    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​

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    sqlite3 muss bereits installier gewesen sein. Sonst könnte SmartHomeNG es nicht nutzen.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    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.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Noch eine Idee: Läuft evtl. bei Dir eine andere Software, die auch auf die Datenbank zugreift?

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    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.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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).

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    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?

    Einen Kommentar schreiben:


  • fuxl66
    antwortet
    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

    Einen Kommentar schreiben:


  • Jackhammer
    antwortet
    bmx ok danke für den Tipp!

    Einen Kommentar schreiben:


  • bmx
    antwortet
    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.

    Einen Kommentar schreiben:


  • Jackhammer
    antwortet
    Guten Abend zusammen,

    ich bin gerade dabei ein paar Items neu zu strukturieren. Da sind dann auch ein paar dabei für die ich in der DB Daten erfasst habe die ich weiter verwenden möchte. Kann ich irgendwie die Daten der z.B. ItemID 200 in eine neue ItemID z.b. 345 kopieren?

    Danke für eure Hilfe!

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,
    Zitat von bmx Beitrag anzeigen
    Bei mir hatten diese Optimierungen nichts grossartiges ergeben
    ... das hatte ich überlesen. Dann brauche ich das doch nicht mehr testen?!
    Hattest du exclusive probiert? Da spricht ja nun wirklich nix gegen und sollte faktor 2 bringen.

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    ich kann das gerne testen.
    Würdest du dein funktion_datenbankitem_packen teilen, damit ich einen Startpunkt habe?

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Ich hätte jetzt gerne drum gebeten, das Du die Vorschläge zum Tuning mal ausprobierst. Bei mir hatten diese Optimierungen nichts grossartiges ergeben. Auch eine Erhöhung von cache_size war ergebnislos.
    Den Journal Mode WAL würde ich jetzt nicht setzen wollen. Nachher steigen mir die Leute auf's Dach weil ich Sachen gebaut habe die eine Jahrelang aufgebaute Datenbank zerstört haben ;-)

    Mein Skript über die u.a. Zeit hat folgenden Logeintrag ergeben:
    Code:
    2022-04-16 18:46:15 NOTICE logics.funktion_datenbankitem_packen Löschen von 439288 Datensätzen benötigte 97978.37 Sekunden
    Das bedeutet pro Datensatz im Schnitt 0,23 Sekunden.
    Der zu reinigende Datenbereich umfasst 2 Monate zwischen November 2017 und Dezember 2017 und es sollte alle 10 min ein Datensatz übrig bleiben.

    Einen Kommentar schreiben:

Lädt...
X