Ankündigung

Einklappen
Keine Ankündigung bisher.

RRD Plugin

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

    RRD Plugin

    Hallo,

    ich habe die Tage das RRD Plugin auf Github eingepflegt.
    Es wird Bestandteil des 0.8 Releases sein, das ich gerne in 4-6 Wochen releasen möchte.

    Für die Visualisierung der Graphiken wird flot eingesetzt und dynamisch aktualisiert. Ein Beispiel seht ihr weiter unten.

    Wenn man es vor dem Release verwenden möchte, dann muss man sich die aktuelle Version von github holen.
    Code:
    $ cd /usr/local
    $ git clone git://github.com/mknx/smarthome.git
    Oder wenn man das bereits gemacht hat:
    Code:
    $ cd /usr/local/smarthome
    $ git pull
    Plugin aktivieren:
    Code:
    # etc/plugin.conf
    [rrd]
       class_name = RRD
       class_path = plugins.rrd
    RRD für Items mit automatischer Visu aktivieren:
    Code:
    # etc/system.conf
    [system]
        name = System
        [[memory]]
            name = Memory (kilobytes)
            type = num
            visu = rrd
            rrd = yes
        [[load]]
            name = Load (5m)
            type = num
            visu = rrd
            rrd = yes
        [[threads]]
            name = Threads
            type = num
            visu = rrd
            rrd = yes
        [[runtime]]
            visu = div
            name = Laufzeit
            type = str
    Für die Visualisierung müssen die Dateien in dem Webserver aktualisiert werden.
    Code:
    $ cp -r /usr/local/smarthome/examples/visu/js/* /var/www/visu/js/
    In dem HTML Header muss ungefähr so aus sehen:
    Code:
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <meta name="viewport" content="width=device-width, initial-scale=1" />
            <meta name="apple-mobile-web-app-capable" content="yes" />
            <meta name="apple-mobile-web-app-status-bar-style" content="black" />
            <title>SmartHome.py</title>
            <link rel="stylesheet" href="/css/jquery.mobile.min.css" />
            <link rel="stylesheet" href="/css/my.css" />
            <script src="/js/jquery.min.js"></script>
            <script src="/js/jquery.mobile.min.js"></script>
            <script src="/js/jquery.flot.min.js"></script>
            <script src="/js/jquery.flot.time.min.js"></script>
            <script src="/js/smarthome.min.js"></script>
            <script src="/js/my.smarthome.js"></script>
        </head>
    <body>
    wichtig sind hier die beiden zusätzlichen "flot" Zeilen.

    Per default wird ein Tag (1d) angezeigt, man kann das im HTML Code relativ einfach einpassen. Das Plugin bzw. die Visu sind relativ mächtig und können auch mehrere Linien in ein Diagramm packen.

    Code:
    [raum]
        name = Bereich
        visu = rrd
        visu_opt = raum.hum, raum.temp
        [[hum]]
            name = Luftfeuchte
            type = num
            rrd = yes
        [[temp]]
            name = Temperatur
            type = num
            rrd= yes
    Mehr Doku dann mit dem Release auf der Homepage.

    Fragen?

    Bis bald

    Marcus
    Angehängte Dateien

    #2
    Coole Sache. Noch ein Punkt auf meiner "Was-mache-ich-im-Weihnachtsurlaub?" Liste

    Danke Marcus
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    Kommentar


      #3
      Super !

      Ich habe lange gebraucht um es ans laufen zu bekommen.
      Das Problem war das ich mich an die example.html gehalten habe.

      Code:
      <div data-rrd="example.rrd" data-frame="1h" style="margin:1%;width:device-width;height:300px"></div>
      Die Datenbank muss aber nicht so "example.rrd" sondern so "example" angegenen werden.
      Also in meinem Fall z.B. nicht "temperatur.aussen.rrd" sondern "temperatur.aussen"

      Bei meinen Versuchen habe ich auch die Aktuelle GIT Version von Smarthome.py installiert - Die verursacht aber 100% CPU last bei mir!

      Im Moment scheitere ich daran die Grafen mit in die Metro VISU zu bekommen :-(

      Vielen Dank für eure Arbeit Marcus und Nico

      Gruß Maik

      Kommentar


        #4
        Hi Maik,

        freut mich das es Dir gefällt.

        Zitat von MaBo76 Beitrag anzeigen
        Ich habe lange gebraucht um es ans laufen zu bekommen.
        Das Problem war das ich mich an die example.html gehalten habe.
        Das ist eigentlich kein Problem, sondern richtig. In der example item conf gibt es halt das Item 'example.rrd'. Vllt. benenne ich das aber noch vor dem Release um.

        Zitat von MaBo76 Beitrag anzeigen
        Bei meinen Versuchen habe ich auch die Aktuelle GIT Version von Smarthome.py installiert - Die verursacht aber 100% CPU last bei mir!
        WTF! Kannst Du dazu bitte einen separaten Thread aufmachen?
        Am besten auch gleich den Debug-Output mit 'smarthome.py -n'.
        Wie sieht es ohne das RRD Plugin aus?
        Wie war die Last vorher?

        Danke

        Marcus

        Kommentar


          #5
          Zitat von MaBo76 Beitrag anzeigen
          Im Moment scheitere ich daran die Grafen mit in die Metro VISU zu bekommen :-(
          Ui, da bin ich gespannt. Ich hab da ja schon ne Idee, aber momentan zu wenig Zeit. Mal sehen wie du das umsetzt. Aber überhaupt freuts mich, dass wohl doch jemand die Metro Visu nutzt
          Mit freundlichen Grüßen
          Niko Will

          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

          Kommentar


            #6
            png output

            Hi,

            auf Nachfrage kann ich auch die Erzeugung von PNG implementieren. Flot mit der dynamischen Anspassung erscheinte mir aber attraktiver.

            Bis bald

            Marcus

            Kommentar


              #7
              Zitat von mknx Beitrag anzeigen
              auf Nachfrage kann ich auch die Erzeugung von PNG implementieren.
              Wer will schon hunderte Kilobytes an Grafiken übers Netz schicken wenn auch ein paar Byte an Daten reichen um weitaus hübschere Graphen zu erstellen!
              Mit freundlichen Grüßen
              Niko Will

              Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
              - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

              Kommentar


                #8
                Ich würde auch sagen Flot ist der bessere weg.
                Die Graphen sehen toll aus!

                Zu dem WTF!
                Ich habe jetzt die neue GIT Version (da hat sich ja schon wieder etwas geändert ) gezogen und bis jetzt läuft alles!

                Gruß Maik

                Kommentar


                  #9
                  Die Version die ich gestern installiert habe Läuft!
                  Keine Ahnung warum Python auf einmal 100% (normal so zwischen 0,0% und 0,8%) CPU Last
                  verursacht hatte. Die Last wurde auch direkt nach dem starten abgerufen. Es
                  lag aber nicht am RRD Plugin, dieses hatte ich testweise ausgeschaltet.

                  Also alles ist Super ! SmartHome.py ist Toll !

                  Weiter so und vielen DANK

                  Gruß Maik

                  Kommentar


                    #10
                    Zitat von MaBo76 Beitrag anzeigen
                    Also alles ist Super ! SmartHome.py ist Toll !
                    Freut mich! Vielen Dank.

                    Marcus

                    Kommentar


                      #11
                      Man muss natürlich rrdtool und die Python libs installiert haben:

                      Code:
                      sudo apt-get install rrdtool
                      sudo apt-get install python-rrd
                      EDIT: und deine Beispielkonfiguration muss nicht unter "etc/system.conf" sondern "items/system.conf" liegen
                      Mit freundlichen Grüßen
                      Niko Will

                      Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                      - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                      Kommentar


                        #12
                        Hab noch ne kleine Änderung vorgenommen, damit man die Flot Ausgabe auch im HTML stylen kann. Es gibt ein neues Attribut "data-options" (natürlich optional) das im Falle eines RRDs geparst und an Flot übergeben wird. So kann man die ganzen Styles von hier: https://github.com/flot/flot/blob/master/API.md
                        wie folgt integrieren:

                        Code:
                        <div style="position:absolute;top:25px;right:25px;left:25px;bottom:25px;" data-rrd="system.memory='label': 'Memory (kilobytes)'" data-frame="1d" data-options="
                            'series': {
                                'color': 'rgba(255, 255, 255, 1)',
                                'lines': { 
                                    'show': true,
                                    'fill': true, 
                                    'fillColor': 'rgba(255, 255, 255, 1)'
                                }
                            },
                            'xaxis': { 'show': false },
                            'yaxis': { 'show': false },
                            'legend': { 'show': false },
                            'grid': { 'show': false }
                        "></div>
                        Schöner wäre natürlich, wenn man das ganze über CSS stylen könnte, aber da hab ich auf die schnelle keine Möglichkeit gefunden
                        Mit freundlichen Grüßen
                        Niko Will

                        Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                        - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                        Kommentar


                          #13
                          Wo kann man die "Randbedingungen" für die RRDs festlegen?
                          Also welche Datenmengen diese in welcher Auflösung vorhalten sollen?
                          Derzeit zwischen Kistenauspacken und Garten anlegen.
                          Baublog im Profil.

                          Kommentar


                            #14
                            Zitat von greentux Beitrag anzeigen
                            Wo kann man die "Randbedingungen" für die RRDs festlegen?
                            Also welche Datenmengen diese in welcher Auflösung vorhalten sollen?
                            Im Sourcecode des RRD Plugins. Individuell anpassen geht momentan nicht.
                            Was passt an den defaults nicht?

                            Bis bald

                            Marcus

                            Kommentar


                              #15
                              Ich habe derzeit 5 Minuten für 400 Tage vorrätig.
                              Aber ok, im Code ist es zu finden.
                              Derzeit zwischen Kistenauspacken und Garten anlegen.
                              Baublog im Profil.

                              Kommentar

                              Lädt...
                              X