Habe was gefunden, bekomme es nur nicht zum laufen:
function send_to_host($host,$method,$path='/',$data=''){
$method = strtoupper($method);
$fp = fsockopen($host, 80) or die("Unable to open socket");
/* Header is POST /YamahaRemoteControl/ctrl HTTP/1.1
Content-Type: text/plain
Content-length: 152 (for this command)
HOST: 192.168.1.25 (where your amp is)
*/
fputs($fp, "$method $path HTTP/1.1
");
fputs($fp, "Host: $host
");
fputs($fp, "Content-type: text/plain
");
if ($method == 'POST') fputs($fp, "Content-length: " . strlen($data) . "
");
fputs($fp, "Connection: close
");
/* Body(XML) is <?xml version="1.0" encoding="UTF-8"?>
<YAMAHA_AV cmd="PUT">
<Main_Zone>
<Vol>
<Mute>On</Mute>
</Vol>
</Main_Zone>
</YAMAHA_AV>
*/
if ($method == 'POST') fputs($fp, $data);
while (!feof($fp))
$buf .= fgets($fp,128);
fclose($fp);
return $buf;
}
$command = '<?xml version="1.0" encoding="UTF-8"?>
<YAMAHA_AV cmd="PUT">
<Main_Zone>
<Vol>
<Mute>On</Mute>
</Vol>
</Main_Zone>
</YAMAHA_AV>
';
$yamip = '192.168.1.25'; //your amp
$test = send_to_host($yamip.':80/YamahaRemoteControl/ctrl','POST','/YamahaRemoteControl/ctrl',$command);
echo $test;
Fehlermeldung/Ausgabe:
Notice: Undefined variable: buf
HTTP/1.1 400 Bad Request
Server: AV_Receiver/3.1 (RX-V771)
Content-Length: 0
Connection: close
Da er aber bei „Server“ schon den richtigen Receiver findet - also den RX-V771 kann es doch nicht mehr viel sein oder?
Wenn ich statt „$buf .= fgets($fp,128);“ nur „$buf = fgets($fp,128);“ nehme, läuft er ohne Fehlermeldung durch, aber er schaltet nichts. Kommt auch keine Rückmeldung.
Ich habe aufbauend auf brownson’s IPSEntertainment bereits vor einem halben Jahr eine grundlegende Integration für neuere Yamaha Receiver, welche die Steuerung über LAN erlauben (RX-Vx067, RX-Vx071, RX-Ax010), erstellt.
Im Vergleich zu der geposteten Lösung kann man dort auch die anderen Zones ansprechen und das NetRadio steuern. Insgesamt sollte es auch relativ leicht sein weitere Befehle hinzuzufügen. Ich hab soweit nur das hinzugefügt, was ich benötigte und daher nichts wirklich released.
@Domizei385:
Ich habe einen Yamaha RX-V771 und möchte diesen gerne in IPS-Entertainment integrieren. Leider bin ich irgendwie mit PHP auf Kriegsfuss (also absoluter Anfänger). Könntest Du Deine Lösung hier online stellen, oder beschreiben wie Du wo, was, warum ge-/verändert bzw. hinzugefügt hast??? Wäre ein prima Zug von Dir.