Skript für Pioneer AVR

Hallo zusammen,

bin vor kurzem von Mediola nach Ipsymcon gewechselt. Und versuche nun mittels IPSview und Ipsymcon meine Mediola Fernbedienung nach zubasteln:-)

Sowieit funktioniert auch alles und habe den größten Teil meiner Geräte schon eingebunden dank dieses super Forums.
Allerdings scheiterte ich an meinem fast wichtigsten Gerät , meinem AV Verstärker.
Ich hatte ein Script gefunden allerdings oist dies schon sehr sehr alt und anscheinend auch nicht mehr lauffähig unter IPS4.1.
Hat irgendwer noch ein funktinierendes Script für einen Pioneer Verstärker ?
Hauptsächlich geht es mir um die Rückmeldungen des Verstärkers ,da ich die Bedienung zur Not über IR mittels Mediola Gateway realiseiren kann. Beides wäre natürlich perfekt.
Ich weiss , wenn ich mich ewtas einlese bekomme ich es bestimmt bald selber hin aber dafür fehlt mir momentan die Zeit,
alleine der graphische Aufbau meiner Fernbedienung frisst momentan meine ganze Freizeit :slight_smile:
Wenn erstmal mein Stand von Mediola auf IpSymcon funktioniert bin ich etwas entspannter und werde mich ausführlich mit PHP beschäftigen.

Oder sieht vielleicht jemand die Möglichkeit das alte Script umzuschreiben für IPS 4.1 ?
Sollte auch nicht umsonst sein :wink:
Bin für jede Hilfe sehr sehr dankbar .

MFG Dennis

Welches alte Skript nutzt Du denn und was treten da für Fehler auf?

ich habe versucht dieses Script einzubinden

Verstärker Pioneer VSX-920 per Lan steuern

Fehlermeldungen hab ich momentan leider nicht zur Hand da auf der Arbeit, kann ich aber gerne nachreichen…

Hinweis eines anderen Nutzers war schonmal das die Schreibweise der Systemvariablen sich geändert hat.

Richtig … Und wenn Du die Systemvariablen auf die neue Schreibweise anpasst, hast Du die erste Hürde schon hinter Dir.

Da fängt es ja schon an :slight_smile:
Habe gestern mal versucht auf die schnelle herauszufinden wie die alte und neue Schreibweise ist … nach ner Stunde habe ich dann aufgegeben …

Gesendet von iPhone mit Tapatalk

Und die Frage ist ja wieviel Hürden kommen danach :wink:
Werde mich definitiv in Zukunft mit PHP mehr befassen aber momentan fehlt einfach die Zeit … dachte könnte erstmal mit Hilfe der vorhanden Skripte meine mediola Fernbedienung ablösen und wenn wieder Zeit ist mich mal genauer damit auseinandersetzen …

Gesendet von iPhone mit Tapatalk

Ich kenne ja das Skript nicht aber ich würde es auf die Schnelle mal mit
$_IPS[‚SELF‘]
siehe Thread #129 probieren. Einfach im Editor alte Schreibweise gegen neue Austauschen und probieren.

Ansonsten musst Du zumindest einen Fehlermeldung zukommen lassen. Anhand dieser siehst Du selber wo der Fehler wohl ist bzw. dann kann man Dir da auch weiterhelfen.

Hab jetzt nochmal alles gelöscht und von vorne angefangen…

das Install script gibt mir folgenden Fehler raus… siehe Anhang

Gestern ging meine ich zumindest noch das, da mir das Script die beiden anderen Script "hüllen " erstellt hat und auch den Socket … seltsam… geändert habe ich bis jetzt noch nichts am Script bis auf die doppelten <? am Anfang und Ende, und meine IP des Verstärkers eingegeben…

Wahrscheinlich schon der erste total banale Fehler, aber ich bin da noch zu blöd für :wink:

In dem Skript sind schon ein paar Fehler. Probier es mal so und folge dann weiter der Anleitung im Thread.


<?

$IP_HOST="192.168.0.48"; 
/* //was für Module gibt es? 
foreach(IPS_GetModuleList() as $guid) 
{ 
    $module = IPS_GetModule($guid); 
    echo $module['ModuleName']." = ".$guid."
"; 
} 
     */ 

    $object = IPS_GetObject($IPS_SELF); 
    $parentID = $object['ParentID']; 

    // dummy instanz erstellen 
    $ID_INSTANZ= IPS_CREATEINSTANCE("{485D0419-BE97-4548-AA9C-C083EB82E61E}"); 
    IPS_SetParent($ID_INSTANZ, $parentID); 
    IPS_SETName($ID_INSTANZ,"AV Reciever"); 

    // cutter instanz erstellen 
    $ID_INSTANZ_CUTTER= IPS_CREATEINSTANCE("{AC6C6E74-C797-40B3-BA82-F135D941D1A2}"); 
    IPS_SETName($ID_INSTANZ_CUTTER,"AV_CUTTER"); 

    // registervariable instanz erstellen 
    $ID_INSTANZ_REGISTER= IPS_CREATEINSTANCE("{F3855B3C-7CD6-47CA-97AB-E66D346C037F}"); 
    IPS_SetParent($ID_INSTANZ_REGISTER, $ID_INSTANZ); 
    IPS_SETName($ID_INSTANZ_REGISTER,"AV_REGISTER"); 

    // client socket instanz erstellen 
    $ID_INSTANZ_SOCKET= IPS_CREATEINSTANCE("{3CFF0FD9-E306-41DB-9B5A-9D06D38576C3}"); 
    IPS_SETName($ID_INSTANZ_SOCKET,"AV_SOCKET"); 
    CSCK_SetHost($ID_INSTANZ_SOCKET,$IP_HOST); 
   CSCK_SetPort($ID_INSTANZ_SOCKET,8102); 

     //dummy pioneer script anlegen in das dann der inhalt einkopiert werden muss 
    $ID_PIONEER_SCRIPT= CreateScriptByName("PioneerAVR", $ID_INSTANZ, "<?\r\r?>", false); 
     //dummy pioneer script für konstanten anlegen in das dann der inhalt einkopiert werden muss 
    $ID_PIONEER_SCRIPT_CONF= CreateScriptByName("PioneerAVR_Const", $ID_INSTANZ, "<?\r\r?>", true); 

    // timer der das script zykisch aufruft für power in abfrage 
    $ID_EVENT = IPS_CreateEvent (1); 
    IPS_SetEventCyclic($ID_EVENT, 2, 1, 0, 0, 2, 1);   //Jeden Tag jede Minute 
    IPS_SetParent($ID_EVENT, $ID_PIONEER_SCRIPT); 
    IPS_SetEventActive($ID_EVENT, true);  // Aktivert Ereignis 
     
    // cutter,socket und register einrichten 
    IPS_ConnectInstance($ID_INSTANZ_REGISTER, $ID_INSTANZ_CUTTER); 
    RegVar_SetRXObjectID($ID_INSTANZ_REGISTER, $ID_PIONEER_SCRIPT); 
    Cutter_SetParseType($ID_INSTANZ_CUTTER, 0); 
    Cutter_SetRightCutChar($ID_INSTANZ_CUTTER, "
"); 
    IPS_ConnectInstance($ID_INSTANZ_CUTTER, $ID_INSTANZ_SOCKET); 
     
    IPS_ApplyChanges($ID_INSTANZ_SOCKET); 
    IPS_ApplyChanges($ID_INSTANZ_CUTTER); 
    IPS_ApplyChanges($ID_INSTANZ_REGISTER); 


    // eigene profile anlegen, dafür das vorhandene löschen
	if (IPS_VariableProfileExists("AVR_VOLUME")) 
    IPS_DeleteVariableProfile("AVR_VOLUME"); 
    IPS_CreateVariableProfile ("AVR_VOLUME", 1 ); 
    IPS_SetVariableProfileText ("AVR_VOLUME", "", "%" ); 
    IPS_SetVariableProfileValues ("AVR_VOLUME", 0, 161 , 1 ); 
    IPS_SetVariableProfileIcon("AVR_VOLUME", "Speaker"); 

    // eigene profile anlegen, dafür das vorhandene löschen 
	if (IPS_VariableProfileExists("AVR_LISTENINGMODE"))
    IPS_DeleteVariableProfile("AVR_LISTENINGMODE"); 
    IPS_CreateVariableProfile ("AVR_LISTENINGMODE", 1 ); 
	//IPS_SetVariableProfileAssociation("Temperatur", 1, "Wert 1", "Speaker", 0xFFFFFF);
   IPS_SetVariableProfileAssociation("AVR_LISTENINGMODE", 0, "Auto/ALC/Direct", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_LISTENINGMODE", 1, "Stereo", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_LISTENINGMODE", 2, "Standard", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_LISTENINGMODE", 3, "Adv. Surround", "", -1); 

    // eigene profile anlegen, dafür das vorhandene löschen 
    // TODO: anpassen falls mehr funktionen gewünscht sind. 
    IPS_DeleteVariableProfile("AVR_FUNCTION"); 
    IPS_CreateVariableProfile ("AVR_FUNCTION", 1 ); 
   IPS_SetVariableProfileAssociation("AVR_FUNCTION", 0, "DIVERES", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 2, "Tuner", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 10, "Video 1", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 17, "iPod", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 19, "HDMI 1", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 26, "Internetradio", "", -1); 
     IPS_SetVariableProfileIcon("AVR_FUNCTION", "Shutter"); 
      
    // power 
    $VarID_Power= IPS_CreateVariable(0); 
    // instanz zufügen 
    IPS_SetParent($VarID_Power, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Power, "Power"); 
    // profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Power, "~Switch"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_Power, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Power, 1); 

    // display string 
    $VarID_Display= IPS_CreateVariable(3); 
    // instanz zufügen 
    IPS_SetParent($VarID_Display, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Display, "Display"); 
    // profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Display, "~String"); 
    // kein aktion, script zuweisen 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Display, 2); 
    // icon zuweisen 
     IPS_SetIcon($VarID_Display, "Information"); 
     
    // lautstärke 
    $VarID_Vol= IPS_CreateVariable(1); 
    // instanz zufügen 
    IPS_SetParent($VarID_Vol, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Vol, "Lautstärke"); 
    // eigenes profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Vol, "AVR_VOLUME"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_Vol, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Vol, 3); 

    // mute 
    $VarID_Mute= IPS_CreateVariable(0); 
    // instanz zufügen 
    IPS_SetParent($VarID_Mute, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Mute, "Mute"); 
    // profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Mute, "~Switch"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_Mute, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Mute, 4); 

    // funktion 
    $VarID_Fkt= IPS_CreateVariable(1); 
    // instanz zufügen 
    IPS_SetParent($VarID_Fkt, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Fkt, "Funktion"); 
    // eigenes profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Fkt, "AVR_FUNCTION"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_Fkt, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Fkt, 5); 

    // active listening mode 
    $VarID_ALM= IPS_CreateVariable(3); 
    // instanz zufügen 
    IPS_SetParent($VarID_ALM, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_ALM, "Active Listening Mode"); 
    // profil nutzen 
    IPS_SetVariableCustomProfile($VarID_ALM, "~String"); 
    // kein aktion, script zuweisen 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_ALM, 6); 
    // icon zuweisen 
     IPS_SetIcon($VarID_ALM, "Distance"); 

    // listening mode 
    $VarID_LM= IPS_CreateVariable(1); 
    // instanz zufügen 
    IPS_SetParent($VarID_LM, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_LM, "Listening Mode"); 
    // eigenes profil nutzen 
    IPS_SetVariableCustomProfile($VarID_LM, "AVR_LISTENINGMODE"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_LM, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_LM, 7); 

     //ID des Webfront ermitteln 
    $ID_WebFront = @IPS_GetObjectIDByName("WebFront Configurator", 0); 

     // pioneer script für variablen anlegen in das dann der inhalt einkopiert werden muss 
    $SText="<?\r"; 
    $SText.="// statusvariablen des verstärkers\r"; 
    $SText.="define (\"ID_POWER\", ".$VarID_Power.");\r"; 
    $SText.="define (\"ID_DISPLAY\", ".$VarID_Display.");\r"; 
    $SText.="define (\"ID_MUTE\", ".$VarID_Mute.");\r"; 
    $SText.="define (\"ID_VOL\", ".$VarID_Vol.");\r"; 
    $SText.="define (\"ID_FUNCTION\", ".$VarID_Fkt.");\r"; 
    $SText.="define (\"ID_LISTENING_MODE\", ".$VarID_ALM.");\r"; 
    $SText.="define (\"ID_CHANGE_LISTENING_MODE\", ".$VarID_LM.");\r"; 
    //$SText.="// IP des Verstärkers\r"; 
    $SText.="\$IP_DEVICE=\"".$IP_HOST."\";\r"; 
    $SText.="// statusvariablen webfront und socket\r"; 
    $SText.="define (\"ID_SOCKET\", ".$ID_INSTANZ_SOCKET.");\r"; 
    $SText.="define (\"ID_WEBFRONT\", ".$ID_WebFront.");\r"; 
    $SText.="?>\r"; 

    $ID_PIONEER_SCRIPT_VARS= CreateScriptByName("PioneerAVR_Vars", $ID_INSTANZ, $SText, true); 


    // Funktion zum erstellen eines Scripts 
    // 
    // Parameter: 
    // ScriptNAME     = Name wie das Script im Objektbaum heissen soll 
    // ParentID    = Objekt ID unter der das Script untergehangen wird 
    // ScriptTEXT  = Inhalt der Scriptdatei 
    // FileFlag    = Kennzeichnung 0=Der Dateiname im script Ordner entspricht der generierten ObjektID 
    //               1=Als Dateiname wird ScriptNAME genutzt. Damit sind definierte includes möglich 
    function CreateScriptByName($ScriptNAME, $ParentID, $ScriptTEXT, $FileFlag) 

     { 
     global $IPS_SELF; 
     $ScriptID = @IPS_GetScriptIDByName($ScriptNAME, $ParentID); 
     if ($ScriptID == 0){ 
      $ScriptID = IPS_CreateScript(0); 
      IPS_SetName($ScriptID, $ScriptNAME); 
      IPS_SetParent($ScriptID, $ParentID); 
      IPS_SetInfo($ScriptID, "This script was created by: #$IPS_SELF#"); 
        if ($FileFlag==false) 
        { 
              $filename=$ScriptID; 
          } 
          else 
       { 
          $filename=$ScriptNAME; 
        } 
      $fh = fopen(IPS_GetKernelDir()."scripts\\".$filename.".ips.php", 'w') or die("can't open file"); 
      fwrite($fh, $ScriptTEXT); 
      fclose($fh); 
      $ScriptPath = $filename.".ips.php";     //Skriptdatei 

      @IPS_SetScriptFile($ScriptID, $ScriptPath); 
      @IPS_SetHidden($ScriptID, true); 
      @IPS_SetPosition($ScriptID, 98); 
     } 
    return $ScriptID; 
    } 


?>

es funktioniert das install script , läuft ohne Fehler durch und legt mir auch alles an, nur das AVR_VARS Script gibt mir noch einen Fehler raus…
Steuern sowie Rückgabewerte des Receivers bekomme ich leider noch keine …

Der Inhalt ist auch falsch der sollte vom Skript gesetzt werden. Es soll nur in PioneerAVR_Const und PioneerAVR Inhalt reinkopiert werden.

Achte beim include darauf das die Dateinamen richtig angegeben sind wenn Du diese nicht umbenannt hast dann lauten diese xxxxx.ips.php xxxxx ist die Objekt ID des Skripts.

Ansonsten nimm noch mal dies Skript und achte drauf das ganz oben auch der Webfront angegeben wird. Dieser kann so wie im Skript ursprünglich angegeben nicht gefunden werden sobald der User den Webfront umbenannt haben sollte.


<?
//ID des Webfront ermitteln 
$ID_WebFront = 33420 /*[WebFront]*/; // Id Webfront eintragen
$IP_HOST="192.168.0.48"; 
/* //was für Module gibt es? 
foreach(IPS_GetModuleList() as $guid) 
{ 
    $module = IPS_GetModule($guid); 
    echo $module['ModuleName']." = ".$guid."
"; 
} 
     */ 

    $object = IPS_GetObject($IPS_SELF); 
    $parentID = $object['ParentID']; 

    // dummy instanz erstellen 
    $ID_INSTANZ= IPS_CREATEINSTANCE("{485D0419-BE97-4548-AA9C-C083EB82E61E}"); 
    IPS_SetParent($ID_INSTANZ, $parentID); 
    IPS_SETName($ID_INSTANZ,"AV Reciever"); 

    // cutter instanz erstellen 
    $ID_INSTANZ_CUTTER= IPS_CREATEINSTANCE("{AC6C6E74-C797-40B3-BA82-F135D941D1A2}"); 
    IPS_SETName($ID_INSTANZ_CUTTER,"AV_CUTTER"); 

    // registervariable instanz erstellen 
    $ID_INSTANZ_REGISTER= IPS_CREATEINSTANCE("{F3855B3C-7CD6-47CA-97AB-E66D346C037F}"); 
    IPS_SetParent($ID_INSTANZ_REGISTER, $ID_INSTANZ); 
    IPS_SETName($ID_INSTANZ_REGISTER,"AV_REGISTER"); 

    // client socket instanz erstellen 
    $ID_INSTANZ_SOCKET= IPS_CREATEINSTANCE("{3CFF0FD9-E306-41DB-9B5A-9D06D38576C3}"); 
    IPS_SETName($ID_INSTANZ_SOCKET,"AV_SOCKET"); 
    CSCK_SetHost($ID_INSTANZ_SOCKET,$IP_HOST); 
   CSCK_SetPort($ID_INSTANZ_SOCKET,8102); 

     //dummy pioneer script anlegen in das dann der inhalt einkopiert werden muss 
    $ID_PIONEER_SCRIPT= CreateScriptByName("PioneerAVR", $ID_INSTANZ, "<?\r\r?>", false); 
     //dummy pioneer script für konstanten anlegen in das dann der inhalt einkopiert werden muss 
    $ID_PIONEER_SCRIPT_CONF= CreateScriptByName("PioneerAVR_Const", $ID_INSTANZ, "<?\r\r?>", true); 

    // timer der das script zykisch aufruft für power in abfrage 
    $ID_EVENT = IPS_CreateEvent (1); 
    IPS_SetEventCyclic($ID_EVENT, 2, 1, 0, 0, 2, 1);   //Jeden Tag jede Minute 
    IPS_SetParent($ID_EVENT, $ID_PIONEER_SCRIPT); 
    IPS_SetEventActive($ID_EVENT, true);  // Aktivert Ereignis 
     
    // cutter,socket und register einrichten 
    IPS_ConnectInstance($ID_INSTANZ_REGISTER, $ID_INSTANZ_CUTTER); 
    RegVar_SetRXObjectID($ID_INSTANZ_REGISTER, $ID_PIONEER_SCRIPT); 
    Cutter_SetParseType($ID_INSTANZ_CUTTER, 0); 
    Cutter_SetRightCutChar($ID_INSTANZ_CUTTER, "
"); 
    IPS_ConnectInstance($ID_INSTANZ_CUTTER, $ID_INSTANZ_SOCKET); 
     
    IPS_ApplyChanges($ID_INSTANZ_SOCKET); 
    IPS_ApplyChanges($ID_INSTANZ_CUTTER); 
    IPS_ApplyChanges($ID_INSTANZ_REGISTER); 


    // eigene profile anlegen, dafür das vorhandene löschen
	if (IPS_VariableProfileExists("AVR_VOLUME")) 
    IPS_DeleteVariableProfile("AVR_VOLUME"); 
    IPS_CreateVariableProfile ("AVR_VOLUME", 1 ); 
    IPS_SetVariableProfileText ("AVR_VOLUME", "", "%" ); 
    IPS_SetVariableProfileValues ("AVR_VOLUME", 0, 161 , 1 ); 
    IPS_SetVariableProfileIcon("AVR_VOLUME", "Speaker"); 

    // eigene profile anlegen, dafür das vorhandene löschen 
	if (IPS_VariableProfileExists("AVR_LISTENINGMODE"))
    IPS_DeleteVariableProfile("AVR_LISTENINGMODE"); 
    IPS_CreateVariableProfile ("AVR_LISTENINGMODE", 1 ); 
	//IPS_SetVariableProfileAssociation("Temperatur", 1, "Wert 1", "Speaker", 0xFFFFFF);
   IPS_SetVariableProfileAssociation("AVR_LISTENINGMODE", 0, "Auto/ALC/Direct", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_LISTENINGMODE", 1, "Stereo", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_LISTENINGMODE", 2, "Standard", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_LISTENINGMODE", 3, "Adv. Surround", "", -1); 

    // eigene profile anlegen, dafür das vorhandene löschen 
    // TODO: anpassen falls mehr funktionen gewünscht sind. 
    IPS_DeleteVariableProfile("AVR_FUNCTION"); 
    IPS_CreateVariableProfile ("AVR_FUNCTION", 1 ); 
   IPS_SetVariableProfileAssociation("AVR_FUNCTION", 0, "DIVERES", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 2, "Tuner", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 10, "Video 1", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 17, "iPod", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 19, "HDMI 1", "", -1); 
     IPS_SetVariableProfileAssociation("AVR_FUNCTION", 26, "Internetradio", "", -1); 
     IPS_SetVariableProfileIcon("AVR_FUNCTION", "Shutter"); 
      
    // power 
    $VarID_Power= IPS_CreateVariable(0); 
    // instanz zufügen 
    IPS_SetParent($VarID_Power, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Power, "Power"); 
    // profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Power, "~Switch"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_Power, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Power, 1); 

    // display string 
    $VarID_Display= IPS_CreateVariable(3); 
    // instanz zufügen 
    IPS_SetParent($VarID_Display, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Display, "Display"); 
    // profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Display, "~String"); 
    // kein aktion, script zuweisen 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Display, 2); 
    // icon zuweisen 
     IPS_SetIcon($VarID_Display, "Information"); 
     
    // lautstärke 
    $VarID_Vol= IPS_CreateVariable(1); 
    // instanz zufügen 
    IPS_SetParent($VarID_Vol, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Vol, "Lautstärke"); 
    // eigenes profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Vol, "AVR_VOLUME"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_Vol, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Vol, 3); 

    // mute 
    $VarID_Mute= IPS_CreateVariable(0); 
    // instanz zufügen 
    IPS_SetParent($VarID_Mute, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Mute, "Mute"); 
    // profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Mute, "~Switch"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_Mute, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Mute, 4); 

    // funktion 
    $VarID_Fkt= IPS_CreateVariable(1); 
    // instanz zufügen 
    IPS_SetParent($VarID_Fkt, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_Fkt, "Funktion"); 
    // eigenes profil nutzen 
    IPS_SetVariableCustomProfile($VarID_Fkt, "AVR_FUNCTION"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_Fkt, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_Fkt, 5); 

    // active listening mode 
    $VarID_ALM= IPS_CreateVariable(3); 
    // instanz zufügen 
    IPS_SetParent($VarID_ALM, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_ALM, "Active Listening Mode"); 
    // profil nutzen 
    IPS_SetVariableCustomProfile($VarID_ALM, "~String"); 
    // kein aktion, script zuweisen 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_ALM, 6); 
    // icon zuweisen 
     IPS_SetIcon($VarID_ALM, "Distance"); 

    // listening mode 
    $VarID_LM= IPS_CreateVariable(1); 
    // instanz zufügen 
    IPS_SetParent($VarID_LM, $ID_INSTANZ); 
    // Namen setzen 
    IPS_SetName($VarID_LM, "Listening Mode"); 
    // eigenes profil nutzen 
    IPS_SetVariableCustomProfile($VarID_LM, "AVR_LISTENINGMODE"); 
    // aktion, script zuweisen 
    IPS_SetVariableCustomAction($VarID_LM, $ID_PIONEER_SCRIPT); 
    // reihenfolge setzen 
    IPS_SetPosition($VarID_LM, 7); 

     

     // pioneer script für variablen anlegen in das dann der inhalt einkopiert werden muss 
    $SText="<?\r"; 
    $SText.="// statusvariablen des verstärkers\r"; 
    $SText.="define (\"ID_POWER\", ".$VarID_Power.");\r"; 
    $SText.="define (\"ID_DISPLAY\", ".$VarID_Display.");\r"; 
    $SText.="define (\"ID_MUTE\", ".$VarID_Mute.");\r"; 
    $SText.="define (\"ID_VOL\", ".$VarID_Vol.");\r"; 
    $SText.="define (\"ID_FUNCTION\", ".$VarID_Fkt.");\r"; 
    $SText.="define (\"ID_LISTENING_MODE\", ".$VarID_ALM.");\r"; 
    $SText.="define (\"ID_CHANGE_LISTENING_MODE\", ".$VarID_LM.");\r"; 
    //$SText.="// IP des Verstärkers\r"; 
    $SText.="\$IP_DEVICE=\"".$IP_HOST."\";\r"; 
    $SText.="// statusvariablen webfront und socket\r"; 
    $SText.="define (\"ID_SOCKET\", ".$ID_INSTANZ_SOCKET.");\r"; 
    $SText.="define (\"ID_WEBFRONT\", ".$ID_WebFront.");\r"; 
    $SText.="?>\r"; 

    $ID_PIONEER_SCRIPT_VARS= CreateScriptByName("PioneerAVR_Vars", $ID_INSTANZ, $SText); 


    // Funktion zum erstellen eines Scripts 
    // 
    // Parameter: 
    // ScriptNAME     = Name wie das Script im Objektbaum heissen soll 
    // ParentID    = Objekt ID unter der das Script untergehangen wird 
    // ScriptTEXT  = Inhalt der Scriptdatei 
    
    function CreateScriptByName($ScriptNAME, $ParentID, $ScriptTEXT) 

     { 
     global $IPS_SELF; 
     $ScriptID = @IPS_GetScriptIDByName($ScriptNAME, $ParentID); 
     if ($ScriptID == 0){ 
      $ScriptID = IPS_CreateScript(0); 
      IPS_SetName($ScriptID, $ScriptNAME); 
      IPS_SetParent($ScriptID, $ParentID); 
      IPS_SetInfo($ScriptID, "This script was created by: #$IPS_SELF#"); 
	  IPS_SetScriptContent($ScriptID, $ScriptTEXT);
      IPS_SetHidden($ScriptID, true); 
      IPS_SetPosition($ScriptID, 98); 
     } 
    return $ScriptID; 
    } 


?>

Nabend :wink:

So hatte mal wieder kurz Zeit das Script zu testen , es funktioniert :slight_smile: zwar noch ein paar falsche Rückmeldungen aber das denke ich Code bedingt und anhand der Tabellen zu den Verstärkern rauszubekommen.

Was mich nur wunder ist noch folgender Fehler…und zwar bei der Bedienung im Webfront taucht nach jedem abgesetzen Befehl ein schwarzes Fenster auf mit Fehler … Aber keine Code Fehler oder sonstiges.Und die Aktion wird auch ausgeführt. Bei IPS View erhalte ich auch eine Fehlermeldung obwohl die Funktion ausgeführt wird , dort bekomme ich folgenden Fehler. Fehler beim Ausführen von Action/SetVal…
Die Scripte laufen fehlerfrei durch.

Trotzdem aber schon mal vielen lieben Dank bin mehr als froh das die Rückmeldungen kommen, die Steuerung kann ich zur Not auch per Infrarot lassen.

Hast Du zufällig noch eine Leerzeile im Script nach dem ?> dann löschen.

Perfekt Danke , das war es. Da hätte ich aber zum Beispiel selber drauf kommen müssen , das hatte schon gelesen das das zu Fehlern führt.

Was mir jetzt gerade noch auf fiel das die Lautstärke in Prozent angezeigt wird und auch nicht steuerbar ist.

Hat jemand rein zufällig schon die neuen 2016+ AVR’s von Pioneer in IPS eingebunden welche über Port 60128 sprechen und ähnlich dem Onkyo 2013+ Protokoll sind? Ich musste leider feststellen dass mein altes Script, welches ich für den VSX1122k genutzt hatte nicht mehr funktioniert, da sich die Befehle leicht abgeändert haben.

Aktuell nutze ich den SC-LX501

Nachdem nun alles funktioniert bin ich dabei verschieden „Szenen“ in Scripte zu fassen.
Nun habe ich ein kleines Problem und zwar möchte ich eine „Szene“ TV programmieren.
Also TV ein,Sat-Receiver ein , Verstärker ein, passenden Eingang etc wählen.
Für die Steuerung des Pioneer habe ich ja das Script , allerdings will ich nun ja nur einen „Ein“ Befehl sowie die Eingangswahl setzen.
Das Pioneer script erstellt mir ja Variablen die ich auch perfekt mit IPSview Steuern kann,
allerdings wenn ich die Variable in einen Script setze oder auch im Webfront passiert nichts. Ich denke ich versuche es falsch herum, ich müsste wahrscheinlich nicht die Variable setzen sondern den Befehl aus dem Script welches mir die Variable setzt. Allerdings bin ich da wohl noch nicht in der Lage zu oder habe ein Verständnissproblem.
Ich hoffe ihr vesteht was ich meine :wink:
Kann mir vielleicht jemand sagen welchen Befehl ich in mein „TV Szenen Script“ einfügen muss damit der Pioneer eingeschaltet wird …

Ich weiss, wahrscheinlich wieder ne blöde Frage :slight_smile: Ich hoffe die werden in Zukunft seltener :wink:

MFG Dennis

versuche mal folgendes:


CSCK_SendText("ID vom ClientSocket", PO.chr(13));

PO = PowerOn
PF = PoerOff

Sag mal, ob das funktioniert hat :slight_smile:

Funktioniert perfekt :slight_smile: Danke
Allerdings bekomme ich noch die Meldung

Notice: Use of undefined constant PO - assumed ‚PO‘ in C:\IP-Symcon\scripts\18775.ips.php on line 2

angezeigt.

Wie mache ich das jetzt mit der Eingangswahl ? Also TV,Tuner etc…

Ja, Sorry,

richtig wäre:

CSCK_SendText("ID vom ClientSocket", "PO".chr(13));  

https://www.symcon.de/forum/threads/35512-Receiver-Pioneer-VSX-923-per-Lan-steuern

Mit diesem Skript sollten Pioneer SC-LX87, SC-LX77, SC-LX57, SC-2023, SC-1223, VSX-1123, VSX-923 funktionieren