Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

    #61
    BlackCrow achso noch eine Anmerkung: ich würde das Database Plugin NICHT mit SHNG 1.2 verwenden.. Das haben wir nie getestet und ich zweifle an, dass es nicht doch Probleme gibt.. Auf die Art kann man sich auch selber Problemchen generieren - da braucht man sich dann nicht über den Spass zu beschweren

    Mich wundert wie das überhaupt gehen kann, da der 1.2 doch das hier fehlen müsste? https://github.com/smarthomeNG/smart...ster/lib/db.py

    Kommentar


      #62
      Hey psilo,

      mir ist bewusst, dass es natürlich Probleme gibt, wenn man Funktionen testet, die eigentlich für die aktuelle Version gar nicht gedacht sind. Über diesen Spass beschwere ich mich auch nicht - das ist ja selbst geschaffenes Leid rein aus Experimentierfreudigkeit.

      Ich jammere nur etwas wegen dem Spaß, weil ich folgendes festgestellt habe:

      Wenn man, so wie ich, nicht viel Zeit für das Projekt hat und trotzdem immer relativ aktuell bleiben will, dann ist man gezwungen, trotzdem immer wieder regelmäßig zu schauen, was es neues gibt um dann ggfs. doch noch Anpassungen zu machen.

      Als Beispiel nenne ich jetzt mal die Umstellung mit dem Images (.svg) - wo man sämtliche Seiten anpassen musste. Dann ist es so, dass man, wenn man Beispielsweise jetzt mal ein Problem hat (so wie ich zuletzt mit UZSU), dass man intensiv das Forum quälen muss, über etliche alte Beiträge stolpern muss, bis man irgendwann mal irgendwo einen kleinen Hinweis bekommt, dass sich dies und das geändert hat.

      Versteh mich jetzt bitte nicht falsch - ich finde das Projekt hier wirklich absolut super, deswegen nutze ich es auch schon einige Jahre. Aktuell bin ich einfach nur etwas "maulig", weil ich lange nichts gemacht habe (bin letztes Jahr Papa geworden) und jetzt verzweifelt versuche, wieder alles zum funktionieren zu bringen (das ärgerliche ist einfach, dass ja alles mal funktioniert hat). UZSU hat mich einen ganzen Tag gekostet - jetzt habe ich noch das Simulationsplugin, welches mir seit Tagen Kummer macht.

      Im Endeffekt ist es meine Schuld, weil ich lange nichts gemacht habe - würde ich das nicht wollen, dann müsste ich auf eine kommerzielle Version. Trotzdem nervt mich das gerade etwas (eigenltich bin ich auch nur genervt von mir selbst :-) )

      Bezüglich der db.py - die habe ich mir einfach gezogen gehabt.

      Ich persönlich mag git nicht so gerne - deswegen ziehe ich mir die Updates immer händisch (umsändlich, aber so mag ich es irgendwie lieber und ich sehe auch immer gleich ein wenig, was sich so verändert hat).

      FAZIT: Ihr alle macht eine wirklich gute Arbeit und ohne euch, ist ein armer User wie ich wirklich aufgeschmissen - ich muss einfach mehr am Ball bleiben

      Liebe Grüße

      Kommentar


        #63
        BlackCrow naja bei den kommerziellen Produkten brauchst Du am Ende noch nen Elektriker um die Dinge upzugraden ;-) Und das kostet dann bares Geld... Das hat man bei frischem Nachwuchs meist noch weniger als die Zeit.

        Ich würde halt erstmal bei einem Ding anfangen (SmartVisu Upgrade) und erst danach an der nächsten Baustelle weitermachen.
        Genauso wie bei Plugins, nicht immer alles auf einmal.. Und speziell bei den Plugins und im Kern tut sich derzeit sauviel, also stell wirklich sicher, dass Du am besten nur mit dem Master Branch unterwegs bist! Wenn Du Dinge aus DEV nimmst kostet das meist mehr Aufwand, das hat der DEV so an sich :> Und wenn man dann noch mixt dann wirds schon arg :>

        Naja gutes Gelingen schon mal.
        Zuletzt geändert von psilo; 27.09.2017, 13:59.

        Kommentar


          #64
          BlackCrow
          Bitte versteh folgendes nicht böse oder persönlich.

          Wenn du nicht viel Zeit investieren willst, dann solltest du nicht die Develop-Versionen nutzen.
          Dort gibt es noch viele Bugs, nicht fertig implementierte Features, undokumentierte Neuerungen und andere Unwegsamkeiten.

          Wenn jemand die develop nutzt und Unterstützung dabei will, erwarte ich schon, dass er auch Zeit, Nerven, Fähigkeit und Willen hat, um bei der Problemlösung zu helfen.
          Sonst bleibst du besser beim master bzw. stable release (im Falle der smartVISU ist dies 2.8).


          Kommentar


            #65
            Hi smai,

            ich nehme das nicht persönlich. Ihr habt ja recht - ich habe mich für die Develop entschieden, weil ich gerade etwas Zeit habe und mich intensiv damit beschäftigen kann.

            Außerdem möchte ich natürlich auch helfen - wenn ich hier schon so oft blöde Fragen stelle, dann will ich auch etwas gutes für dieses tun und es nicht einfach nur benutzen ohne meinen bestmöglichen Teil dazu beigetragen zu haben.

            Wie gesagt, ich bin gerade einfach etwas genervt, weil das alles nicht so will wie es soll und es ja mal funktioniert hat. Das hat aber nichts mit dem Projekt zu tun oder mit jemanden von euch. Ihr macht das hier alle aus Liebe zum Projekt und das sollte man auch ehren. Und der Support im Forum ist ja nun wirklich tadellos.

            Ich werde meine Baustellen schon bereinigt bekommen. Vielleicht kann ich ja mit meinen Fehlern und Fragen auch etwas dazu beitragen, dass es den Entwicklern der Projekte etwas hilft. :-)

            Viele Grüße

            Kommentar


              #66
              Foxi352
              Ich habe auch einen bool'sche Eingabe von einem Binäraktor, mit der ich Zyklen und auch Dauern auswerte (Ölbrenner mit Brennzyklen und Brenndauer).
              So habe ich das gemacht:

              Code:
                  [[brenner]]
                      name = Brennerstatus Heizung
                      type = bool
                      visu = yes
                      visu_acl = ro
                      sqlite = yes
                      knx_dpt = 1
                      knx_cache = 0/3/91
                      knx_reply = 0/3/91
                      [[[betriebsstunden]]]
                          name = Betriebsstundenzähler Brenner Heizung in Sekunden
                          type = num
                          visu = yes
                          visu_acl = ro
                          sqlite = yes
                          eval = sh.heizung.brenner.betriebsstunden() + int(sh.heizung.brenner.prev_value()) * sh.heizung.brenner.prev_age()
                          eval_trigger = heizung.brenner
                          [[[[gesamt]]]]
                              name = Betriebsstundenzähler Brenner Heizung in Stunden
                              type = num
                              visu = yes
                              visu_acl = ro
                              sqlite = yes
                              eval = round(sh.heizung.brenner.betriebsstunden() / 60 / 60, 2)
                              eval_trigger = heizung.brenner.betriebsstunden
                          [[[[heute]]]]
                              type = num
                              visu = yes
                              visu_acl = ro
                              sqlite = yes
                              eval = round((sh.heizung.brenner.betriebsstunden() - sh.heizung.brenner.betriebsstunden.db('min', sh.time.minute.since.midnight.dbstr())) / 60 /60, 2)
                              eval_trigger = heizung.brenner.betriebsstunden
                          [[[[woche]]]]
                              type = num
                              visu = yes
                              visu_acl = ro
                              eval = round((sh.heizung.brenner.betriebsstunden() - sh.heizung.brenner.betriebsstunden.db('min', sh.time.minute.since.week.dbstr())) / 60 / 60, 2)
                              eval_trigger = heizung.brenner.betriebsstunden
                              sqlite = yes
                      [[[zyklen]]]
                          name = Zyklen Brenner Heizung
                          type = num
                          visu = yes
                          visu_acl = ro
                          sqlite = yes
                          eval = sh.heizung.brenner.zyklen() + int(sh.heizung.brenner.prev_value())
                          eval_trigger = heizung.brenner
                          [[[[heute]]]]
                              type = num
                              visu = yes
                              visu_acl = ro
                              sqlite = yes
                              cache = yes
                              crontab = init | * * * * = 1
                              eval = sh.heizung.brenner.zyklen() - sh.heizung.brenner.zyklen.db('max', sh.time.minute.since.midnight.dbstr(), sh.time.minute.since.midnight.dbstr())
                              eval_trigger = heizung.brenner.zyklen
                          [[[[gestern]]]]
                              type = num
                              visu = yes
                              visu_acl = ro
                              sqlite = yes
                              cache = yes
                              crontab = init | 0 0 * * = 1
                              eval = sh.heizung.brenner.zyklen() - sh.heizung.brenner.zyklen.db('max', '1d','1d')
              Funktioniert alles gut, bis auf wenn kein Tageseintrag in die DB geschrieben ist. Dann kommt eine Fehlermeldung (none type).
              Hier muss ich mal überlegen, wie man um 0.01 einen Fake Eintrag in die DB bekommt.
              Vielleicht fällt dir was ein.

              Siehe auch hier: https://knx-user-forum.de/forum/supp...nes-bool-items

              Gruß
              Michael


              Kommentar


                #67
                Ich würde auch sehr für eine SUM und eine COUNT Funktion plädieren. Und evtl. noch eine RAISE oder GROWTH oder sowas, um direkt das Wachstum innerhalb einer Periode (also letzter Wert minus erster Wert) abfragen zu können.
                Diese könnten dann auch in Plots der smartVISU verwendet werden.

                Kommentar


                  #68
                  Darf ich mal fragen, warum man in der Datenbank nicht einfach die Werte bspw. der letzte Stunde einträgt und diese dann resetet?

                  Später hat man dann einfach die Möglichkeit die Werte tage-,wochen- oder monatsweise zusammenzufahren um sie zu komprimieren, auch einen Durchschnitt oder Verbrauch in einem historischen Zeitraum (im Januar, im Februar usw) könnte man m.E.n. einfacher da "raus ziehen".

                  Grüße
                  David

                  Kommentar


                    #69
                    Ich würde Euch bitten mal ein Issue aufzumachen bezüglich der Erweiterung des SmartHomeNG Core und der Erweiterung der SmartVISU. Es muß das Websocket Protokoll entsprechend erweitert werden. Wenn man das schon macht, kann man sich optional dann auch um weitere Erweiterungen kümmern...

                    Kommentar


                      #70
                      Ich bin nicht mal sicher, ob in der smartVISU Anpassungen notwendig wären. Der Mode (wie MIN, MAX oder das neue COUNT) wird ungeprüft an SHNG durchgereicht.
                      Einzig die Doku müsste erweitert werden.

                      Kommentar


                        #71
                        ich habe auch meine Visu auf MariaDB umgestellt. Läuft alles sehr gut. Die Datenbank ist super schnell. Wie bekomme ich die SmartHome.py Monitor Daten in die DB, bzw. so hin, dass ich den Chart wieder sehe?

                        Das Item env.system.load gibt es in der conf Datei nicht.

                        Jemand eine Idee?

                        VG
                        Alex

                        Kommentar


                          #72
                          im lib/env folder liegen conf files mit sqlite entries. die sind es

                          Kommentar


                            #73
                            Sehr gut !!
                            Vielen Dank

                            Kommentar


                              #74
                              Zum Thema Datenimport habe ich folgendes gemacht: Ich habe die smarthome.db rausgezogen und mit DB Browser für SQlite ein Export gemacht (als CSV).

                              Mit dem phpmyadmin habe ich ein Export der item Datenbank gemacht. Die Quelldaten aus der SQlite DB rausgezogen (also die Daten, die auch wirklich interessieren.
                              Man muss nur den Item Namen durch die richtige ID ersetzen und danach kann man die Daten per phpMyadmin oder CLI importieren.

                              Datenstruktur aus der Quelle (Export aus Sqlite):
                              Code:
                              1472708061467,visu.zaehler.haus_gesamtverbrauch,3914064,12900.0,12900.0,12900.0,1.0
                              Item Zuordnung aus item Datenbank:
                              Code:
                              "93","visu.zaehler.haus_gesamtverbrauch","1507015445150",NULL,"17125","1","1507015493414"
                              Datenstruktur vorbereitet für Import:
                              Code:
                              1472708061467,93,3914064,12900.0,12900.0,12900.0,1.0
                              Dann importieren. Fertig.

                              Ist vielleicht nicht die eleganteste Art, aber es funktioniert. Soviel historische Daten habe ich nicht. Aufwand ca. 1 Stunde. Letztendlich muss man sich erstmal Gedanken machen, welche Daten man wirklich benötigt.

                              Gruß
                              Alex

                              Kommentar


                                #75
                                Würde es auch gehen, wenn man mit dem DB Browser für SQlite einen Export direkt nach SQL macht und dann diese als MariaDB mit dem Plugin nutzt?

                                Kommentar

                                Lädt...
                                X