Ankündigung

Einklappen
Keine Ankündigung bisher.

Anbindung Cacti

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

    [linKNX] Anbindung Cacti

    Hallo,

    ich habe eine ganze Zeit lang Misterhouse verwendet und steige gerade auf LinKNX um.

    LinKNX läuft soweit sehr gut, mit Misterhouse konnte ich mit einem perl Skript Daten auslesen. Diese wurden alle x Minuten von Cacti ausgelesen. Nun suche ich ein Skript für LinKNX um weiter meine Daten zu loggen.

    Danke,
    Flow

    #2
    hoi

    Du kannst Shellscripts von Linknx aus aufrufen:
    Code:
    <action type="shell-cmd" cmd="/etc/ow/sendurl.pl" />
    oder Webseiten:
    Code:
    <action type="shell-cmd" cmd="wget -q http://user:pass@x.x.x.x/admin/cgi-bin/ipc_send?menu_collapse" />
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #3
      Ich nutze dazu den php-Script-Server von cacti:
      PHP Script Server

      Zur Abfrage liegt folgendes Script bei mir unter /usr/share/cacti/site/scripts

      PHP-Code:
      <?php
      #!/usr/bin/php -q

      $no_http_headers true;

      /* display No errors */
      error_reporting(E_ERROR);

      include_once(
      dirname(__FILE__) . "/../include/config.php");
      include_once(
      dirname(__FILE__) . "/../lib/snmp.php");

      if (!isset(
      $called_by_script_server)) {
              
      array_shift($_SERVER["argv"]);
              print 
      call_user_func_array("ss_knxread"$_SERVER["argv"]);
      }

      function 
      ss_knxread($id) {

      /* KNX_open */
              
      $address "localhost";
              
      $port "1028";

              
      $fp fsockopen($address$port$errno$errstr30);

      /* KNX Werte mit LinKNX auslsen */
          
      $in "<read><object id='$id'/></read>\n\4";

          
      fwrite($fp$in);

          
      $ret '';
          
      $cnt 0;
          while (
      $cnt && $fp && !feof($fp)) {
              
      $ret .= fgets($fp128);
              
      $c fgetc($fp);
              if (
      $c == "\4") {
                  if (
      ereg ("<read status='success'>([^<]+)</read>"$ret,$regs))
                    
      $ret $regs[1];
                  break;
              }
              
      $ret .= $c;
              
      $cnt++;
          }
          return 
      $ret;

      /* KNX_close */
              
      fclose($fp);
      }

      ?>

      Der Aufruf in den Data Input Methods - siehe Screenshot.

      VG Frank
      Angehängte Dateien

      Kommentar


        #4
        @ Bodo
        Danke für die Antwort, aber das ich mit LinKNX Skripte starten kann war mir klar. Ich suchte eher ein schon passendes Skript.

        @ Ottorino
        Danke für da tolle Skript, funktioniert bisher sehr gut, nun muss ich nur mal sehen das auch meine alten Daten übernommen werden.

        Grüße Flow

        Kommentar


          #5
          Danke nochmal an euch beide, damit ihr auch wisst, dass das Wissen zu einem guten Zweck verwendet wurde hier das Ergebnis:

          knx-user-forum - Beitrag

          Grüße Flow

          Kommentar

          Lädt...
          X