Ankündigung

Einklappen
Keine Ankündigung bisher.

Items Werte regelmäßig in Datenbank (Sqlite) schreiben

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

    Items Werte regelmäßig in Datenbank (Sqlite) schreiben

    Hallo zusammen,

    ich betreibe seit einiger Zeit SmarthomeNG und die SmartVisu auf einem Linux PC und bin begeistert über den tollen Leistungsumfang. An einer Sache beisse ich mir aber schon länger die Zähne aus. Ich kann die Datenbank nicht ordentlich anbinden. In der Sqlite DB werden die aktuellen Items-Werte bei einem Neustart eingetragen, dann aber nichtmehr. Mein Temperatursensor (KNX) sendet aber zyklisch seine Werte. Diese werden nicht in der DB gespeichert.
    Wenn ich auf MySQL umstelle, werden die Werte ebenfalls wie bei Sqlite in die SQL DB geschrieben, allerdings zeigt die Visu mir in den Plots und im Ressourcen Monitor nichts mehr an. Alle Versuche hier eine Lösung zu finde sind leuder gescheitert. Hat von Euch jemand eine Idee woran es liegen könnte?

    in der Plugin.yaml ist folgendes konfiguriert:

    database:
    class_name: Database
    class_path: plugins.database
    driver: sqlite3
    connect:
    - database:./var/db/monitor.db
    - check_same_thread:0
    cycle: 60
    precision: 2


    Das Temperatursensor Item sieht wie folgt aus:

    Temperatursensor:
    type: num
    visu_acl: rw
    knx_dpt: 9
    knx_init: 4/1/10
    knx_listen: 4/1/10
    cycle: 60
    enforce_updates: true
    database: 'yes'
    database_acl: rw

    Protokollversion in der Visu und smarthome*.py ist in beiden Fällen 4

    Danke schonmal für alle Mühen!

    #2
    https://knx-user-forum.de/forum/supp...-einf%C3%BCgen

    Kommentar


      #3
      Hallo Onkelandy,

      danke für die schnelle Antwort! Natürlich sind in den Skripten die YAML Einrückungen korrekt, das hat es mir beim copy&paste ins Forum leider verspult und ich hab´s nicht bemerkt. Die Datenbank wird ja auch angesprochen, eben nur beim ersten Start (Neustart) von Smarthomeng, danach werden keine Einträge ergänzt. Wenn ich auf MySQL umstelle ist es genauso nur dass hier zusätzlich in der Visu keine Daten mehr in Graphen ankommen (bei SQLite funktionier das aber).

      database:
      class_name: Database
      class_path: plugins.database
      driver: sqlite3
      connect:
      - database:./var/db/monitor.db
      - check_same_thread:0
      cycle: 60
      precision: 2


      Das Temperatursensor Item sieht wie folgt aus:

      Temperatursensor:
      type: num
      visu_acl: rw
      knx_dpt: 9
      knx_init: 4/1/10
      knx_listen: 4/1/10
      cycle: 60
      enforce_updates: true
      database: 'yes'
      database_acl: rw

      Kommentar


        #4
        Werden die jeweils aktuellen Werte in der Admin GUI angezeigt?

        Btw, (nicht ursächlich für Dein Problem, nur auffällig):
        - Was machst Du mit dem Attribut database_acl? Zum database Plugin gehört es auf jeden Fall nicht.
        - knx_listen ist überflüssig. Das ist in knx_init bereits enthalten.
        Viele Grüße
        Martin

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

        Kommentar


          #5
          Zitat von Msinn Beitrag anzeigen
          Werden die jeweils aktuellen Werte in der Admin GUI angezeigt?

          Btw, (nicht ursächlich für Dein Problem, nur auffällig):
          - Was machst Du mit dem Attribut database_acl? Zum database Plugin gehört es auf jeden Fall nicht.
          - knx_listen ist überflüssig. Das ist in knx_init bereits enthalten.
          Das database_acl: rw hatte ich aus der Doku um lese/schreibzugriffe auf die DB zu erlauben. Bin davon ausgegangen, dass das zwingend notwendig ist.
          knx_listen: Danke für den Hinweis, das war mir nicht bekann. Dann nehme ich das read raus :-)

          Die Werte und auch Ressourcen Grafen werden in der GUI angezeigt. Die Datenbank (über die Admingui aufgerufen) enthält auch Item Einträge allerding nur vom Zeitpungt des smarthomeNG Starts

          Kommentar


            #6
            Alte Doku zum database Plugin: https://www.smarthomeng.de/user/plug...t=database_acl
            Im Plugin selbst gibt es das Attribut auch tatsächlich. Die Funktionalität ist imho auch gar nicht so schlecht, müsste aber wohl zurück in die Standarddoku bzw. in plugin.yaml als item attrib..?

            Bringt leider nicht die Lösung zum Problem.. Was passiert denn, wenn du den Wert deines Sensors manuell änderst? Wie sieht es mit anderen Items aus, funktioniert dort das Schreiben in die Datenbank?

            Kommentar


              #7
              So wie es aussieht scheint es jetzt tatsächlich zu funktionieren. Ich habe die Items bereinigt, das knx_listen und database_acl (ist lt. doku default sowieso rw) entfernt und nun füllt sich die DB. Wie es sich mit MySql und der Visu verhält konnte ich nich nicht testen. ich denke die Datenmenge kann über kurz oder lang zeimlich groß werden. Macht aus eurer Sicht der Wechsel zu MySql dann Sinn?

              Danke nochmal für die Tipps!!!

              Kommentar


                #8
                Zitat von Onkelandy Beitrag anzeigen
                m Plugin selbst gibt es das Attribut auch tatsächlich. Die Funktionalität ist imho auch gar nicht so schlecht, müsste aber wohl zurück in die Standarddoku bzw. in plugin.yaml als item attrib..?
                In den Metadaten (der plugin.yaml) ist das Attribut nicht beschrieben/definiert, daher fragte ich mich wo das her kommt. Das muss dann in die Metadaten rein.

                Zitat von TobiasG Beitrag anzeigen
                Die Werte und auch Ressourcen Grafen werden in der GUI angezeigt.
                Wo wird denn für Dein Item Temperatursensor ein Graph in der Admin GUI angezeigt? Das database Plugin zeigt Dir im Webinterface die Daten doch nur tabellarisch an.

                Zeigt Dir die Admin GUI denn unter Items den aktuellen Wert in den Details, wenn Du das aus dem Item-Tree selektierst?
                Viele Grüße
                Martin

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

                Kommentar


                  #9
                  Ich habe mit SQLite3 bisher keine Probleme und meine DB ist 5 GByte groß. Ich erspare mir lieber die Komplexität einer separaten DB Installation.
                  Viele Grüße
                  Martin

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

                  Kommentar


                    #10
                    Zitat von Msinn Beitrag anzeigen
                    Zitat von TobiasG Beitrag anzeigen
                    Die Werte und auch Ressourcen Grafen werden in der GUI angezeigt.



                    Wo wird denn für Dein Item Temperatursensor ein Graph in der Admin GUI angezeigt? Das database Plugin zeigt Dir im Webinterface die Daten doch nur tabellarisch an.

                    Zeigt Dir die Admin GUI denn unter Items den aktuellen Wert in den Details, wenn Du das aus dem Item-Tree selektierst?
                    Die Temperatursensor Daten werden nur in der DB (GUI) Tabelle über das Admin GUI angezeigt. Die (System) Ressourcengrafen werden im Admin-GUI bei immer angezeigt bei MySQL in der Visu aber nicht. Da SQLite nun zu funktionieren scheint, belasse ich es erstmal dabei :-)
                    danke nochmal!

                    Kommentar


                      #11
                      Der Fehler wäre Dir übrigens auch mit MySQL passiert. Dieses Attribut database_acl macht so wie es implementiert ist überhaupt keinen Sinn und wenn es angegeben wird (egal was für ein Wert) führt das dazu, dass der Wert nicht in die Datenbank geschrieben wird.

                      Das behebe ich für das kommende Release (ich entferne das Attribut).
                      Viele Grüße
                      Martin

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

                      Kommentar


                        #12
                        Zitat von TobiasG Beitrag anzeigen
                        Die (System) Ressourcengrafen werden im Admin-GUI bei immer angezeigt bei MySQL in der Visu aber nicht.
                        Normalerweise schon, es sei denn Du hast bei der Plugin Konfiguration für die Datenbank einen Namen für die instance angegeben. Das wird weder vom Schreiben in SmartHomeNG, noch von der Resssourcen Anzeige in der smartVISU unterstützt.

                        Normalerweise hat man nur eine aktive Instanz des database Plugins, also sollte man auch keinen instance Namen vergeben.
                        Viele Grüße
                        Martin

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

                        Kommentar


                          #13
                          Zitat von Msinn Beitrag anzeigen
                          Normalerweise schon, es sei denn Du hast bei der Plugin Konfiguration für die Datenbank einen Namen für die instance angegeben. Das wird weder vom Schreiben in SmartHomeNG, noch von der Resssourcen Anzeige in der smartVISU unterstützt.

                          Normalerweise hat man nur eine aktive Instanz des database Plugins, also sollte man auch keinen instance Namen vergeben.
                          Richtig, das hatte ich auch in anderen Foreneinträgen gelesen, aber bei mir ist keine Instanz angegeben (benötige auch nur eine). Ich kann mir vorstellen, dass das Plugin nun auch mit MySql funktioniert, nachdem der ganze Quatsch aus meiner Konfig bereinigt wurde.

                          Viele Grüße,

                          Tobias

                          Kommentar

                          Lädt...
                          X