Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

    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.

    Kommentar


      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.
      Viele Grüße
      Martin

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

      Kommentar


        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.

        Kommentar


          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.

          Kommentar


            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 :-)

            Kommentar


              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

              Kommentar


                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.

                Kommentar


                  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!

                  Kommentar


                    Benenn doch mal die alte datei um und probiere nochmals

                    Kommentar


                      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

                      Kommentar


                        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

                        Kommentar


                          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!

                          Kommentar


                            Nabend. Ich habe folgende Challenge: Ich möchte jeden Tag um 0:00 die Differenz eines anderen Items binnen 24h berechnen, das mache ich mit crontab und eval auf anderen item. Das klappt soweit.

                            Wenn ich aber shng Neustarte, wird auch zu diesem Zeitpunkt ein Wert geschrieben. Je nach init oder yes der aktuelle Wert oder 0. Ich möchte aber keinen Eintrag. Nachträglich löschen hilft auch nur bedingt, da das Intervall der anderen Werte dann nicht stimmt.


                            Was kann ich tun, damit die Werte nur von crontab durchgelesen werden?

                            Kommentar


                              Wie hast Du das Item definiert?
                              Viele Grüße
                              Martin

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

                              Kommentar


                                Schau mal in Doku des Plugins. Genau dafür gibt es das Item Attribut

                                Code:
                                database_write_on_shutdown: False
                                Normalerweise wird beim Beenden von smarthomeNG jeder aktuelle Wert der DB nochmal explizit in die DB geschrieben. Mit dem obigen Attribut (False) passiert das nicht.

                                Kommentar

                                Lädt...
                                X