Guten Abend,
ich habe seit dem Wochenende den IRtrans-Ethernet mit Datenbank und natürlich auch das Ziel, IR-Befehle mit IPS senden und empfangen zu können OHNE den IRTrans-Server auf einem Rechner laufen lassen zu müssen. Also Ansteuerung direkt aus IPS heraus.
Da ich IPS bisher auf V1 laufen lassen (inzwischen so Komplex, dass ich noch nicht auf V2 „umgebaut“ habe), kann ich nicht sagen, wie die Beispiele auf der 2-er Version laufen, auf der 1er tun sie es:)
Einmal eingespeicherte IR-Befehle lassen sich ja recht einfach senden:
1.) Von einem Web-Interface einfach durch einen Http-Link, also z.B:
<a href="http://192.168.1.30/send.htm?remote=tv&command=leiser&back">Leiser</a>
Wichtig ist der Parameter &back am Ende, damit ein Redirect auf die aufrufende Seite erfolgt.
Ausserdem können so auch mehrere Befehle durch Semikolon getrennt versendet werden, z.B:
<a href="http://192.168.1.30/send.htm?remote=dbox&command=3;7&back">Vox</a>
(Die 192.168.1.30 ist die LAN-Adresse meines IRTrans im Beispiel, da muss natürlich die entsprechende LAN-IP genommen werden)
- Will man nur Befehle ohne Web-Interface direkt aus IPS-Scripten senden, geht folgende Funktion:
$a = ir_sende('remote=bilderrahmen&command=home;@p800;right;ok');
function ir_sende($data) {
$host = '192.168.1.30'; // IP des Lan - IRTrans hir eintragen
$path= '/send.htm?'.$data;
$filePointer = fsockopen($host, 80, $errorNumber, $errorString, 2);
if (!$filePointer) {
return 'Fehler'.'<br/>
';
}
$requestHeader = "GET ".$path." HTTP/1.1
";
$requestHeader.= "Host: ".$host."
";
$requestHeader.= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0
";
// oder welchen Browser man auch immer vorgaukeln will ist egal
$requestHeader.= "Content-Type: application/x-www-form-urlencoded
";
$requestHeader.= "Connection: close
";
fwrite($filePointer, $requestHeader);
$responseHeader = '';
$responseContent = '';
do {
$responseHeader.= fread($filePointer, 1);
}
while (!preg_match('/\\r\
\\r\
$/', $responseHeader));
// return $responseHeader;
while (!feof($filePointer)) {
$responseContent.= fgets($filePointer, 128);
}
return chop($responseContent);
}
- Jetzt zum Empfangen:
Hilfreich ist die Beschreibung der TCP-Schnittstelle von IR-Trans gewesen:
http://www.irtrans.de/download/Docs/IRTrans%20TCP%20ASCII%20Schnittstelle_DE.pdf
In IPS 1 nun einen Client-Socket für den Port 21000 und als Remote-Host die LAN des IRTrans eingeben. Dann 2 Registervariabeln (eine zum Empfangen, eine zum Senden) einrichten und wie in der o.g. Beschreibung zunächst „ASCR“ über die TCP-Schnittstelle senden, dann kann direkt und ohne Serverprogramm mit dem IRTrans-Modul Gesendet und Empfangen werden.
Auslesen und Senden der Befehle entsprechend der in der o.g. Doku. Hoffe, dass ich am Wochenende Zeit habe, das Auswerten der Empangen IR-Codes mit ein paar Beispielen zu versehen.
Gruß Rolf