Ankündigung

Einklappen
Keine Ankündigung bisher.

Flic - zum Steuern von KNX

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

    Flic - zum Steuern von KNX

    Hallo
    aus gegebenem Anlass - und um andere Threads nicht zu Kapern....
    flic - ist ein "Smartbutton" der per Bluetooth LE auf einem Mobiltelefon eine "beliebige" Aktion starten kann.
    http://flic.io finded man Bilder und details. DIe "Erfinder" haben besonderen Wert auf die "Klickiness" gelegt - also ein gutes Druckgefühl.
    Man kann zwischen einfach, doppelt und longpress unterscheiden.
    Ich verwende Ihn z.B. im Auto um die Garage aufzumachen. Die Anbindung erfolgt dabei über HTTP-Interface. Ist definitiv einfacher/intuitiver als den HTTP-Aufruf per Lesezeichen/Weblclip durchzuführen.
    Kosten ca. 30$/Stück (derzeit mit "FLIC-LIFEBUDDY" als Promo-code mit 15% Rabatt)

    Gruß
    Thorsten

    #2
    Danke Thorsten, das du diesen Thread hier aufgemacht hast - du weisst ja warum. Hoffe auf ein "HowTo" mit viel Inspiration.

    LG
    Daniel

    Kommentar


      #3
      Hi Daniel,
      für dich war das eigentlich garnicht... da hat nochjemand gefragt was ein Flic ist :-)
      Okay - also howto. Eine einfache Möglichkeit ist einen websever mit PHP zur verfügung zu stellen... diesen erlaubt man per PHP ein eibd (alternativ knxd) anzusprechen.
      Jetzt kann man per http://<namedesservers>/knx.php?action=knxwrite&address=1/2/3&value=1 die entsprechende Gruppenaddresse aufrufen.
      Das kleine PHP kann auch lesen... und natürlich nur per whitelist erlaubte addressen schreiben.
      Wenn das erstmal läuft - würde ich Umstellen auf https mit zertifikatsbasierter authorisierung (per apache - anleitungen gibts hier im Forum...)

      in der "GA_allow.txt" kommt einfach pro Zeile eine erlaubte GA.

      Code:
      <?php
      
         function check_GA($address)
         {
            $file = 'GA_allow.txt';
      
            // get the file contents, assuming the file to be readable (and exist)
            $contents = file_get_contents($file);
            // escape special characters in the query
            $pattern = preg_quote($address, '/');
            // finalise the regular expression, matching the whole line
            $pattern = "/^.*$pattern.*\$/m";
            // search, and store all matching occurences in $matches
            if(preg_match_all($pattern, $contents, $matches)){
               return TRUE;
            }
            else{
               return FALSE;
            }
         }
      
         if (isset($_GET['action'])) {
            $action=filter_input(INPUT_GET, 'action', FILTER_SANITIZE_STRING);
         }
      
         if (isset($_GET['address'])) {
            $address=filter_input(INPUT_GET, 'address', FILTER_SANITIZE_STRING);
         }
      
         if (isset($_GET['value'])) {
            $value=filter_input(INPUT_GET, 'value', FILTER_SANITIZE_STRING);
         }
      
         switch($action) {
      
            case ("knxread"):
               $address = str_replace("_", "/", $address);
               $output = exec ("/usr/bin/groupreadresponse ip:eibd.mylan.lan $address");
               if (strpos($output, ":") !== false) {
                  $output = trim(substr($output, strpos($output, ":")+1));
                  echo $output;
               }
               else
                  echo "ERROR";
            break;
      
            case ("knxwrite2"):
                $address = str_replace("_", "/", $address);
                if (check_GA($address)) {
                      echo "/usr/bin/groupwrite ip:eibd.mylan.lan $address $value  ";
                      exec ("/usr/bin/groupwrite ip:eibd.mylan.lan $address $value");
                      echo "  -  done";
                      header( 'Location: http://redirectmyserver.de/opt/hsav/xstart.htm' ) ;
                }
                else {
                   echo "ERROR";
                }
      
            break;
      
            case ("knxwrite"):
                $address = str_replace("_", "/", $address);
                if (check_GA($address)) {
                      echo "/usr/bin/groupswrite ip:eibd.mylan.lan $address $value  ";
                      exec ("/usr/bin/groupswrite ip:eibd.mylan.lan $address $value");
                      echo "  -  done";
                      header( 'Location: http://redirectmyserver.de/opt/hsav/xstart.htm' ) ;
                }
                else {
                   echo "Not allowed";
                }
      
            break;
      
         }
      
      ?>
      <head>
      <meta http-equiv="refresh" content="0; URL=http://redirectmyserver/opt/hsav/xstart.htm">
      </head>
      
      </body>
      </html>
      Das ganze ist ein "Quickhack" - und so per definition noch nicht sicher... aber es funlktioniert :-)
      Nach dem aufrufen der Seite erfolgt wahlweise ein "redirect" zur Visu - das kann man aber auch einfach löschen (ist für flic nicht notwendig/sinnvoll).
      Der Code ist übrigens nicht von mir - sondern von einem Freund.

      Gruß
      Thorsten

      Kommentar


        #4
        Aber ohne Handy (und dan WLAN) geht da nix, oder??
        Begeisterter TVHeadend-Nutzer.

        Kommentar


          #5
          Handy: ja (aber das hat man doch immer dabei, oder?)
          WLAN: nicht nötig (sofern Du den Webserver aus dem Internet erreichbar hast und eine Handy-Datenflatrate)

          Kommentar


            #6
            Eigentlich recht interessant.

            Vermutlich muss die auszulösende Aktion nur innerhalb jedes Handys eingestellt werden.
            Oder steckt die Konfiguration tatsächlich im Button?

            Kommentar


              #7
              Ich finde es auch super. Jedoch mit 25 EUR noch recht teuer. Vielleicht lässt sich ja was mit einer Sammelbestellung machen?

              Kommentar


                #8
                Es soll auch ein SDK für Linux geben der RP3 hat ja schon Blauzahn.

                Kommentar


                  #9
                  Zitat von ThorstenGehrig Beitrag anzeigen
                  Kosten ca. 30$/Stück (derzeit mit "FLIC-LIFEBUDDY" als Promo-code mit 15% Rabatt)
                  Hallo Thorsten,

                  wo kann man die Buttons mit Promo-Code beziehen?

                  Grüße
                  Peter

                  Kommentar


                    #10
                    auf der homepage....die er im ersten beitrag verlinkt hat.

                    Kommentar

                    Lädt...
                    X