Ankündigung

Einklappen
Keine Ankündigung bisher.

SQLite Plugin überarbeitet (in Release 1.1)

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

    SQLite Plugin überarbeitet (in Release 1.1)

    Hi,

    ich habe das SQLite Plugin grundlegend überarbeitet.

    - Es ist schneller
    - Es ist genauer (die Werte werden genauer gespeichert und angezeigt)
    - Es verbraucht weniger Arbeits- und Festplattenspeicher
    - Es initialisiert die Items beim starten (immer) richtig
    - Es fährt schneller runter

    Beim erstmaligen starten kann es aber ein bisschen dauern, da die bestehende Datenbank konvertiert wird.

    Es gibt drei neue Funktionen: dump, cleanup und move. Und ein neues Attribute: dumpfile. Das ist alles im Readme beschrieben.

    Das Plugin und die Doku befinden sich hier:
    https://github.com/mknx/smarthome/tr...plugins/sqlite

    In ein paar Tagen werde ich es nach develop verschieben.

    Feedback und Tester willkommen.

    Gegen Ende Februar haben wir ein neues Release geplant, bei dem die Änderung natürlich auch Bestandteil sein wird.

    Viel Spaß damit und bis bald

    Marcus

    #2
    Sauber

    Gruss
    Join smartVISU on facebook. Web: smartvisu.de.
    Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

    Kommentar


      #3
      Hi,

      der Code ist jetzt in develop.

      Bei Start von SmartHome.py (develop) wird die Datenbank konvertiert. Diese DB kann von master (Basis 1.0) nicht verarbeitet werden.
      Der Wechsel funktioniert nur in eine Richtung.

      Bis bald

      Marcus

      Kommentar


        #4
        An dieser Stelle ein DANKE für deine Mühe!

        Kommentar


          #5
          Hi Marcus,

          habe vor ein paar Wochen auf die DEV-Version ohne Probleme umgestellt und die DB scheint auf dem PI in der Tat deutlich performanter und bläht sich auch weniger auf. Danke dafür!

          Leider ist es mir heute schon wieder passiert, dass ich aufgrund eines Fehlers in der Hierarchie der [] (statt auf Ebene 3 hatte ich aufgrund von C&P Ebene 5) sämtliche sql-Werte der nachfolgenden Items verloren habe.
          Meldung im Log bspw.:
          Code:
          SQLite: deleting entries for UG.Technikraum.StedoTrockner.Wirkarbeit
          Macht diese vollautomatische Löschroutine beim Startup wirklich Sinn?
          Würde es nicht mehr Sinn machen diese sozusagen von Aussen getriggert ablaufen zu lassen, sozusagen eine Art Maintenance Request abzuschicken, ggf. auch mit einem zus. Startparameter?
          Soweit ich im Code das überblicken konnte ist diese Routine im alten Plugin nicht drin gewesen. Oder ist diese Löschung beim Startup eigentlich gar nicht vorgesehen?

          Ist im Moment nicht schlimm, da das System ohnehin in einer permanten Erweiterung ist, aber für eine spätere Masterversion halte ich das für gefährlich, Typos passieren ja nun mal...

          Cheers,
          Oliver

          Kommentar


            #6
            Hallo Oliver,

            wie in einem anderen Thread vermutet war ich im Urlaub.

            Ich fange mit Deiner Antwort einmal an.

            Ja, Dein Vorschlag mach Sinn.
            In Develop habe ich die Funktion deaktiviert. Sie kann über sh.sql.remove_orphans() in eine Logik aufgerufen werden.

            Bis bald

            Marcus

            Kommentar


              #7
              Hi Marcus,

              danke!

              P.S.: Weiß nicht welchen Thread Du meinst, mir ist da nix bewußt, aber grundsätzlich sehe ich das folgendermaßen: Du machst das wie wir fast alle in Deiner Freizeit und das bedeutet für mich wenn's bei Dir geht gehts und wenn nicht dann nicht. ... und wer da anderer Meinung ist solls erst mal besser vormachen.

              Sehen uns am Freitag.

              Cheers,
              Oliver

              Kommentar


                #8
                Hallo,
                Ich habe jetzt auch auf das neue SQite plugin mit _version=3 gewechselt.
                Tagsüber funktioniert das auch. Aber nachts nicht. Ich habe einen
                Lichtsensor der tatsächlich 0 ausgibt wenn es dunkel ist:

                [[[LichtWest]]]
                type = num
                visu_acl = r
                sqlite = yes
                knx_dpt = 5
                knx_listen = 3/0/2
                knx_init = 3/0/2

                In einer Logik frage ich den Durschnitt über die letzten Minuten ab.

                Brightness6=sh.EG.Aussen.LichtWest.db('avg','6i')

                Da kommt dann aber nichts zurück wenn in den letzten 6 Minuten wirklich
                Null anlag. Ich habe das mal interaktiv probiert:

                >>>
                >>> sh.EG.Aussen.LichtWest.db('avg','25i')
                5.47
                >>> sh.EG.Aussen.LichtWest.db('avg','20i')
                >>>

                Ich habe dem Sensor für einige Minuten 6 aufgezwungen und gewartet. Daher kommt 5.47 wenn die 6 noch erwischt wird. Verkürze ich die Zeit,
                oder warte noch länger kommt kein Wert mehr zurück.
                Mit dem alten Plugin passierte das nicht.
                Hat jemand eine Idee?

                Michael

                Kommentar


                  #9
                  Hallo Michael,

                  danke für das Feedback. Ich werde das mal nachstellen.

                  Bis bald

                  Marcus

                  Kommentar


                    #10
                    freu

                    ....Gegen Ende Februar haben wir ein neues Release geplant....
                    da gibt's ja Grund zur Freude. Wie ein zweites Weihnachten.
                    sigpic
                    Christian Huck
                    Tel.: 089 / 122 80 995
                    Email: mail@homeintelligence.de
                    Web: www.homeintelligence.de

                    Kommentar


                      #11
                      Zitat von hoggle Beitrag anzeigen
                      da gibt's ja Grund zur Freude. Wie ein zweites Weihnachten.
                      Der Eintrag "Gegen Ende Februar haben wir ein neues Release geplant" ist aber vom 30.01.2014, 21:28
                      D.h. die Release sollte es schon geben.

                      Kommentar


                        #12
                        Hallo,

                        ok, ich kann das Problem nachvollziehen.


                        Bis bald

                        Marcus

                        P.S. ist spätestens im nächsten Release gefixt ;-)

                        Kommentar


                          #13
                          N'abbend,
                          Mit der Null hatdas vermutlich nix zu tun sondern eher damit das keine
                          Werte mehr in der db sind wenn der Wert sich nicht ändert:

                          Code:
                          sqlite> select * from num WHEre _item='EG.Aussen.LichtWest' AND _start + _dur >= 1419869000000;
                          1419868863076|EG.Aussen.LichtWest|180937|4.0|4.0|4.0|1.0
                          Code:
                          sqlite> select round(sum(_avg*_dur)/sum(_dur),2) from num WHEre _item='EG.Aussen.LichtWest' AND _start + _dur >= 1419860000000 ;
                          119.36
                          sqlite> select round(sum(_avg*_dur)/sum(_dur),2) from num WHEre _item='EG.Aussen.LichtWest' AND _start + _dur >= 1419870000000 ;
                          
                          sqlite>
                          Könnte es sowas sein oder wird das irgendwo abgefangen wo ich noch nicht
                          gefunden habe. Diese Py ixt verdammt schwer zu lesen. Wenns C wäre :-)

                          Michael

                          Kommentar


                            #14
                            Das ist doch SQL :-)

                            Scherz beiseite, ich habe das Problem schon erkannt und ansatzweise gefixt.

                            Bis bald

                            Marcus

                            Kommentar


                              #15
                              Hallo,

                              ich habe gerade das Plugin gerade in develop aktualisiert. Bei mir tritt das Problem damit nicht mehr auf.

                              Bis bald

                              Marcus

                              Kommentar

                              Lädt...
                              X