Ankündigung

Einklappen
Keine Ankündigung bisher.

Howto - eibd installieren

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

    #46
    SUPER!!

    Solbald ich wieder mehr Zeit habe, werde ich nochmals einen Anlauf versuchen...
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    Kommentar


      #47
      Zitat von EPIX Beitrag anzeigen
      Hallo Chris!

      Danke für den Tip: eine Bitte: Könntest du das Script veröffentlichen *bettel*

      LG aus Ö!
      Ja, ist doch ganz einfach, Du richtest einen cron-Job ein, ungefähr so:

      Code:
      10  *  *  *  *        root        wget http://server/update.php  --delete-after
      und die update.php sieht dann z.B. so aus:

      PHP-Code:
      <?php
      # -------------------------------------------------
      # Datei: update.php
      # benötigt: linknx.php
      # -------------------------------------------------
      # Beschreibung:
      # Holt EIB-Werte und schreibt sie in eine Datenbank
      # -------------------------------------------------
      # Autor: Christian Haeussler
      # geändert am: 17.02.2008
      # -------------------------------------------------

      require('linknx.php');

      /* EIB Werte mit LinKNX auslsen */
      $ga1 getEibValue("value1");
      $ga2 getEibValue("value2");
      $ga3 getEibValue("value3");
      $ga4 getEibValue("value4");
      /* ...u.s.w. */
      echo "Auslesen der EIB Werte erfolgreich\n";

      /* Verbindung zu mySQL aufbauen, auswählen einer Datenbank */
      $link mysql_connect("localhost""user""passwort")
          or die(
      "Keine Verbindung möglich: " mysql_error() . "\n");
      echo 
      "Verbindung zum Datenbankserver erfolgreich\n";
      mysql_select_db("eib") or die("Auswahl der Datenbank fehlgeschlagen\n");

      /* aufbau der SQL Anfrage */
      $query "INSERT INTO eib (ga1, ga2, ga3, ga4) values ";
      $query $query "('$ga1', '$ga2', '$ga3', '$ga4')";

      /* ausführen der SQL Anfrage */
      $result mysql_query($query) or die("Anfrage:\n\n$query\n\nfehlgeschlagen: " mysql_error() . "\n");
      echo 
      "EIB Werte in Datenbank geschrieben\n";

      /* schliessen der mySQL Verbinung */
      mysql_close($link);
      echo 
      "Verbindung zum Datenbankserver abgebaut\n";
      ?>
      die linknx.php dazu:

      PHP-Code:
      <?php
      # ------------------------------------------------
      # Datei: linknx.php
      # ------------------------------------------------
      # Beschreibung:
      # Stellt zentrale Funktionen zur Verfuegung:
      # - knxread()
      # - knxwrite()
      # - getEibValue()
      # - openEib()
      # - closeEib()
      # ------------------------------------------------
      # Autor: Christian Haeussler
      # geändert am: 17.01.2008
      # ------------------------------------------------


      function knxread($fp$id) {
          
      $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;
      }

      function 
      knxwrite($fp$id$value) {
          
      $in "<write><object id='$id' value='$value'/></write>\n\4";

          
      fwrite($fp$in);

          
      $ret '';
          
      $cnt 0;
          while (
      $cnt && $fp && !feof($fp)) {
              
      $ret .= fgets($fp128);
              
      $c fgetc($fp);
              if (
      $c == "\4") {
                  if (
      ereg ("<write status='success'"$ret))
                    return 
      1;
                  break;
              }
              
      $ret .= $c;
              
      $cnt++;
          }
          return 
      0;
      }

      function 
      getEibValue($id) {
        
      $fp openEib();
        
      $value knxread($fp$id);
        
      closeEib($fp);
        return 
      $value;
      }

      function 
      setEibValue($id$value) {
        
      $fp openEib();
        
      $status knxwrite($fp$id$value);
        
      closeEib($fp);
        return 
      $status;
      }

      function 
      openEib() {
          
      $address "IP des linKNX Gateways";
          
      $port "Port des linKNX Gateways";

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

          if (!
      $fp) {
              echo 
      "$errstr ($errno)<br />\n";
          }
          return 
      $fp;
      }

      function 
      closeEib($fp) {
          
      fclose($fp);
      }

      ?>
      So, das war´s!
      Danke

      Gruß
      Christian

      Mein EIB-Projekte:
      EIB-Interface -> Siemens N148/21 IP-Schnittstelle
      EIBD -> FritzBox 7170 WLAN Router
      linKNX -> Synology DS101j NAS
      Visu -> eigene PHP-Seiten

      Kommentar


        #48
        Zitat von cni Beitrag anzeigen
        Ja, ist doch ganz einfach, Du richtest einen cron-Job ein, ungefähr so:

        Code:
        10  *  *  *  *        root        wget http://server/update.php  --delete-after
        und die update.php sieht dann z.B. so aus:
        Hallo,

        Normalerweise ist es auch möglich PHP ohne webserver und wget zu benutzen.

        Code:
        10  *  *  *  *        root        /usr/bin/php /your/script/folder/update.php
        MfG,

        Jean-François

        Kommentar


          #49
          Zitat von jef2000 Beitrag anzeigen
          Normalerweise ist es auch möglich PHP ohne webserver und wget zu benutzen.
          Code:
          10  *  *  *  *        root        /usr/bin/php /your/script/folder/update.php
          Und um nicht das System-Log in unermessliche Größen anschwellen zu lassen, leitet man am besten die Ausgabe ins Nirwana um (nachdem man gecheckt hat, dass alles läuft wie es soll):
          Code:
          10  *  *  *  *        root        /usr/bin/php /your/script/folder/update.php > /dev/null 2>&1
          oder um zumindest die Fehlermeldungen im Log zu lassen aber den Rest zu löschen reicht das einfache
          Code:
           10  *  *  *  *        root        /usr/bin/php /your/script/folder/update.php > /dev/null
          TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

          Kommentar


            #50
            eibd mit USB-KNX-Interface an Fritzbox

            Hallo.

            Hat denn schon jemand eibd auf der Fitzbox mit angeschlossenem USB-KNX-Interface am Laufen? Die in Post #23 angehangte kompilierte eibd Version hat bei mir nicht funtktioniert. Ist da evtl. die USB Konnektivitat nicht einkompiliert?
            Bin für jeden Rat sehr dankbar!!!

            Kommentar


              #51
              Richtig, "--enable-usb" hatte ich nicht verwendet, da ich darin erstmal keinen Sinn sah...

              Unten habe ich nun eine Version angehängt, bei der ich configure mit diesen Parametern aufgerufen habe:
              Code:
              ./configure --prefix=`pwd` --host=mipsel-linux-uclibc  --without-pth-test --enable-usb --enable-onlyeibd --enable-eibnetip--enable-eibnetiptunnel --enable-eibnetipserver --enable-groupcache CPPFLAGS="-I/home/cm/devel/argp-standalone-1.3/ -Os -fmerge-constants" LDFLAGS="-L/home/cm/devel/argp-standalone-1.3/FritzBoxFiles -L/home/cm/devel/pthsem-2.0.7/.libs"
              Ob das jetzt läuft oder noch irgendwelche Treiber o.ä. benötigt ist mir nicht klar, den Punkt in der Doku habe ich mir mangels Interesse nie durchgelesen...
              Angehängte Dateien
              TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

              Kommentar


                #52
                ist das schon die "neue" Version 0.0.4?
                EPIX
                ...und möge der Saft mit euch sein...
                Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                Kommentar


                  #53
                  Ja, alles Dateien die ich hier geposted habe sind von Version 0.0.4
                  TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                  Kommentar


                    #54
                    Vielen Dank Chris!
                    Der Aufruf von eibd mit eibd -t1023 -u usb:1:5:1:0 führt jetzt zu der Fehlermeldung
                    ./eibd: can't load library 'libpthsem.so.20'

                    Hat jemand eine Ahnung, woran das liegt bzw. wie ich diese Fehlermeldung beheben kann?

                    Gruß
                    Sascha

                    Kommentar


                      #55
                      Ah, ich hatte vergessen die Bibliotheken statisch einzubinden. Jetzt mit
                      Code:
                      ./configure --prefix=`pwd` --host=mipsel-linux-uclibc  --without-pth-test --enable-usb --enable-onlyeibd --enable-eibnetip --enable-eibnetiptunnel --enable-eibnetipserver --enable-groupcache CPPFLAGS="-I/home/cm/devel/argp-standalone-1.3/ -Os -fmerge-constants" LDFLAGS="-L/home/cm/devel/argp-standalone-1.3/FritzBoxFiles -L/home/cm/devel/pthsem-2.0.7/.libs -static"
                      sollte es hoffentlich klappen
                      Angehängte Dateien
                      TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                      Kommentar


                        #56
                        Und nochmals vielen Dank an Chris!!!
                        Jetzt start eibd. Allerdings kommt unaufhörlich die folgende Fehlermeldung:

                        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                        Layer 0(004C6880,49A85C5F) StartSend
                        Layer 0(004C6880,49A85C5F) SendError -145
                        Layer 0(004C6880,49A85C5F) Send(064): 01 13 09 00 08 00 01 0F 01 00 00 01 00 00
                        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                        ....

                        Hast Du eventuell auch ne Ahnung, warum dieser Fehler kommt?

                        Viele Grüße und Dank im Voraus
                        Sascha

                        Kommentar


                          #57
                          Zitat von saschenka Beitrag anzeigen
                          Jetzt start eibd. Allerdings kommt unaufhörlich die folgende Fehlermeldung:
                          [...]
                          Hast Du eventuell auch ne Ahnung, warum dieser Fehler kommt?
                          Nö, keine Ahnung. Hat evtl. was damit zu tun, dass Du über USB gehen willst.

                          Musst Du halt mal auf der Mailingliste für den eibd (bzw. der bcusdk-Mailingliste) nachfragen.
                          TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                          Kommentar


                            #58
                            Zitat von saschenka Beitrag anzeigen
                            Und nochmals vielen Dank an Chris!!!
                            Jetzt start eibd. Allerdings kommt unaufhörlich die folgende Fehlermeldung:

                            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                            Layer 0(004C6880,49A85C5F) StartSend
                            Layer 0(004C6880,49A85C5F) SendError -145
                            Layer 0(004C6880,49A85C5F) Send(064): 01 13 09 00 08 00 01 0F 01 00 00 01 00 00
                            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                            ....

                            Hast Du eventuell auch ne Ahnung, warum dieser Fehler kommt?

                            Viele Grüße und Dank im Voraus
                            Sascha
                            Stimmen die Zugriffrechte, dh. wenn man findknxusb unter dem selben User startet, kann es den Namen des Gerätes anzeigen oder nur unreadable?

                            Kommentar


                              #59
                              Mit findknxusb bekomme ich mein USB/KNX Interface angezeigt:
                              # ./findknxusb
                              Possible addresses for KNX USB devices:
                              device 1:9:1:0 (Siemens AG:KNX/EIB-USB Interface (Flush mounted))

                              Von daher siehts eigentlich ganz gut aus. Einzig beim Hinweis auf Flush mounted bin ich mir nicht sicher.
                              Nebenbei erwähnt verwende ich die originale firmware der fritzbox mit eibd - falls das evtl ein Problem darstellt weil dadurch irgendwelche Sachen fehlen?

                              Gruß
                              Sascha

                              Kommentar


                                #60
                                Zitat von saschenka Beitrag anzeigen
                                Nebenbei erwähnt verwende ich die originale firmware der fritzbox mit eibd - falls das evtl ein Problem darstellt weil dadurch irgendwelche Sachen fehlen?
                                Ich hab's so kompiliert (nämlich statisch gelinkt), dass es auf einer FritzBox mit originaler Firmware laufen sollte.
                                (Bei mir will ich nämlich auch nicht von der originalen Firmware weg...)
                                TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                                Kommentar

                                Lädt...
                                X