Hallo Zusammen,
ich bin seit heute auch mit der Integration von meinem RX-S600D beschäftigt.
Ich hab einen ClientSocket und eine RegisterVariable angelegt. Zu der Registervariable hab ich ich noch ein Script gepackt das ich hier gefunden habe.
Das sieht bei mir wie folgt aus:
Das Script sieht wie folgt aus:
<?
// Yamaha Verstärker Auswertscript V 1.2 19.11.2013
// Referenz: Yamaha RX-V773
// Konfigbereich
// Input Namenszuweisung frei zuweisbar (bitte anpassen)
$HDMI1 = 'HDMI1 - Topfield'; // Freier Name für jeden INPUT
$HDMI2 = 'HDMI2 - Playstation';
$HDMI3 = 'HDMI3 - HTPC';
$HDMI4 = 'HDMI4 - Dune';
$HDMI5 = 'HDMI5 - Frei';
$av1 = 'AV-1';
$av2 = 'AV-2';
$av3 = 'AV-3';
$av4 = 'AV-4';
$av5 = 'AV-5';
$av6 = 'AV-6';
$netradio = 'Net Radio';
$frontaux = 'Front AUX';
$audio1 = 'Audio 1';
$audio2 = 'Audio 2';
$phono = 'Phono';
$tuner = 'Tuner';
$napster = 'Napster';
$airplay = 'AirPlay';
$server = 'Server';
$usb = 'Front USB';
// Variablenzuweisung (bitte anpassen)
$vol = 41370 /*[Räume\Wohnzimmer\RX-S600D\Volume]*/; // Floatvariable für Volumeanzeige
$pwr = 31422 /*[Räume\Wohnzimmer\RX-S600D\Power]*/; // Stringvariable für Poweranzeige
$input = 47768 /*[Räume\Wohnzimmer\RX-S600D\ Input]*/; // Stringvariable für Inputanzeige
$treble = 30494 /*[Räume\Wohnzimmer\RX-S600D\Treble]*/; // Floatvariable für Klangregelungsanzeige Höhen
$bass = 32525 /*[Räume\Wohnzimmer\RX-S600D\Bass]*/; // Floatvariable für Klangregelungsanzeige Bässe
$station = 57166 /*[Räume\Wohnzimmer\RX-S600D\Station]*/; // Stringvariable für Radiosender/Station
$song = 16042 /*[Räume\Wohnzimmer\RX-S600D\Song]*/; // Stringvariable für Song Titel
$soundprg = 58108 /*[Räume\Wohnzimmer\RX-S600D\Soundprg]*/; // Stringvariable für Soundprogrammanzeige
//################################################################################//
// Ab Hier nichts mehr ändern //
//################################################################################//
$antwort = $_IPS['VALUE'];
$array = explode ( ':', $antwort ); // Antwortstring in Array umwandeln
$array2 = explode ( '=', $array[1] ); // Antwortstring in Array umwandeln
$funktion = $array2[0];
If($array[0] == "@MAIN")
{
switch($funktion)
{
case "VOL":
SetValue($vol, $array2[1]." dB");
break;
case "PWR":
SetValue($pwr, $array2[1]);
break;
case "INP":
If ($array2[1] == "HDMI1".chr(13).chr(10))
{
SetValue($input, $HDMI1);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "HDMI2".chr(13).chr(10))
{
SetValue($input, $HDMI2);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "HDMI3".chr(13).chr(10))
{
SetValue($input, $HDMI3);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "HDMI4".chr(13).chr(10))
{
SetValue($input, $HDMI4);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "HDMI5".chr(13).chr(10))
{
SetValue($input, $HDMI5);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "AV1".chr(13).chr(10))
{
SetValue($input, $av1);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "AV2".chr(13).chr(10))
{
SetValue($input, $av2);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "AV3".chr(13).chr(10))
{
SetValue($input, $av3);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "AV4".chr(13).chr(10))
{
SetValue($input, $av4);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "AV5".chr(13).chr(10))
{
SetValue($input, $av5);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "AV6".chr(13).chr(10))
{
SetValue($input, $av6);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "NET RADIO".chr(13).chr(10))
{
SetValue($input, $netradio);
}
elseif ($array2[1] == "V-AUX".chr(13).chr(10))
{
SetValue($input, $frontaux);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "AUDIO1".chr(13).chr(10))
{
SetValue($input, $audio1);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "AUDIO2".chr(13).chr(10))
{
SetValue($input, $audio2);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "PHONO".chr(13).chr(10))
{
SetValue($input, $phono);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "TUNER".chr(13).chr(10))
{
SetValue($input, $tuner);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "Napster".chr(13).chr(10))
{
SetValue($input, $napster);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "AirPlay".chr(13).chr(10))
{
SetValue($input, $airplay);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "SERVER".chr(13).chr(10))
{
SetValue($input, $server);
SetValue($song, "");
SetValue($station, "");
}
elseif ($array2[1] == "USB".chr(13).chr(10))
{
SetValue($input, $usb);
SetValue($song, "");
SetValue($station, "");
}
else
{
SetValue($input, $array2[1]);
SetValue($song, "");
SetValue($station, "");
}
break;
case "TONETREBLE":
SetValue($treble, (float)$array2[1]);
break;
case "TONEBASS":
SetValue($bass, (float)$array2[1]);
break;
case "SOUNDPRG":
SetValue($soundprg, $array2[1]);
break;
}
}
If($array[0] == "@NETRADIO")
{
switch($funktion)
{
case "SONG":
SetValue($song, $array2[1]);
break;
case "STATION":
SetValue($station, $array2[1]);
break;
}
}
?>
So weit so gut… in der Registervariable kommen auch daten vom dem AVR an das hab ich über den Debug kontrolliert.
Was mir noch nicht klar ist… wie wird das Auswertescript getriggert?? Geht das automatisch weil ich es in der Registervariable hinterlegt hab oder muss ich einen Timer hinzufügen?
Wenn ich das Script manuell ausführe bekomme ich folgenden fehler ausgegeben:
Notice: Undefined index: VALUE in C:\IP-Symcon\scripts\12595.ips.php on line 54
Notice: Undefined offset: 1 in C:\IP-Symcon\scripts\12595.ips.php on line 58
Bin etwas ratlos was ich weiter tun kann :(
Vielen Dank schon mal für eure Hilfe!