so alles nochmal neu aber kein erfolg.
dies ist die Fehlermeldung.
Parse error: syntax error, unexpected ‚=‘ in C:\IP-Symcon\scripts\37803.ips.php on line 9
Hier der Code eingefügt mir firefox
<?
// Erzeugt von INSTALL_SCRIPT
// ########### INCLUDE-START ###########
include(IPS_GetScriptFile(22100 /*[Geräte\pioneer vsx922\Pioneer VSX-922\Pioneer VSX-922_Const]*/));
include(IPS_GetScriptFile(27451 /*[Geräte\pioneer vsx922\Pioneer VSX-922\Pioneer VSX-922_Vars]*/));
// ########### INCLUDE-ENDE ###########
// ########### AB HIER HAUPT-SKRIPT EINFÜGEN ###########
INET_RADIO_HIDDEN=true;
// aufruf per register variable, script oder webfront?
if($IPS_SENDER == "RegisterVariable") {
// daten aus dem cutter aufruf registervariable
$data=$IPS_VALUE;
// echo $data ;
// lange zeile? dann war es die display anzeige
if (strlen($data) ==32 )
{
// display
$display = hex2str($data);
//echo $display;
// display variable updaten
SetValueString(ID_DISPLAY, $display);
// solange daten kommen ist das gerät an. aber dann jedesmal die power variable updaten und prüfen ist zu langsam
}
else
{
// befehl bzw. antwort parsen
// funktionen gibt es mit drei und zwei zeichen
$lv_fkt1 = substr($data,0,1); // funktion ersten 1 zeichen
$lv_val1 = substr($data,1,3); // value die letzten zeichen
$lv_fkt2 = substr($data,0,2); // funktion ersten 2 zeichen
$lv_val2 = substr($data,2,4); // value die letzten zeichen
$lv_fkt3 = substr($data,0,3); // funktion ersten 3 zeichen
$lv_val3 = substr($data,3,3); // value die letzten zeichen
// Fehlermeldungen
/*
E02<CR+LF> NOT AVAILABLE NOW
E03<CR+LF> INVALID COMMAND
E04<CR+LF> COMMAND ERROR
E06<CR+LF> PARAMETER ERROR
B00<CR+LF> BUSY
*/
if ($lv_fkt1=="E" or $lv_fkt1=="B")
{
if ($lv_val1=="00") {SetValue(ID_DISPLAY, "BUSY");}
if ($lv_val1=="02") {SetValue(ID_DISPLAY, "NOT AVAILABLE NOW");}
if ($lv_val1=="03") {SetValue(ID_DISPLAY, "INVALID COMMAND");}
if ($lv_val1=="04") {SetValue(ID_DISPLAY, "COMMAND ERROR");}
if ($lv_val1=="06") {SetValue(ID_DISPLAY, "PARAMETER ERROR");}
}
// Status AVR EIN-Standby-AUS
if ($lv_fkt3=="PWR")
{
if ($lv_val3==0)
{
echo $NAME_DEVICE." ist EIN";
// gerät eingeschaltet, aber variable nicht erneut setzen wenn schon on
if (GetValue(ID_POWER)==false)
{
echo "Now ON";
SetValue(ID_POWER,true);
// prüfkommando nur beim einschalten absenden
// regelmäßige prüfung nicht notwendig da bei fernbedienungsaktionen die anworten empfangen werden
$ret = sendCommand("?V"); // welche lautstärke
$ret = sendCommand("?M"); // mute
$ret = sendCommand("?F"); // funktion
$ret = sendCommand("?L"); // listening mode
$ret = sendCommand("?PKL"); // keylock
avOn(); // variablen, schalter einblenden
}
}
if ($lv_val3==1)
{
echo $NAME_DEVICE." ist Standby";
// gerät ausgeschaltet, aber variable nicht erneut setzen wenn schon off
if (GetValue(ID_POWER)==true)
{
SetValue(ID_POWER,false);
avOff(); // variablen, schalter ausblenden
}
}
}
// lautstärke
if ($lv_fkt3=="VOL")
{
// umrechnung des wertes in dB quelle: pioneer javascript
// echo (($lv_val3-161)*0.5)."dB";
// verstärker anzeige in dB. Rückgabe aber als Integer einfach als Prozent übernehmen
// nur bei veränderung aktualisieren
SetValue(ID_VOL_DB,(($lv_val3-161)*0.5)."dB"); //dB-Wert anzeigen
if (GetValue(ID_VOL) != $lv_val3)
{
SetValue(ID_VOL,$lv_val3);
}
}
// mute
if ($lv_fkt3=="MUT")
{
// mute ändern nur wenn die variable nicht aktuell ist
if($lv_val3=="1" && GetValue(ID_MUTE)==true)
{
SetValue(ID_MUTE,false); // mute off
}
if($lv_val3=="0" && GetValue(ID_MUTE)==false)
{
SetValue(ID_MUTE,true); // mute on
}
}
// funktion (eingänge)
if ($lv_fkt2=="FN")
#var_dump($lv_fkt2);
{
// funktion ändern nur wenn die variable nicht aktuell ist
if (GetValue(ID_FUNCTION) != $lv_val2)
{
// liste der gültigen funktionen
if ($lv_val2==38 || $lv_val2==26 || $lv_val2==19 || $lv_val2==17 || $lv_val2==20 || $lv_val2==4 || $lv_val2==2)
{
SetValue(ID_FUNCTION,$lv_val2); // funktion setzen
}
else
{
echo "integer".(integer)$lv_val2;
SetValue(ID_FUNCTION,0); // funktion =0 also diverses für die keine schaltfläche hinterlegt sind. bzw nicht gebraucht werden.
}
}
// wenn internet radio und die optionen noch nicht eingeblendet dann einblenden.
if (($lv_val2==26 || $lv_val2==38)&& $INET_RADIO_HIDDEN==true)
{
// inet radion steuerung einblenden. methode führt refresh automstisch aus
InetRadioOn();
}
else
{
// inet radion steuerung einblenden. methode führt refresh automstisch aus
InetRadioOff();
}
}
// listening mode
if ($lv_fkt2=="LM")
{
echo "Listening Mode".$lv_val2;
SetValue(ID_LISTENING_MODE,$listening[$lv_val2]); //
}
// key lock
if ($lv_fkt3=="PKL")
{
//echo "Key Lock".$lv_val3;
SetValue(ID_KEYLOCK,$lv_val3); //
}
// request input name
if ($lv_fkt3=="RGB")
{
echo "request input name".$lv_val3;
//SetValue(ID_KEYLOCK,$lv_val3); //
}
}
}
if($IPS_SENDER == "WebFront") {
// aktion per webfront
// TODO: anpassen auf das installscript
// internetradio buttons
if ($IPS_VARIABLE==ID_INET_RADIO)
{
//echo "test ".$IPS_VALUE;
SetValue(ID_INET_RADIO,$IPS_VALUE); //
// letzten Status merken ob play oder stop
if ($IPS_VALUE<=1)
SetValue(ID_INET_RADIO_BUTTONS,$IPS_VALUE); //
if ($IPS_VALUE == 0)
{
$ret = sendCommand("20NW");
}
if ($IPS_VALUE == 1)
$ret = sendCommand("10NW");
if ($IPS_VALUE == 2)
$ret = sendCommand("12NW");
if ($IPS_VALUE == 3)
$ret = sendCommand("13NW");
if ($IPS_VALUE == 4)
$ret = sendCommand("18NW");
// da die buttons nicht dauerhaft aktiv sein können, wird einfach der wert -1 gesetzt, so
// ist keiner aktiv, aber nur bei aktionen >1
if ($IPS_VALUE>1)
SetValue(ID_INET_RADIO, GetValue(ID_INET_RADIO_BUTTONS)); //
}
/* MR
// power schalter
if ($IPS_VARIABLE==ID_POWER)
{
// je nach zustand ausschalten. einschalten geht nicht über lan!
if ($IPS_VALUE == true)
{
// wenn der pioneer eingeschaltet ist und dann vom netz getrennt wird und danach wieder strom bekommt
// behält er den letzten zustand. fazit: schaltbare steckdose
// nachteil: dann ggf. einschalten über die fernbedienung nicht mehr möglich
//
// wenn auf true gewechelt, dann kein wechsel vornehmen da einschalten nicht möglich
//SetValue($ID_POWER, false);
//socket aktualisieren da unter umständen keine verbinung zustande kommt
IPS_ApplyChanges(ID_SOCKET);
}
else
{
$ret = sendCommand("PF"); /// ausschaltbefehl
SetValue(ID_POWER, $IPS_VALUE); // varaible für power off setzen
avOff(); // variablen + schalter ausblenden
}
}
MR */
if ($IPS_VARIABLE==ID_POWER)
{
// je nach zustand ausschalten. einschalten geht - wenn vom receiver erlaubt - auch über lan!
if ($IPS_VALUE == true)
{
$ret = sendCommand("PO"); // einschaltbefehl
SetValue(ID_POWER, $IPS_VALUE); // varaible für power on setzen
avOn(); // variablen + schalter einblenden
}
else
{
$ret = sendCommand("PF"); // ausschaltbefehl
SetValue(ID_POWER, $IPS_VALUE); // varaible für power off setzen
SetValue(ID_DISPLAY, ""); // bei aus das diplay löschen
avOff(); // variablen + schalter ausblenden
}
}
// display schalter zur statusabfrage
if ($IPS_VARIABLE==ID_DISPLAY)
{
$ret = sendCommand("STS"); // Display Status abfrage, ergebnis wird nach und nach angezeigt
}
// display change zur Umschaltung statusanzeige
if ($IPS_VARIABLE==ID_DISPLAY_CHANGE)
{
$ret = sendCommand("18NW"); // Display Anzeige umschalten
}
// mute schalter
if ($IPS_VARIABLE==ID_MUTE)
{
// je nach zustand ausschalten. einschalten geht nicht über lan!
if ($IPS_VALUE == true)
{
$ret = sendCommand("MO"); // mute on
SetValue(ID_MUTE, $IPS_VALUE);
}
else
{
$ret = sendCommand("MF"); // mute off
SetValue(ID_MUTE, $IPS_VALUE);
}
}
// lautstärke schalter
if ($IPS_VARIABLE==ID_VOL)
{
//echo $IPS_VALUE."VL";
if (GetValue(ID_VOL) != $IPS_VALUE )
{
// Werte von 0 bis 161(voll aufgedreht)
// so muss auch das profil der volumen variablen angelegt sein.
#MR $ret = sendCommand($IPS_VALUE."VL"); // vol direkt setzen
#MR SetValue(ID_VOL, $IPS_VALUE);
$ret = sendCommand(str_pad($IPS_VALUE, 3, "0", STR_PAD_LEFT)."VL"); // vol direkt setzen
SetValue(ID_VOL, $IPS_VALUE);
}
}
// funktions schalter
if ($IPS_VARIABLE==ID_FUNCTION)
{
//echo $IPS_VALUE."FN";
if (GetValue(ID_FUNCTION) != $IPS_VALUE )
{
// einstelige zahlen mit 0 voranstellen
$tmp_val = substr("0".$IPS_VALUE,-2);
$ret = sendCommand($tmp_val."FN"); // Funktion direkt setzen
// bei internetradio ein und ausblenden
if ($IPS_VALUE==26 || $IPS_VALUE==38)
{
InetRadioOn();
}
if (GetValue(ID_FUNCTION)==26|| $IPS_VALUE==38)
{
InetRadioOff();
}
SetValue(ID_FUNCTION, $tmp_val);
}
}
// listening mode schalter
if ($IPS_VARIABLE==ID_CHANGE_LISTENING_MODE)
{
if ($IPS_VALUE=="1") {$ret = sendCommand("0005SR");} // AUTO SURR/STREAM DIRECT (cyclic)
else if ($IPS_VALUE=="2") {$ret = sendCommand("0010SR");} // STANDARD (cyclic)
else if ($IPS_VALUE=="3") {$ret = sendCommand("0100SR");} // ADVANCED SURROUND (cyclic)
// einstelige zahlen mit 0 voranstellen
//$tmp_val = substr("0".$IPS_VALUE,-2);
//$ret = sendCommand($tmp_val."FN"); // Funktion direkt setzen
SetValue(ID_CHANGE_LISTENING_MODE, $IPS_VALUE);
SetValue(ID_CHANGE_LISTENING_MODE_EXT, 0);
}
// extendet listening mode schalter
if ($IPS_VARIABLE==ID_CHANGE_LISTENING_MODE_EXT)
{
if ($IPS_VALUE=="1") {$ret = sendCommand("0009SR");} // STEREO (direct set)
else if ($IPS_VALUE=="2") {$ret = sendCommand("0112SR");} // EXTENDED STEREO
else if ($IPS_VALUE=="3") {$ret = sendCommand("0012SR");} // DOLBY PROLOGIC
else if ($IPS_VALUE=="4") {$ret = sendCommand("0014SR");} // DOLBY PLII MUSIC
else if ($IPS_VALUE=="5") {$ret = sendCommand("0151SR");} // Auto Level Control (A.L.C.)
// einstelige zahlen mit 0 voranstellen
//$tmp_val = substr("0".$IPS_VALUE,-2);
//$ret = sendCommand($tmp_val."FN"); // Funktion direkt setzen
SetValue(ID_CHANGE_LISTENING_MODE_EXT, $IPS_VALUE);
SetValue(ID_CHANGE_LISTENING_MODE, 0);
}
// key lock schalter
if ($IPS_VARIABLE==ID_KEYLOCK)
{
setValue(ID_KEYLOCK,$IPS_VALUE);
$ret = sendCommand($IPS_VALUE."PKL"); // key lock setzen
}
}
// zeitliche events abfragen
if($IPS_SENDER == "TimerEvent") {
// aktion per timer (hearth beat script)
// Socket prüfung funktioniert nicht. daher die ping variante
// hearthbeat für power on
$ret = sendCommand("?P"); // Prüfung ob AVR EIN/AUS/Standby
#MR if (Sys_Ping($IP_DEVICE, 1000) )
/*
{
#echo "PWR0 (EIN)";
// gerät eingeschaltet, aber variable nicht erneut setzen wenn schon on
if (GetValue(ID_POWER)==false)
{
echo "Now ON";
SetValue(ID_POWER,true);
// prüfkommando nur beim einschalten absenden
// regelmäßige prüfung nicht notwendig da bei fernbedienungsaktionen die anworten empfangen werden
$ret = sendCommand("?V"); // welche lautstärke
$ret = sendCommand("?M"); // mute
$ret = sendCommand("?F"); // funktion
$ret = sendCommand("?L"); // listening mode
$ret = sendCommand("?PKL"); // keylock
avOn(); // variablen, schalter einblenden
}
}
if ($ret=="PWR1") //PWR0=EIN, PRW1=Standby
{
// gerät ausgeschaltet, aber variable nicht erneut setzen wenn schon off
if (GetValue(ID_POWER)==true)
{
SetValue(ID_POWER,false);
avOff(); // variablen, schalter ausblenden
}
}
*/
}
// funktion um die hexzeile vom reciever in ascii zu decodieren
function hex2str($hex)
{
// die ersten zeichen gehören zur funktionsart
$hex = substr($hex,4,strlen($hex) - 4);
//echo $hex;
// TODO: for schleife ist eigentlich zu langsam, gibt es was besseres?
$str="";
for($i=0;$i<strlen($hex);$i+=2)
{
$str.=chr(hexdec(substr($hex,$i,2)));
}
return $str;
}
function sendCommand($com)
{
$feedback= CSCK_SendText(ID_SOCKET, $com.chr(13));
return $feedback;
}
// av reciver on - also bedienelemente sichtbar machen
function avOn()
{
// power wurde nicht ausgeblendet
IPS_SetHidden(ID_MUTE, false);
IPS_SetHidden(ID_VOL, false);
IPS_SetHidden(ID_FUNCTION, false);
IPS_SetHidden(ID_LISTENING_MODE, false);
IPS_SetHidden(ID_CHANGE_LISTENING_MODE_EXT, false);
IPS_SetHidden(ID_DISPLAY, false);
IPS_SetHidden(ID_CHANGE_LISTENING_MODE, false);
IPS_SetHidden(ID_KEYLOCK, false);
IPS_SetHidden(ID_DISPLAY_CHANGE, false);
IPS_SetHidden(ID_VOL_DB, false);
// beim einschalten ist ggf. noch der modus internetradio aktiv gewesen. dann aktivieren damit danach das ausblenden funktioniert
if (GetValue(ID_FUNCTION) == 26 || GetValue(ID_FUNCTION) == 38)
{
// inet radion steuerung einblenden. methode führt refresh automstisch aus
InetRadioOn();
}
}
// av reciver off - also bedienelemente ausblenden, dadurch kein exception handling im script
function avOff()
{
// power bleibt immer sichtbar damit bleibt es beim zusammenklappen im webfront (oder falls mal einschalten geht)
// das diplay löschen damit im ausgeschalteten zustand nicht ein alter text stehen bleibt.
SetValue(ID_DISPLAY, " "); // bei aus das diplay löschen
// andere elemente ausblenden
IPS_SetHidden(ID_MUTE, true);
IPS_SetHidden(ID_VOL, true);
IPS_SetHidden(ID_FUNCTION, true);
IPS_SetHidden(ID_LISTENING_MODE, true);
IPS_SetHidden(ID_DISPLAY, true);
IPS_SetHidden(ID_LISTENING_MODE, true);
IPS_SetHidden(ID_CHANGE_LISTENING_MODE_EXT, true);
IPS_SetHidden(ID_CHANGE_LISTENING_MODE, true);
IPS_SetHidden(ID_KEYLOCK, true);
IPS_SetHidden(ID_DISPLAY_CHANGE, true);
IPS_SetHidden(ID_VOL_DB, true);
InetRadioOff();
}
// TODO: ins installscript übernehmen
function InetRadioOn()
{
$INET_RADIO_HIDDEN= false;
IPS_SetHidden(ID_INET_RADIO, false);
#MR IPS_SetHidden(ID_INET_STATION, false);
#MR $html = ReadStationList();
#MR setValue(ID_INET_STATION,$html);
}
function InetRadioOff()
{
$INET_RADIO_HIDDEN=true;
IPS_SetHidden(ID_INET_RADIO, true);
#MR IPS_SetHidden(ID_INET_STATION, true);
}
?>
Wäre schön wenn mir jmd helfen könnte.
Gruß
nils