One Klick

Link

Vorheriges Thema Nächstes Thema Kein Verzeichnis für dieses Thema  

x_iphone-4_one_klick

 

Mit One Klick können Sie Szenen auslösen ohne eine App öffnen zu müssen.

Mit dieser Funktion wird kurz der Webbrowser geöffnet, dieser löst die Funktion aus und wird sofort wieder geschlossen.

 

 

 

Xhome One Klick

 

 

 

Diese Funktion sollten Sie nur durch einen VPN Tunnel nutzen.

 

 

 

One Klick mit "Senden" und "Abbrechen Button"

 

 

 

siri_button

 

 

 

 

Nach dem ersten auslösen des PHP Skript muss der "PHP_Control" Benutzer im Xhome-Server frei geschalten werden.

 

 

 

Für diese Funktion wird folgendes php Skript benötigt:

 

 

<?php

// Kopieren Sie diesen Ordner nach C:/xampp/htdocs/

//   http://localhost/Siri/Befehl.php?befehl=Test&pin=56789

// Sendet Test auf den Siri Logik Baustein

// Der Pin in der URL muss mit dem eingetragenen Pin hier im Skript übereinstimmen

 

 

 

$pin = '56789';

$nur_handys = false;

$nur_desktop_pc = false;

$handy_und_pc = true;

 

error_reporting(1);

         

 

if(isset($_GET['befehl']) )

{

 $befehl = $_GET['befehl'];

}

 

else if( isset($_POST['befehl']))

{

 $befehl = $_POST['befehl'];

}

else{

 $befehl = 'Befehl';

}

 

 

if(isset($_GET['pin']) )

{

 $Kommand_pin = $_GET['pin'];

}

 

else if( isset($_POST['pin']))

{

 $Kommand_pin =        $_POST['pin'];

}

else{

 $Kommand_pin = '';

}

 

 

 

 

 

?>

<html>

<head>

 

         <meta charset="UTF-8" />

         <title>Befehl an Xhome Server</title>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

      <link rel="apple-touch-icon-precomposed" sizes="114x114" href="Logo4.png" />

         <link rel="shortcut icon" href="favicon.ico">

         

         

 <style type="text/css">

 

 

 

.button {

 width:400px;

 height:200px;

 display: inline-block;

 outline: none;

 cursor: pointer;

 text-align: center;

 text-decoration: none;

 font: 30px/100% Arial, Helvetica, sans-serif;

 padding: .5em 2em .55em;

 text-shadow: 0 1px 1px rgba(0,0,0,.3);

 -webkit-border-radius: .5em;

 -moz-border-radius: .5em;

 border-radius: .5em;

 -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);

 -moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);

 box-shadow: 0 1px 2px rgba(0,0,0,.2);

}

.button:hover {

 text-decoration: none;

}

.button:active {

 position: relative;

 top: 1px;

}

 

 

.black {

 color: #d7d7d7;

 border: solid 1px #333;

 background: #333;

 background: -webkit-gradient(linear, left top, left bottom, from(#666), to(#000));

 background: -moz-linear-gradient(top,  #666,  #000);

 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#666666', endColorstr='#000000');

}

.black:hover {

 background: #000;

 background: -webkit-gradient(linear, left top, left bottom, from(#444), to(#000));

 background: -moz-linear-gradient(top,  #444,  #000);

 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#444444', endColorstr='#000000');

}

.black:active {

 color: #666;

 background: -webkit-gradient(linear, left top, left bottom, from(#000), to(#444));

 background: -moz-linear-gradient(top,  #000,  #444);

 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#666666');

}

 

 

</style>        

         

         

</head>

<body>

 

<?php

 

$mobile = detect_mobile();

 

if( $Kommand_pin == $pin && ( $handy_und_pc === true || ($mobile === $nur_handys &&  $mobile !== $nur_desktop_pc )|| ( $mobile !== $nur_desktop_pc  &&  $mobile !== $nur_handys) ) ){

                 

         

         echo "<p> Befehl: ".$befehl."</p>";

         ?>

         <form action="" method="post">

      <input type="submit" name="submit" value="Senden" class="button black" />

      <input type="submit" name="submit" value="Abbrechen" class="button black" />

         </form>

         <?php

         

         if(isset($_POST['submit']) && $_POST['submit']=='Senden')

         {

                 send_Command($befehl);

                 

                 ?>

                 <script type="text/JavaScript">

                         //  var conf = confirm("Fenster schließen?");

 

                         //        if(conf == true){

                                 var win = window.open("","_self");

                                 win.close();

                         //}

                 </script>

                 <?php

         }

         

         if(isset($_POST['submit']) && $_POST['submit']=='Abbrechen')

         {

                 

                 ?>

                 <script type="text/JavaScript">

                         

                         

                         var conf = confirm("Fenster schließen?");

 

                         if(conf == true){

                                 var win = window.open("","_self");

                                 win.close();

                         }

                 </script>

         <?php

         

         }

         

                         

 }else{

         

         echo "Keine Berechtigung ";

         

          if($Kommand_pin != $pin){

                 echo " - falscher Pin !";

          }

 }        

 

 function detect_mobile()

 {

         if(preg_match('/(alcatel|amoi|android|avantgo|blackberry|benq|cell|cricket|docomo|elaine|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mmp|mobi|motorola|nec-|nokia|palm|panasonic|philips|phone|playbook|sagem|sharp|sie-|silk|smartphone|sony|symbian|t-mobile|telus|up\.browser|up\.link|vodafone|wap|webos|wireless|xda|xoom|zte)/i', $_SERVER['HTTP_USER_AGENT']))

                 return true;

 

         else

                 return false;

 }

 

 

 function send_Command($befehl)

 {

                         $result = 'error';

                         $service_port = 2425;

                         $address = gethostbyname('localhost');

                         

                         

                         

                         $Kommando = '<request xsi:schemaLocation="/de/xsolution/xmladapter/extern/request file:/request.xsd" xmlns:mcom="/de/xsolution/xmladapter/extern/common" xmlns="/de/xsolution/xmladapter/extern/request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><timestamp>2011-09-29T21:59:11</timestamp><command><id>0815</id><dataPoint><mcom:name>SIRI</mcom:name><mcom:type>SIRI</mcom:type></dataPoint><command>'.$befehl.'</command></command></request>';

 

                         $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

                         

                         

                         if ($socket !== false) {

                   

                                 

                                 $security = true;

 

                                 $result = socket_connect($socket, $address, $service_port);

                                 

                                 

                                 if(!$security){

                                         socket_write($socket, "no_init_verification\n", 25);

                                                 

                                         $read = array($socket);

                                         $write = array($socket);

                                                 

                                         $data = '';

                                 //        socket_recv($socket, $buf, 2, MSG_WAITALL);

                                         while(($buf=@socket_read($socket, 512))) {

                                                         

                                                 $data .= $buf;

                                                         

                                                 if ($ret = socket_select($read, $write, $except = NULL, NULL) < 2) {

                                                         break;

                                                 }

                                                         

                                         }

                                         

                                         $length=pack("n",strlen($Kommando));

                                         socket_write($socket,$length.$Kommando,strlen($Kommando)+2);

                                         

                                         while(($buf=@socket_read($socket, 512))) {

                                         

                                                 $data .= $buf;

                                         

                                                 if ($ret = socket_select($read, $write, $except = NULL, NULL) < 2) {

                                                         break;

                                                 }

                                         

                                         }

                                         

                                         

                                         socket_close($socket);

                                 }else{

                                         

                                         $read = array($socket);

                                         $write = array($socket);

                                         

                                         $message = '';

                         

                                         while(($buf=@socket_read($socket, 512))) {

                                                 $message .= $buf;

                                                 if ($ret = socket_select($read, $write, $except = NULL, NULL) < 2) {break; }

                                         }

                                         

                                         $reader = new XMLReader();

                                         $reader->xml($message);

                                         

                                         while ( $reader->read() ) {

                                                 if (  $reader->nodeType ==XMLReader::ELEMENT ) {

                                                         if($reader->name == 'res:security'){

                                                                 $Random = $reader->readString() ;

                                                         }

                                                 }

                                         }

                                         

                                         $Random_Key_Server = rand(0,100);

                                         (int) $ValueKey = substr($Random, 3, 1).substr($Random, 1, 1).substr($Random, 6, 1).substr($Random, 7, 1).substr($Random, 0, 1);

                                         $Response_Generated_Key = ((int)$ValueKey) * $Random_Key_Server;

                                         $Key = '<request xsi:schemaLocation="/de/xsolution/xmladapter/extern/request file:/request.xsd" xmlns:mcom="/de/xsolution/xmladapter/extern/common" xmlns="/de/xsolution/xmladapter/extern/request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><prefix>'.$Random_Key_Server.'</prefix><suffix>'.$Response_Generated_Key.'</suffix><user>PHP_Control</user><uuid>PHP_Control</uuid><noinit>true</noinit><getRequest_after_command>true</getRequest_after_command></request>';

                                         $length=pack("n",strlen($Key));

                                         socket_write($socket,$length.$Key,strlen($Key)+2);

                                         

                                 

                                         while(($buf=@socket_read($socket, 512))) {

                                                 $data .= $buf;

                                                 if ($ret = socket_select($read, $write, $except = NULL, NULL) < 2) { break;  }

                                         }

                                                 

                                                 

                                         $length=pack("n",strlen($Kommando));

                                         socket_write($socket,$length.$Kommando,strlen($Kommando)+2);

                                 }

                         

 

                                         socket_close($socket);        

                         }        

 }

?>

 

 

</body></html>