Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

  • ooUrmeloo
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    So wie ich das sehe, wird beim ersten Start der Parameter copy_database vom Plugin auf "False" gesetzt. Warum das so ist, ist mir ehrlich gesagt auch nicht klar. Das müsstest du aber in der plugin.yaml sehen. Ist auf False, oder?

    Nimm mal die 2 Zeilen 409 und 410 aus dem __init__.py vom database plugin raus
    Code:
    param_dict = {"copy_database": False}
    self.update_config_section(param_dict)​​
    stelle im plugin.yaml wieder auf True und dann paar Mal restarten
    War mir bisher nie aufgefallen .
    Aber Du hast recht. Plugin wurde automatisch auf 'False' gesetzt.
    Mit Deinen Änderungen funktioniert's jetzt - zumindest, wie von mir gewollt.
    Bei jedem SHNG Neustart generiert er eine aktuelle DB Kopie.

    Top. Vielen Dank!

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    So wie ich das sehe, wird beim ersten Start der Parameter copy_database vom Plugin auf "False" gesetzt. Warum das so ist, ist mir ehrlich gesagt auch nicht klar. Das müsstest du aber in der plugin.yaml sehen. Ist auf False, oder?

    Nimm mal die 2 Zeilen 409 und 410 aus dem __init__.py vom database plugin raus
    Code:
            param_dict = {"copy_database": False}
            self.update_config_section(param_dict)​​
    stelle im plugin.yaml wieder auf True und dann paar Mal restarten

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Benenn doch mal die alte datei um und probiere nochmals
    ändert nichts ...
    Ich versteh's irgendwie nicht. Nicht mal das Löschen der Backup Datei bringt ihn dazu, nochmal eine neue Kopie zu erstellen.
    Ich konnte heute (initial) einmal eine Kopie erstellen. Danach weder durch Neustart von SHNG noch durch reboot ...
    Im LOG steht nichts, noch nicht einmal im DEBUG Modus.
    Ich verstehe nicht, wann er eine Kopie macht und wann nicht

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Benenn doch mal die alte datei um und probiere nochmals

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Onkelandy : Darf ich Dich nochmal wegen der Option "copy_database" nerven?
    Irgendwie funkt das nicht so, wie ich denke / will.

    Ich habe jetzt folgende Konfiguration und einen Cronjob eingerichtet, der SHNG ein mal die Woche neu startet.

    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​
    Ich dachte, damit macht er dann bei jedem Neustart eine (Sicherungs-) Kopie der Datenbank.
    Macht er aber nicht ... :-(
    Das funktioniert nur einmalig, danach führt er den Befehl nicht mehr aus. Stört ihn, dass dort schon eine Kopie liegt?
    Oder wie könnte ich ihn dazu bringen, wöchentlich eine Kopie damit zu machen? Eine Idee?
    Danke schon mal!

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    In meine Raspi Image (Links siehe oben) hab ich auch ein Backupscript drin, das zB knxd Config und vieles weitere sichert und in ein Archiv packt: https://github.com/smarthomeNG/ansib...etup_backup.sh
    zigbee, etc. ist da nicht dabei, aber könnte ich bei Bedarf einbinden.
    Danke auch nochmal dafür!
    Ich habe mir das Backup Script jetzt mal geladen uns ausgeführt. Sieht ganz gut aus. Gibt es bei dem Backup keine Konflikte, wenn man die DB im laufenden Betrieb kopiert? Manuell hatte ich damit schon Probleme.
    Kann ich das auch automatisch ausführen lassen (z.B. mit einem cronjob)? Da kommt ja am Anfang immer eine Abfrage ... sorry, evtl. ne doofe Frage :-/

    Integration von ZigBee2MQTT inkl. Konfiguration und aller eingebundenen Devices wäre für mich persönlich hilfreich :-)
    Zuletzt geändert von ooUrmeloo; 20.04.2024, 22:24.

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Zitat von ooUrmeloo Beitrag anzeigen
    Morgen versuch ich mal, die DB dann voll auf USB umzuziehen. Mal schauen, ob das dann besser läuft.
    Hier nochmal kurze Rückmeldung:
    Auch wenn mein USB Stick mit ntfs lief, klappt das ganze nach der Umstellung auf ext4 deutlich besser.
    Ich habe jetzt die DB original auf dem Stick am laufen und damit jetzt keine websocket Probleme mehr o.ä..
    Läuft zumindest jetzt seit einem halben Tag "stabil".

    Zitat von Onkelandy Beitrag anzeigen
    Und könntest bitte mal Zeile 395 wie folgt ändern: database_name = next((s for s in self._connect if s.startswith("database:")), None)
    Im aktuellen Code funktioniert der Spaß nämlich nur, wenn in der plugin.yaml unter "connect" database:... der 1. Eintrag ist. UU. ist aber der erste Eintrag zB check_same_thread:true oder so und dann würde das Kopieren des Files definitiv auch nicht klappen.
    Bzgl. 'copy_database' habe ich jetzt noch festgestellt, dass der 'copy_database_name' vor dem 'connect' stehen sollte (macht ja evtl. auch Sinn, da dann kopiert wird vor dem DB Start (?!?).
    In der Reihenfolge läuft es bei mir jetzt stabil. Wenn das stimmt, könnte man das in der Doku ja evtl. noch ergänzen, dass die Reihenfolge wichtig ist.

    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

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Ich glaub, ich konnte das schon portieren irgendwie, weiß nicht mehr genau. Grund war eigentlich, die DB aufs NAS auszulagern, das quasi sowieso läuft, und dann kann man mit phpmyadmin die Datenbank gut verwalten. Direkt aufm Raspi würd ichs lassen.
    dann bleib ich mal bei sqlite :-)

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Es wird ziemlich sicher am ntfs liegen, schau mal hier.. so out of the box geht das nicht. Würde es als ext4 formatieren und einbinden oder halt das hier machen: https://phoenixnap.com/kb/mount-ntfs-linux
    ok ... ich hab den Stick auf ext4 umformatiert und die Datenwieder hin kopiert. Die DB Kopie auf USB scheint jetzt zu funktionieren.
    Code:
    2024-04-16  22:17:13 WARNING  plugins.database    Starting to copy SQLite3 database file from /usr/local/smarthome/var/db/smarthomeng.db to /media/usbstick/smarthomeng_backup.db
    2024-04-16  22:17:15 WARNING  plugins.database    Finished copying SQLite3 database file
    Morgen versuch ich mal, die DB dann voll auf USB umzuziehen. Mal schauen, ob das dann besser läuft.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Ich glaub, ich konnte das schon portieren irgendwie, weiß nicht mehr genau. Grund war eigentlich, die DB aufs NAS auszulagern, das quasi sowieso läuft, und dann kann man mit phpmyadmin die Datenbank gut verwalten. Direkt aufm Raspi würd ichs lassen.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Mysql macht eigentlich nur Sinn, wenn Du bereits einen Server mit Mysql für andere Zwecke laufen hast. ansonsten ist es nur eine Steigerung der Komplexität.

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Ich nutze sqlite schon lange nicht mehr
    darf ich da nochmal nachhaken? Warum nicht mehr sqlite? Nutzt du MySQL? Und wenn ja, warum?
    Geht da irgendwie ein "running change"?
    Zuletzt geändert von ooUrmeloo; 16.04.2024, 16:14.

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    In meine Raspi Image (Links siehe oben) hab ich auch ein Backupscript drin, das zB knxd Config und vieles weitere sichert und in ein Archiv packt: https://github.com/smarthomeNG/ansib...etup_backup.sh
    zigbee, etc. ist da nicht dabei, aber könnte ich bei Bedarf einbinden.
    Danke, das schau ich mir an. Bisher mach ich nur ein regelmäßiges Backup der gesamten SD Karte mit 'dd' im laufenden Betrieb. Funktioniert bisher ganz gut.

    Zitat von Onkelandy Beitrag anzeigen
    Es wird ziemlich sicher am ntfs liegen, schau mal hier.. so out of the box geht das nicht. Würde es als ext4 formatieren und einbinden oder halt das hier machen: https://phoenixnap.com/kb/mount-ntfs-linux
    Genau so hab ich den Stick eingebunden. Vielleicht mach ich mir aber dann doch mal den Aufwand und versuch's mit ext4. Vielleicht funkioniert dann auch die DB direkt auf USB besser.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    OK, ja, war eh so zu erwarten, aber zumindest ist nun der Fehler mit dem Error abgefangen, werde das entsprechend einpflegen.

    In meine Raspi Image (Links siehe oben) hab ich auch ein Backupscript drin, das zB knxd Config und vieles weitere sichert und in ein Archiv packt: https://github.com/smarthomeNG/ansib...etup_backup.sh
    zigbee, etc. ist da nicht dabei, aber könnte ich bei Bedarf einbinden.

    Es wird ziemlich sicher am ntfs liegen, schau mal hier.. so out of the box geht das nicht. Würde es als ext4 formatieren und einbinden oder halt das hier machen: https://phoenixnap.com/kb/mount-ntfs-linux

    Einen Kommentar schreiben:


  • ooUrmeloo
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Änder mal in plugins/database/__init__.py die Zeile 407 ab, so dass statt self.logger.Error klein self.logger.error steht.

    Und könntest bitte mal Zeile 395 wie folgt ändern: database_name = next((s for s in self._connect if s.startswith("database:")), None)
    Im aktuellen Code funktioniert der Spaß nämlich nur, wenn in der plugin.yaml unter "connect" database:... der 1. Eintrag ist. UU. ist aber der erste Eintrag zB check_same_thread:true oder so und dann würde das Kopieren des Files definitiv auch nicht klappen.
    doch schon mal probiert ...
    Kopie auf USB klappt trotzdem nicht. Aber immerhin läuft das Plugin weiter (und stoppt nicht wie oben). Fehlermeldung:
    Code:
    2024-04-16  13:17:19 WARNING  plugins.database    Starting to copy SQLite3 database file from /usr/local/smarthome/var/db/smarthomeng.db to /media/usbstick/smarthomeng_backup.db
    2024-04-16  13:17:20 ERROR    plugins.database    Error copying SQLite3 database file: [Errno 1] Operation not permitted

    Einen Kommentar schreiben:

Lädt...
X