Ankündigung

Einklappen
Keine Ankündigung bisher.

Plots ohne smarthome

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

    Plots ohne smarthome

    Hi,

    ich würde mir gerne ein eigenes PHP Skript erstellen, welches mir json Werte für die Plots zurück liefert... dies könnte Daten dann aus MySQL oder RRD auslesen. Mit der Technik selbst habe ich schonmal gearbeitet, wäre mir also nicht all zu fremd.

    Ich Benutze allerdings linknx als Treiber und kann darauf eigentlich nicht verzichten....

    Denke hier irgendwo gelesen zu haben, dass man noch einen zweiten Treiber in seiner "Page" definieren und Benutzen kann, finde es nur nicht mehr...

    Die Doku zur SmartVISU ist hier leider nicht gerade so toll.. liegt warscheinlich mit daran, dass man andauernd zwischen seinem "Projekt" und dem Doku Projekt hin und her switchen muss. Eine Externe Doku wäre sehr hilfreich.


    Gruß,
    Thomas

    #2
    Zitat von TCr82 Beitrag anzeigen
    Denke hier irgendwo gelesen zu haben, dass man noch einen zweiten Treiber in seiner "Page" definieren und Benutzen kann, finde es nur nicht mehr...
    Nein, das geht nicht. Ist aus meiner Sicht auch nicht sinnvoll. Jedes Backend hat seine Eigenschaften mit Vor- und Nachteilen. Jedes Backend definiert auch sein eigenes Item / Gad - Format. Eine Mischung in der Visu wäre nicht gerade einfach...


    Zitat von TCr82 Beitrag anzeigen
    Die Doku zur SmartVISU ist hier leider nicht gerade so toll.. liegt warscheinlich mit daran, dass man andauernd zwischen seinem "Projekt" und dem Doku Projekt hin und her switchen muss. Eine Externe Doku wäre sehr hilfreich.
    Geh doch einfach her, und kopiere smartVISU nach smartVISU.docu dann dort den Offline-Treiber und das Docu-Projekt eingestellt.
    Join smartVISU on facebook. Web: smartvisu.de.
    Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

    Kommentar


      #3
      Zitat von TCr82 Beitrag anzeigen
      Hi,
      ich würde mir gerne ein eigenes PHP Skript erstellen, welches mir json Werte für die Plots zurück liefert... dies könnte Daten dann aus MySQL oder RRD auslesen. Mit der Technik selbst habe ich schonmal gearbeitet, wäre mir also nicht all zu fremd.
      Das wäre schon denkbar, das die Werte für die Plots aus einer fremden Datenquelle kommen. Doch nur mit einem Script ist es leider nicht getan. Wie kommen dann die Werte vom Script in die Visu? Werden diese immer wieder abgefragt? Gibts einen Websocket... Das ist nicht ganz trivial.

      Zitat von TCr82 Beitrag anzeigen
      Ich Benutze allerdings linknx als Treiber und kann darauf eigentlich nicht verzichten....
      Was hällst du von der Idee Linknx für deine Logiken zu lassen. Für die Anbinung der Visu könntest du smarthome.py verwenden, die "hört" dann einfach die ganze Zeit nur mit und sammelt die Daten. Damit wäre die Visu an ein Backend angebunden und du musst linknx nicht verwerfen.

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

      Kommentar


        #4
        ne, smarthome will ich wirklich nicht einsetzten.. schon gar nicht zusammen mit linknx. Das System ist jetzt schon etwas schwach und das aufbauen der Visu dauert manchmal sehr lange .. erst recht wenn mehrere darauf zugreifen... und dazu kommt das ich Perl nicht so mag...

        Ich könnte ja aber evtl. eine weitere Regel in Linknx erstellen, welche die Daten immer auf eine GA schreibt, welche dann von SmartVISU angesprochen werden kann.

        Wie wäre das Format? Gibt es einige Spezifikationen?

        Kommentar


          #5
          Zitat von TCr82 Beitrag anzeigen
          ne, smarthome will ich wirklich nicht einsetzten.. schon gar nicht zusammen mit linknx. Das System ist jetzt schon etwas schwach und das aufbauen der Visu dauert manchmal sehr lange .. erst recht wenn mehrere darauf zugreifen... und dazu kommt das ich Perl nicht so mag...
          Das muss ich dir leider widersprechen: Schwach? Ich kenne einige (auch umfangreiche) installationen und Smarthome.py ist alles andere als "schwach"! Smarthome.py ist doch nicht in Perl!!!

          Der Aufbau der Visu hat doch nichts mit dem Backend zu tun...

          Gruss

          Wie gesagt: Das ganze Thema mit Graphen ist etwas komplexer, da reicht nicht einfach ein PHP-Script welches Werte zur Verfügung stellt. Aber das weist du ja sicher!
          Join smartVISU on facebook. Web: smartvisu.de.
          Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

          Kommentar


            #6
            Zitat von Apollo Beitrag anzeigen
            Das muss ich dir leider widersprechen: Schwach? Ich kenne einige (auch umfangreiche) installationen und Smarthome.py ist alles andere als "schwach"! Smarthome.py ist doch nicht in Perl!!!
            Schwach ist das System - also der PC auf dem das ganze läuft, und sorry Verwechslung - klar ist Python.. was ich noch weniger kenne...

            Zitat von Apollo Beitrag anzeigen
            Wie gesagt: Das ganze Thema mit Graphen ist etwas komplexer, da reicht nicht einfach ein PHP-Script welches Werte zur Verfügung stellt. Aber das weist du ja sicher!
            Hmm... kannst mir den Ablauf etwas erläutern ohne das ich mich durch die "Python" Hölle kämpfen muss um den Source zu verstehen

            Welche Werte werden in welcher Form an die Visu geliefert... frägt die Visu nach der Zeitspanne oder ist diese pro Objekt fix?

            Also entweder

            SchlafzimmerTemperaturPlot

            oder eher

            SchlafzimmerTemperaturPlotTag
            SchlafzimmerTemperaturPlotMonat
            SchlafzimmerTemperaturPlotJahr

            In der offline_docu.var sind mal keine Datenpunkte hinterlegt.

            Ich würde mich dann daran wagen die Daten wenn möglich über linknx auszuliefern...

            Kommentar


              #7
              Zitat von TCr82 Beitrag anzeigen
              Schwach ist das System - also der PC auf dem das ganze läuft...
              Da kann aber die Software nichts dafür. Smarthome.py braucht minimale Anforderungen an die Hardware und läuft mit 3-5% Last auf einem Raspberry!!!

              Zitat von TCr82 Beitrag anzeigen
              Welche Werte werden in welcher Form an die Visu geliefert... frägt die Visu nach der Zeitspanne oder ist diese pro Objekt fix?
              Gernerell ist es so das smartVISU Zeitreihen verarbeitet. Sprich ein Feld mit Zeit, Werte-Paaren: [[t1, v1], [t2, v2], ...]

              Bei der Initialisierung wird die komplette Zeitreihe angefragt, mit von, bis, und dem Modus. Dieser könnte sein: AVG, SUM, MIN, MAX, COUNT. Das Backend sollte dann eine Zeitreihe lieferen mit x-Werten im angeorderten Zeitabschnitt. Jeder Zeitabschnitt hat genau einen Wert mit dem zusammengefasst mit dem Modus. Somit bleiben die Zeitreihen klein.

              Kommen neue Werte über den Bus, reicht ein [t3, v3] Zeitpunkt, der dann hinzugefügt wird.

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

              Kommentar


                #8
                also ist es wie du schon gesagt hast nicht gerade einfach bis nicht möglich das mit linknx zu verarbeiten, da wir 1. nicht eine anfrage stellen können und dann darauf die Zahlenreihe abzufragen und 2. nicht einzelne Werte nachliefern können, sondern dann immer wieder die komplette Datenreihe..

                Schade - einzige Möglichkeit wäre, wenn man einen Workaround im JS aufhängen würde.. bin jetzt aber erstmal mit dem Style Problem beschäftigt...

                Kommentar


                  #9
                  so, heute hab ich mir mal ein wenig den js-code angesehen und ein wenig herum probiert, so dass ich schonmal eine (räusper: zwei) Linie(n) habe:

                  Nötig war erstmal nur eine Änderung im driver/io_linknx.js
                  Code:
                  --- driver/io_linknx.js (Revision 289)
                  +++ driver/io_linknx.js (Arbeitskopie)
                  @@ -182,7 +182,7 @@
                                   .done(function (response) {
                                       if (typeof(response) == 'object') {
                                          $.each(response, function(item, val) {
                  -                                                       widget.update(item, val);
                  +                                                       widget.update(item, JSON.parse(val));
                                          })
                                       }
                                       else
                  In linknx habe ich eine neue Gruppenadresse angelegt:
                  Code:
                  <object type="28.001" id="PlotValueTest.avg.1h.0" gad="0/1/3" init="persist" flags="crwtu">PlotValueTest.avg.1h.0</object>
                  Dort habe ich manuell folgenden Wert gespeichert (dies soll später Automatisch über eine Regel aktualisiert werden):

                  Code:
                  [[1367388000000,23],[1367388300000,23],[1367388600000,21],[1367388900000,18],[1367389200000,19],[1367389500000,22],[1367389800000,18],[1367390100000,21],[1367390400000,20],[1367390700000,24]]
                  Und im Template den folgendem Plot:
                  Code:
                  {{ plot.period('p1', 'PlotValueTest', 'avg', '1h', 0, 0, 100, '', '', '#aa0', 'line') }}
                  Somit bekomme ich schonmal folgendes:



                  Ich frage mich nur:
                  1. wieso ich zwei Linien bekomme?
                  2. Was hat es mit der .0 von PlotValueTest.avg.1h.0 auf sich?
                  3. Wann genau wird point statt update aufgerufen... stehe wohl auf dem schlauch:

                  Code:
                  if ($(this).attr('data-widget').substr(0,5) == 'plot.' && $('#' + this.id).highcharts()) {
                  Also nur wenn der Typ des Widgets "plot" ist und highcharts??

                  EDIT: ok, nachdem das erste update kam wird , wird das highcharts() Objekt angelegt und folglich danach immer nur point aufgerufen oder bin ich da falsch?

                  Kommentar


                    #10
                    Zitat von TCr82 Beitrag anzeigen
                    Ich frage mich nur:
                    1. wieso ich zwei Linien bekomme?
                    Naja, weil das Feld noch flasch aufgebaut ist. Die Plots unterstützen ja mehrere Linien, also brauchen wir ein Array, mit das so aufgebaut ist:

                    [
                    [ [linie1zeitpunkt1, wert], [linie1zeipunkt2, wert] ]
                    [ [linie2zeitpunkt1, wert], [linie2zeipunkt2, wert] ]
                    ]

                    quasi noch eine Dimension mehr.


                    Zitat von TCr82 Beitrag anzeigen
                    2. Was hat es mit der .0 von PlotValueTest.avg.1h.0 auf sich?
                    0 = jetzt. Also von vor 1h bis jetzt.
                    Smarthome.py unterstütz auch z. b. .avg.2d.1d -> also gestern.


                    Zitat von TCr82 Beitrag anzeigen
                    3. Wann genau wird point statt update aufgerufen...
                    [/QUOTE]
                    Das ist richtig, beim ersten init "update" dann nur noch "point", wenn der Plot dynamisch "on the fly" erweitert werden soll. (wäre aber ein optionales feature)


                    Generell würde ich wahrscheinlich mal von der anderen Seite daraufblicken und mir folgende Fragen stellen:
                    - Wo werden die Daten gespeichert? RRDs?
                    - Wäre es dann vielleicht besser man hätte ein .php script, was die in Array-Form bringt?
                    - dann für den Fall "Plot" statt einer linknx-Anfrage - zum Script verzweigt und die Daten angefordert?
                    - Was hätte es für einen Vorteil wenn die linknx ausliefert? (Werden ja nur durchgereicht oder)?

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

                    Kommentar


                      #11
                      Ich möchte diesen Thread mal kurz karpern, ich habe kurz mit dem Gedanken gespielt meine Visu auf smarthome.py umzustricken, aber nach den gefühlt hunderten GADs , habe ich die Lust verloren, würde aber trotzdem gerne die Plots nutzen...

                      Vor einiger Zeit habe ich (mit wenig Erfolg) die JavaScript Bibliothek javascriptrrd ausprobiert. Meine RRDs erzeugt das Wiregate, aber ein Zugriff ist mir trotzdem nicht gelungen (hab allerdings auch nur einen Tag getestet). Hat das schon mal jemand erfolgreich getestet?

                      Aber davon mal ab, wäre es nicht denkbar ein Widget zu erstellen, auf Grundlage der smarthome.py Plots, die direkt rrds einbinden, sprich man übergibt die RRD-URL, ggf. den Zeitraum usw.?
                      Nachteil ist natürlich das es dann Plots und "RRD-Plots" gibt...

                      Kommentar


                        #12
                        Hallo
                        Zitat von panzaeron Beitrag anzeigen
                        I...aber nach den gefühlt hunderten GADs , habe ich die Lust verloren, würde aber trotzdem gerne die Plots nutzen...
                        ja schade. Kennst Du das Konvertierungsscript von greentux? https://knx-user-forum.de/smarthome-...f-convert.html

                        Vllt. hilft es Dir ja.

                        Bis bald

                        Marcus

                        Kommentar


                          #13
                          AW: Plots ohne smarthome

                          Naja es geht auch sicher anders.

                          Man sollte aber eine Client Server Lösung anstreben... also Client ist der Browser, Server ein Skript z.b. PHP.

                          Ich selbst bin auch auf sh.py umgestiegen aber nicht wirklich überzeugt von den Plots. Toll ist aber die Reaktionszeit von sh.py.

                          Mir fehlt etwas mehr Flexibilität.
                          In sh.py wird momentan nur in sqllight geloggt (in Zusammenhang mit den Plots).

                          Wäre dabei hier was eigenes zu bauen was wir in die Visu integrieren.


                          Gesendet von meinem GT-I9100 mit Tapatalk 2

                          Kommentar


                            #14
                            Zitat von TCr82 Beitrag anzeigen
                            Ich selbst bin auch auf sh.py umgestiegen aber nicht wirklich überzeugt von den Plots.
                            Warum?
                            Join smartVISU on facebook. Web: smartvisu.de.
                            Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

                            Kommentar


                              #15
                              AW: Plots ohne smarthome

                              Naja.. die plots sind nicht so gut umgesetzt. Habe ich ja aber schonmal erwähnt ... wurde aber leider ignoriert.

                              https://knx-user-forum.de/showthread.php?p=314359

                              Es fehlt mir einfach mehr Flexibilität.

                              Umschalten zwischen mehreren Zeitverläufen.. evtl Zoom, die Gegenüberstellung der Bool Werte. Die gleichzeitige darstellung von min und max werten ...
                              Das kann Sh.py nicht bieten.

                              Selbst wenn RRDs mal verfügbar sind fehlt soweit ich denke noch die detailierte Konfigurationsmöglichkeit der rrd db.

                              Gesendet von meinem GT-I9100 mit Tapatalk 2

                              Kommentar

                              Lädt...
                              X