Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
 

In den "Einstellungen IP-Symcon": Akku-Variable setzen mit dem Wert von IP-Symcon (siehe weiter unten)

In den "Einstellungen Server": SocketServer muss gestartet (eingeschaltet) sein

In IP-Symcon entsprechend die Konfiguration vornehmen:

Hier das Script bzgl. Akkuvariable lesen. "TabletAkkuWandLesen" Script Inhalt. Entsprechend Port und Adresse ersetzen.

 <?
 
/* Den Port vom Android Gerät. Default 2001. Kann in der App Haussteuerung verändert werden! */
$service_port = 2001;
 
/* Die IP-Adresse des Anroid Gerätes ermitteln. */
//$address = gethostbyname('android-6f94f5f5290b2696.home');
//oder so fix setzen bei Static IP
$address = '10.0.0.88';
 
//ab hier jetzt nichts mehr verändern!!!
 
//Befehle für Android Gerät (Akku lesen)
// Akku lese Akkustand und schreibe in IntegerVariable in IP-Symcon die in der Android App hinterlegt wurde
// WICHTIG immer mit \r\n abschließen und $in mit .= erweitern!!!
$in = ""; //nicht löschen!!!
$in .= "Akku";
$in .= "\r\n";
$version = IPS_GetKernelVersion();
if ($version < "4.00") {
 $in = mb_convert_encoding($in, "UTF-8");
}
error_reporting(E_ALL);
 
echo "<h2>TCP/IP-Verbindung</h2>\n";
 
/* Einen TCP/IP-Socket erzeugen. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket == false) {
 echo "socket_create() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error()) . "\n";
 exit;
} else {
 echo "OK.\n";
}
 
echo "Versuche, zu '$address' auf Port '$service_port' zu verbinden ...";
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 3, 'usec' => 0));
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 3, 'usec' => 0));
$result = socket_connect($socket, $address, $service_port);
if ($result == false) {
 echo "socket_connect() fehlgeschlagen.\nGrund: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
 exit;
} else {
 echo "OK.\n";
}
 
$out = '';
 
echo "HTTP request senden ...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";
 
sleep(1);
 
echo "\nSocket schließen ...";
socket_close($socket);
echo "OK.\n\n";
 
?> 
Source code

Im Webfront ein Beispiel wie die Grafik dann aussieht, wenn in IP-Symcon zu dieser Variable das Logging mit aktiviert ist: