Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfestellung bei Diagramm anzeigen

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

    Hilfestellung bei Diagramm anzeigen

    Hallo,

    ich möchte gerne mittels Diagramm_info mir die Temperatur Wohnzimmer als Verlauf anzeigen lassen. So wie es in der Demo gezeigt wird.
    Leider fehlen die passenden Hilfen im Wiki, so das ich mal wieder auf euch angewiesen bin.
    (http://www.cometvisu.de/wiki/index.p...edit&redlink=1)
    denke das wäre genau das was ich möchte.

    Ich habe das rrdtool aber aus dem Ubuntu repository installiert, das Wiregate Repo mit dem gepatchen scheint down zu sein. Auch den patch
    selbst scheint es nicht mehr zu geben?

    Gibt es vielleicht ne verständliche Anleitung dafür?
    Elektroinstallation-Rosenberg
    -Systemintegration-
    Planung, Ausführung, Bauherren Unterstützung
    http://www.knx-haus.com

    #2
    Moin,

    check out meine Bilder - so habe ich die Diagramme eingefügt.

    Die Frage die sich mir stellt:
    Wo kommen die Daten her?
    wenn du WireGate Sensoren benutzt, sollten die entsprechenden rrd's im DropDown-Menü verfügbar sein.

    Ansonsten kannst du die RRD's auch über ein Plugin generieren lassen. Ich nutze das Plug in "RRD_creator"

    reicht das an Infos?
    Angehängte Dateien

    Kommentar


      #3
      ne soweit bin ich ja noch gar nicht,

      ich habe die rrdfetch im cgi-bin angelegt
      und die script dateien für z.b cpuload.

      Die Uhrzeit des Diagramms steht auf 1.00 nicht auf 5:50????

      [EDIT]

      sieht so aus als kommen jetzt daten in die Datenbank
      Code:
      lars@server:/var/www/rrd$ date +%s
      1416378994
      lars@server:/var/www/rrd$ rrdtool dump ./cputemp.rrd |grep 1416378
          <lastupdate>1416378893</lastupdate> <!-- 2014-11-19 07:34:53 CET -->
                  <!-- 2014-11-19 07:20:00 CET / 1416378000 --> <row><v>NaN</v></row>
                  <!-- 2014-11-19 07:25:00 CET / 1416378300 --> <row><v>NaN</v></row>
                  <!-- 2014-11-19 07:30:00 CET / 1416378600 --> <row><v>2.6800000000e+01</v></row>
                  <!-- 2014-11-19 07:30:00 CET / 1416378600 --> <row><v>NaN</v></row>
      lars@server:/var/www/rrd$ sudo ./cputemp 
      26.800
      lars@server:/var/www/rrd$ rrdtool dump ./cputemp.rrd |grep 1416378
                  <!-- 2014-11-19 07:20:00 CET / 1416378000 --> <row><v>NaN</v></row>
                  <!-- 2014-11-19 07:25:00 CET / 1416378300 --> <row><v>NaN</v></row>
                  <!-- 2014-11-19 07:30:00 CET / 1416378600 --> <row><v>2.6800000000e+01</v></row>
                  <!-- 2014-11-19 07:35:00 CET / 1416378900 --> <row><v>2.6800000000e+01</v></row>
                  <!-- 2014-11-19 07:30:00 CET / 1416378600 --> <row><v>NaN</v></row>
      jedoch besteht weiterhin das problem das das diagramm auf 1:00 steht, und wenn ich auf die uhrzeit gehe wo es eingetragen wurde sehe ich nichts.


      fehler apache:

      [Wed Nov 19 07:29:31.218816 2014] [cgi:error] [pid 26381] [client 192.168.178.29:36603] AH01215: /usr/lib/cgi-bin/rrdfetch: line 17: 1416127200: -nan: command not found, referer: http://192.168.178.220:82/index.html?config=previewtemp

      Code:
      #!/bin/bash
      #echo Content-Type: text/plain
      echo Content-Type: application/json
      echo Content-Encoding: gzip
      echo
      
      #rrdtool fetch /var/www/rrd/Luftfeuchte_Bad_knx5-2-79.rrd AVERAGE -s-24h
      RRD=`echo "$QUERY_STRING" | sed -n 's/^.*rrd=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
      DS=`echo "$QUERY_STRING" | sed -n 's/^.*ds=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
      START=`echo "$QUERY_STRING" | sed -n 's/^.*start=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
      END=`echo "$QUERY_STRING" | sed -n 's/^.*end=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
      RES=`echo "$QUERY_STRING" | sed -n 's/^.*res=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
      
      rrdtool fetch /var/www/rrd/$RRD $DS -s$START -e$END -r$RES | \
      { while read line ;
      do
          if  "$line" == *:*  #matching lines with ":"
          then
          arr=(${line//: / }) #splits string with ": " in array
          a=${arr[0]}
          b=${arr[1]}
          a+="000"   #add zeros
          data+="[$a,[\"$b\"]],"
      fi
      done
      echo "[${data%?}]" | gzip -c #cuts last character of $data and makes [] around
      }
      mit dem andern script
      Code:
      #!/bin/sh #
      echo Content-Type: text/plain 
      echo Content-Type: application/json 
      echo Content-Encoding: gzip 
      echo  
      
      #rrdtool fetch /var/www/rrd/Luftfeuchte_Bad_knx5-2-79.rrd AVERAGE -s-24h 
      RRD=`echo "$QUERY_STRING" | sed -n 's/^.*rrd=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"` 
      DS=`echo "$QUERY_STRING" | sed -n 's/^.*ds=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"` 
      START=`echo "$QUERY_STRING" | sed -n 's/^.*start=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"` 
      END=`echo "$QUERY_STRING" | sed -n 's/^.*end=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"` 
      RES=`echo "$QUERY_STRING" | sed -n 's/^.*res=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`  
      
      #FIXME: check path traversal  
      rrdtool xport -json /var/www/rrd/$RRD $DS -s$START -e$END -r$RES | gzip -c
      bekomme ich die meldung:
      [Wed Nov 19 08:10:14.898872 2014] [cgi:error] [pid 11888] [client 192.168.178.29:39792] AH01215: ERROR: unknown option 'xport', referer: http://192.168.178.220:82/index.html?config=previewtemp
      [Wed Nov 19 08:10:16.141622 2014] [cgi:error] [pid 19986] [client 192.168.178.29:39791] AH01215: ERROR: unknown option 'xport', referer: http://192.168.178.220:82/index.html?config=previewtemp

      und mit dem Script sehe ich nichtmal die Zeitachse.
      Elektroinstallation-Rosenberg
      -Systemintegration-
      Planung, Ausführung, Bauherren Unterstützung
      http://www.knx-haus.com

      Kommentar


        #4
        Wie sieht denn das Script bei euch aus?
        Irgendjemand nutzt doch hier bestimmt ein Diagramm mit ŕrdtool?
        Oder geht das ganze wieder nur auf einem Wiregate und nicht auf einem Debian system?
        Elektroinstallation-Rosenberg
        -Systemintegration-
        Planung, Ausführung, Bauherren Unterstützung
        http://www.knx-haus.com

        Kommentar


          #5
          Also ich nutze das ganze auf einem Raspberry ...

          Auf welcher Platform nutz Du die CometVisu?

          in der linknx.xml definiere ich die gewünschten Objekte:
          Code:
          <objects>
                  <object type="9.xxx" id="Aussen_Temperatur" gad="0/0/1" init="persist" flags="cwu">Aussen_Temperatur</object>
          das script welches die Werte in die RRD´s schreibt (wird über einen cron-job regelmäßig ausgeführt):

          Code:
          #!/bin/bash
          cd /var/www/rrd/
          # Read temperature from sensor 
          tempread=`cat /var/www/linknx/Aussen_Temperatur` 
          temp=`echo $tempread | cut -c -4`
          # Update database
          rrdtool update database_aussen_temperatur.rrd N:$temp

          Kommentar


            #6
            Also ich hab ein ganz normalen X64 server mit debian am laufen.

            Ich nutze gar kein linknx? braucht man das dazu?
            Elektroinstallation-Rosenberg
            -Systemintegration-
            Planung, Ausführung, Bauherren Unterstützung
            http://www.knx-haus.com

            Kommentar


              #7
              Na wenn Du KNX - Werte aufzeichnen willst auf jeden Fall ...

              Kommentar


                #8
                Ja ok, soweit bin ich ja noch gar nicht.
                Wie sieht den bei dir die rrdfetch im cgi-bin ordner aus?
                Elektroinstallation-Rosenberg
                -Systemintegration-
                Planung, Ausführung, Bauherren Unterstützung
                http://www.knx-haus.com

                Kommentar


                  #9
                  Code:
                  #!/bin/sh
                  #echo Content-Type: text/plain
                  echo Content-Type: application/json
                  echo Content-Encoding: gzip
                  echo
                  
                  #rrdtool fetch /var/www/rrd/Luftfeuchte_Bad_knx5-2-79.rrd AVERAGE -s-24h
                  RRD=`echo "$QUERY_STRING" | sed -n 's/^.*rrd=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
                  DS=`echo "$QUERY_STRING" | sed -n 's/^.*ds=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
                  START=`echo "$QUERY_STRING" | sed -n 's/^.*start=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
                  END=`echo "$QUERY_STRING" | sed -n 's/^.*end=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
                  RES=`echo "$QUERY_STRING" | sed -n 's/^.*res=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
                  
                  #FIXME: check path traversal
                  
                  rrdtool fetchj /var/www/rrd/$RRD $DS -s$START -e$END -r$RES | gzip -c
                  Wurde in diesem Thema behandelt ... https://knx-user-forum.de/cometvisu/...allscript.html

                  Kommentar


                    #10
                    kann es sein das du das gepatche rrdtool benutzt?
                    Mein rrdtool kennt fetchj nicht

                    [Thu Nov 20 20:55:14.531819 2014] [cgi:error] [pid 16384] [client 192.168.178.29:60308] AH01215: ERROR: unknown function 'fetchj', referer: http://192.168.178.220:82/index.html?config=previewtemp

                    Ja auf der seite steht es ja, RRDTOOL [Patched]
                    hmmmm ich finde nur leider nirgendwo den patch sonst hätte ich es gemacht.

                    Ich habe ja gehoft das Chris sich mal zu wort meldet, der war da wohl mit dran beteiligt
                    Elektroinstallation-Rosenberg
                    -Systemintegration-
                    Planung, Ausführung, Bauherren Unterstützung
                    http://www.knx-haus.com

                    Kommentar


                      #11
                      Ja, richtig! Die normale Variante funktioniert ja meines Wissens nach irgendwie nicht (ich denke mit der KNX Anbindung - bin mir aber nicht mehr sicher - zu lange her ...)

                      Kommentar


                        #12
                        Schau Dir das doch mal zu diesem Thema an:
                        CometVisu/0.8.x/etc/rrd/de/ - Open Automation
                        https://knx-user-forum.de/cometvisu/....html?langid=2

                        Kommentar


                          #13
                          Das kenn ich schon auswendig....

                          Aber ich habe glaube den Patch aus den untergründen des WWW gezaubert
                          Code:
                          --- rrdtool-1.4.7.orig/src/rrd_tool.c    2013-03-15 08:20:58.610279063 +0100
                          +++ rrdtool-1.4.7/src/rrd_tool.c    2013-03-15 08:23:58.991211760 +0100
                          @@ -56,7 +56,7 @@
                               const char *help_list =
                                   N_
                                   ("Valid commands: create, update, updatev, graph, graphv,  dump, restore,\n"
                          -         "\t\tlast, lastupdate, first, info, fetch, tune,\n"
                          +         "\t\tlast, lastupdate, first, info, fetch, fetchj, tune,\n"
                                    "\t\tresize, xport, flushcached\n");
                           
                               const char *help_listremote =
                          @@ -119,6 +119,12 @@
                                      "\t\t[-r|--resolution resolution]\n"
                                      "\t\t[-s|--start start] [-e|--end end]\n"
                                  "\t\t[--daemon <address>]\n");
                          +       
                          +  const char *help_fetchj =
                          +      N_("* fetchj - fetch data out of an RRD as JSON\n\n"
                          +         "\trrdtool fetchj filename.rrd CF\n"
                          +         "\t\t[-r|--resolution resolution]\n"
                          +         "\t\t[-s|--start start] [-e|--end end]\n\n");
                           
                               const char *help_flushcached =
                                   N_("* flushcached - flush cached data out to an RRD file\n\n"
                          @@ -230,7 +236,7 @@
                                      "Public License Version 2. (www.gnu.org/copyleft/gpl.html)\n\n"
                                      "For more information read the RRD manpages\n");
                               enum { C_NONE, C_CREATE, C_DUMP, C_INFO, C_RESTORE, C_LAST,
                          -        C_LASTUPDATE, C_FIRST, C_UPDATE, C_FETCH, C_GRAPH, C_GRAPHV,
                          +        C_LASTUPDATE, C_FIRST, C_UPDATE, C_FETCH, C_FETCHJ, C_GRAPH, C_GRAPHV,
                                   C_TUNE,
                                   C_RESIZE, C_XPORT, C_QUIT, C_LS, C_CD, C_MKDIR, C_PWD,
                                   C_UPDATEV, C_FLUSHCACHED
                          @@ -258,6 +264,8 @@
                                       help_cmd = C_UPDATEV;
                                   else if (!strcmp(cmd, "fetch"))
                                       help_cmd = C_FETCH;
                          +        else if (!strcmp(cmd, "fetchj"))
                          +            help_cmd = C_FETCHJ;
                                   else if (!strcmp(cmd, "flushcached"))
                                       help_cmd = C_FLUSHCACHED;
                                   else if (!strcmp(cmd, "graph"))
                          @@ -320,6 +328,9 @@
                               case C_FETCH:
                                   puts(_(help_fetch));
                                   break;
                          +    case C_FETCHJ:
                          +        puts(_(help_fetchj));
                          +        break;
                               case C_FLUSHCACHED:
                                   puts(_(help_flushcached));
                                   break;
                          @@ -682,7 +693,6 @@
                                   unsigned long step, ds_cnt, i, ii;
                                   rrd_value_t *data, *datai;
                                   char    **ds_namv;
                          -
                                   if (rrd_fetch
                                       (argc - 1, &argv[1], &start, &end, &step, &ds_cnt, &ds_namv,
                                        &data) == 0) {
                          @@ -708,7 +708,40 @@
                                       free(ds_namv);
                                       free(data);
                                   }
                          -    } else if (strcmp("xport", argv[1]) == 0) {
                          +    }
                          +    else if (strcmp("fetchj", argv[1]) == 0) {
                          +        time_t    start, end, ti;
                          +        unsigned long step, ds_cnt, i, ii;
                          +        rrd_value_t *data, *datai;
                          +        char    **ds_namv;
                          +        int written = 0;
                          +
                          +        if (rrd_fetch
                          +            (argc - 1, &argv[1], &start, &end, &step, &ds_cnt, &ds_namv,
                          +             &data) != -1) {
                          +            datai = data;
                          +            // printf("Content-Type: text/plain\n\n");
                          +            printf("[");
                          +            for (ti = start + step; ti <= end; ti += step) {
                          +                if (written==1)
                          +                       printf(",");
                          +                printf("[%10lu000,[", ti);
                          +                for (ii = 0; ii < ds_cnt; ii++) {
                          +                    if (ii > 0)
                          +                    printf(",");
                          +                    printf("\"%0.2f\"", *(datai++));
                          +                }
                          +                printf("]]");
                          +                written = 1;
                          +            }
                          +            for (i = 0; i < ds_cnt; i++)
                          +                free(ds_namv[i]);
                          +            free(ds_namv);
                          +            free(data);
                          +            printf("]\n");
                          +        }
                          +    }
                          +    else if (strcmp("xport", argv[1]) == 0) {
                           #ifdef HAVE_RRD_GRAPH
                                   int       xxsize;
                                   unsigned long int j = 0;
                          Wenn ich es hinbekommen hab gibbet es n Howto..
                          Elektroinstallation-Rosenberg
                          -Systemintegration-
                          Planung, Ausführung, Bauherren Unterstützung
                          http://www.knx-haus.com

                          Kommentar


                            #14
                            Jaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

                            Ich Liebe dich......


                            nene so es geht jetzt mit dem o.g patch.
                            Ich werde morgen früh auf der Seite 1 den Öffnungsthread anpassen mit einer Anleitung vielleicht kommt es ja ins wiki...
                            Elektroinstallation-Rosenberg
                            -Systemintegration-
                            Planung, Ausführung, Bauherren Unterstützung
                            http://www.knx-haus.com

                            Kommentar


                              #15
                              Gratuliere!

                              Kommentar

                              Lädt...
                              X