Squeezeboxen einpflegen ohne GROßEN AUFWAND

Ich habe genau das selbe Problem:

Notice: Undefined index: VARIABLE in C:\IP-Symcon\scripts\51522.ips.php on line 137

Notice: Undefined index: VARIABLE in C:\IP-Symcon\scripts\51522.ips.php on line 142

Notice: Undefined index: VARIABLE in C:\IP-Symcon\scripts\51522.ips.php on line 147

Notice: Undefined index: VARIABLE in C:\IP-Symcon\scripts\51522.ips.php on line 169

Notice: Undefined index: VARIABLE in C:\IP-Symcon\scripts\51522.ips.php on line 174

@joschi79:
Hast Du hierfür schon eine Lösung gefunden.

Vielen Dank.

Hallo DoktorD,

hast Du mein Include-Script benutzt oder das von Werner? Bei meinem sollte das Problem nicht mehr auftreten, da ich mir eine Funktion selbst geschrieben hatte.

Grüße
Kevin

Hi Kevin,

ich hab ein kleines Problem mit der Funktion „SqueezePlayMessageFile“ aus Deiner Include.
Ich hab an meiner Squeezebox-Smartphone-App keine Stop-Taste, weshalb ich Playlisten manchmal einfach nur pausiere. Bei IPS kommt dieses auch so an -> fein. Spiele ich nun eine Durchsage ab, wird danach nur kurz in den Pausenmodus, gleich direkt aber in den Play-Modus geschaltet. Hatte ich vorher gestoppt, klappt es. Hast Du eine Idee, wo hier das Problem liegen könnte?

Grüße,
Carsten

[Edit] Ich habe jetzt mal am Schluss der Funktion, dort wo der ursprüngliche Zustand wieder hergestellt wird, statt „pause 1“ ein „stop“ eingefügt. Prompt geht nach der Durchsage die Playlist auf Stop. Irgendetwas stimmt also mit dem „pause 1“ nicht.

       case 1: // Pause
          $cmd = "stop"; //hier stand erst $cmd = "pause 1"

[/Edit]

Hallo,

Playlisten werden von meinem Scripten noch nicht unterstützt. Den Fehler mit dem Resume nach Durchsage ist mir auch schon aufgefallen. Ich suche noch nach einer Lösung. Wenn ich sie habe, werde ich sie im OP natürlich einstellen. Ich habe aber z.Z. kaum Resourcen hier was zu machen.

Grüße
Kevin

Also das ist eigentlich eine gute Anleitung die man gut durchgehen kann aber irgendwie läuft das bei mir nicht.
Ich habe den Client Socket mit IP und Port 9090, den Cutter und die Register Variable. Eingetragen ist alles, die Scripte sind kopiert. Aber nix geht weiter, ich bastel schon den ganzen Tag, alles nochmal und nochmal und kein Erfolg :frowning:
Hat vielleicht jemand Lust und Zeit mit mir alles Schritt für Schritt durchzugehen? Ich komm so einfach nicht weiter.

Gruss

ProfDexter

Hallo ProfDexter,

klappt es inzwischen bei Dir? Hier verhält es sich sehr ähnlich…es kommt offenbar schon nichts verwertbares über die Schnittstelle, so dass das Auswerteskripte gar nicht erst getriggert wird…

Joachim

Nachtrag: Muss denn an irgendeiner Stelle noch etwas freigegeben werden? IPS und der LMS laufen beiden zusammen auf einem WHS 2011. Firewall sollte soweit freigegeben sein. Die Steuerung über die iPhoneApp und einen externen PC klappt ohne Probleme. Auch im LMS zeigen alle System „ok“, der CLI läuft wie schon hier gepostet auch dort über den Port 9090…

Kann mir jemand sagen warum mein Squeezeboxradion alle 2 Sekunden den kompletten Status sendet?


16.03.2013 22:00:22.00 |        Received Data | 00%3A04%3A20%3AXX%3AXX%3ACXX status - 1 subscribe%3A2 player_name%3AKueche player_connected%3A1 player_ip%3A192.168.178.27%3A45421 power%3A1 signalstrength%3A100 mode%3Astop mixer%20volume%3A50 playlist%20repeat%3A0 playlist%20shuffle%3A0 playlist%20mode%3Aoff seq_no%3A114 playlist_tracks%3A0
16.03.2013 22:00:24.00 |        Received Data | 00%3A04%3A20%3AXX%3AXX%3ACXX status - 1 subscribe%3A2 player_name%3AKueche player_connected%3A1 player_ip%3A192.168.178.27%3A45421 power%3A1 signalstrength%3A100 mode%3Astop mixer%20volume%3A50 playlist%20repeat%3A0 playlist%20shuffle%3A0 playlist%20mode%3Aoff seq_no%3A114 playlist_tracks%3A0
16.03.2013 22:00:26.00 |        Received Data | 00%3A04%3A20%3AXX%3AXX%3ACXX status - 1 subscribe%3A2 player_name%3AKueche player_connected%3A1 player_ip%3A192.168.178.27%3A45421 power%3A1 signalstrength%3A100 mode%3Astop mixer%20volume%3A50 playlist%20repeat%3A0 playlist%20shuffle%3A0 playlist%20mode%3Aoff seq_no%3A114 playlist_tracks%3A0


Ich werde verrückt, ich habe keine Idee mehr

Hallo Mastershort,

das kannst Du mit „Listen 0“ ausschalten - dann werden Deine Anzeigen aber auch nicht mehr aktualisiert…

Joachim

OK das ist natürlich eine Idee . Aber das komische ist ,ich habe 3 Squeezeboxen. Und nur die eine wirft immmer die Daten raus. Die andern beiden nicht.

Oder ist das bei euch auch so ? Funktioniern tut alles wie es soll.

Hallo Mastershort,

wenn alle drei Player aktiv sind, dann sollten auch von allen drei entsprechenden Datensätze zurückkommen.
Wenn Deine Anzeigen für die drei Player aktualisiert werden, ist das dann wohl auch so…:wink:

Joachim

Achso dann macht der eine Player es Richtig und die andern beiden Falsch.

EDIT : Danke du hast mich auf den Richtigen weg gebracht . Ich musste noch ein listen 1 für die beiden anderen Boxen machen.

Hallo Mastershort,

nach der Dokumentation geht der Listen-Befehl an den Server:

listen <0|1|?> 

The "listen" command enables to receive asynchronously internal server commands (notifications) on the CLI connection. Notifications concern all activity in the server, not just the activity triggered by the command-line. Use 0 to clear, 1 to set, ? to query, and no parameter to toggle the listen state of the command-line connection. 
If only certain notifications are of interrest, consider using the "subscribe" command below. The "listen" command shares some of its internal plumbing with "subscribe" so using "subscribe xxx" changes the list of echoed notifications from nothing or everything to only xxx. 
Please consult section Notifications for a list of possible notifications. 

Examples: 

Request: "listen 1<LF>" 
Response: "listen 1<LF>" 
"04:20:00:12:23:45 mixer volume 25<LF>" 
"04:20:00:12:23:45 pause<LF>" 


Von daher habe ich die entsprechende Funktion auch abgeändert:

//*************************************************************************************************************
// Initialisierung der Squeezeboxen und Abfrage einiger Daten vom Server
function SqueezeInit()
{
   CSCK_SendText(SqueezeServer, "listen 1".chr(13));
   CSCK_SendText(SqueezeServer, "player count ?".chr(13));
   For ($i = 0; $i < (GetValueInteger(29221 /*[Squeezeboxen\SqueezeBoxen-Steuerung\Anzahl verbundener Player]*/ )); $i++)
		{
		IPS_Sleep(25);
		CSCK_SendText(SqueezeServer, "player ip $i ?".chr(13));
      IPS_Sleep(25);
		CSCK_SendText(SqueezeServer, "player id $i ?".chr(13));
      IPS_Sleep(25);
		CSCK_SendText(SqueezeServer, "player name $i ?".chr(13));
		IPS_Sleep(25);
		CSCK_SendText(SqueezeServer, "player model $i ?".chr(13));
		}
	return;
}

Für Deine Zwecke sollte der „obere Bereich“ reichen:

//*************************************************************************************************************
// Initialisierung der Squeezeboxen und Abfrage einiger Daten vom Server
function SqueezeInit()
{
   CSCK_SendText(SqueezeServer, "listen 1".chr(13));
	return;
}

Joachim

Hallo

Ich habe eine Frage bezüglich der Playliste. Erst einmal vielen Dank an Werner und Kevin für die Erstellung der Scripte, damit ist das Einpflegen auch für keine php Leuchten wie mich sehr einfach, 1000 Dank dafür. Mein eigentliches Problem ist aber das ich die aktuelle Playlist in einer Variable angezeigt haben möchte, viel lesen und probieren führte bis jetzt nicht zum Erfolg, hat jemand eine Lösung bzw. eine Rat für mich.

gruß Remo

hat sich erledigt, Lösung gefunden

Moin

noch mal ein Nachtrag zu meiner Frage
die ID´s im Steuerscript sind ebenfalls angelegt, dass hatte ich vergessen zu erwähnen, es funktioniert auch die Abfrage, allerdings wird der Wert nicht an die variable übergeben:confused:
da ist irgend wo ein Fehler den ich leider nicht finde, wenn sich jemend die scripte anschaut, findet er vielleicht den bug

vielen Dank im voraus
Remo

Hallo,
ich hoffe ich werde erhört und ihr könnt mir helfen, auch wenn das Thema Squeezeboxen anscheinend nicht mehr so verbreitet ist.

Ich habe mehre Boxen und möchte die in die IP-Symcon einbinden, jedoch gelingt es mir nicht. Ich habe die Verknüpfungen nach Werners Anleitung angelegt, erst habe ich seine Scripte probiert. Diese sind aber doch recht auffwendig und besitzen einige Fehlerquellen. Jetzt probiere ich es mit dem „vereinfachten“ skript und scheitere wieder kläglich,

Ich habe das selbe Problem wie bereits mehrere Vorredner in diesem Thread. Nach dem Ausführen des Steuerungsscriptes werden zwar Variablen angelegt aber ich bekomme folgende Fehlermeldung (gekürzt):

Notice: Undefined index: VARIABLE     Error in Script C:\IP-Symcon\scripts\54770.ips.php on Line 132   
Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\54770.ips.php on line 132
Notice: Undefined index: VARIABLE     Error in Script C:\IP-Symcon\scripts\54770.ips.php on Line 137  

Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\54770.ips.php on line 137
 Notice: Undefined index: VARIABLE     Error in Script C:\IP-Symcon\scripts\54770.ips.php on Line 142 

Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\54770.ips.php on line 142
Notice: Undefined index: VARIABLE     Error in Script C:\IP-Symcon\scripts\54770.ips.php on Line 164    133 in IPSLibrary\app

Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\54770.ips.php on line 164
Notice: Undefined index: VARIABLE     Error in Script C:\IP-Symcon\scripts\54770.ips.php on Line 169 
Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\54770.ips.php on line 169

Führe ich manuell die „Squeezebox.inc“ oder die Auswertung aus bekomme ich keine Fehlermeldung, es werden aber auch keine Daten in die Variablen geschrieben. Außerdem weiß ich nicht genau was mit DeviceID gemeint ist, muss ich die angeben oder holt sich das Script die selber?

Ich hänge unten meine Scripte mit an oder gibt es einen anderen Weg um die Squeezeboxen einzubinden?

Ich hoffe auf eure Hilfe.

Gruß
Fabian

Squeezebox.inc.php

<?
/******************************************************************************
* Script-Name: Squeezebox.inc.php                                                       *
* Version: 2.1                                                                     *
* Autor: McKevin                                                                   *
* Erstellt am: 2011-10-24                                                          *
* Letzte Änderung am: 2012-10-02                                                 *
* Beschreibung: Squeezeserver Funktionen zum Inkludieren in anderen Scripten. *
* Dependencies: Logitech Media Server                                                 *
* Changelog:   V1.0 (2011-10-24) Initial Release                              *
*              V2.0 (2012-09-23) Umstellung auf Idents, Code-Reduzierung      *
*              V2.1 (2012-10-02) Bugfix SqueezePlayMessageFile() Resume       *
*              V2.2 (2012-10-11) neu: SqueezeSync() und SqueezeUnsync()         *
******************************************************************************/
//******** Konfigurationsbereich **********************************************
define('SqueezeServer', 41843 /*[SqueezeServer]*/ ); //ClientSocketID
define('SQserverIP', '192.100.42.3:9000');     //IP-Adresse und Port des Servers

// MAC-Adresse(n) auf verständliche Konstante(n) definieren
define('SQArbeitszimmer',           '90:e6:xx:xx:xx:e0');
//define('SQArbeitszimmer',  '00:04:20:xx:xx:xx');
//define('SQSchlafzimmer',    '00:04:20:xx:xx:xx');
//define('SQWohnzimmer',        '00:04:20:xx:xx:xx');
//define('SQController',        '00:04:20:xx:xx:xx');
//define('SQBadezimmer',         '00:04:20:xx:xx:xx');
//define('SQGaestezimmer',    '00:04:20:xx:xx:xx');
$allPlayers = array(SQArbeitszimmer);

// Definiere Lautstärken für Meldungen/Alarme (wichtig für SQB Radio)
define('SQWarnung', GetValue(33980 /*[Multimedia\Squeezeboxen\Allgemein\Variablen\Lautstärke\SQWarnung]*/ ));
define('SQNotificationHi', GetValue(14111 /*[Multimedia\Squeezeboxen\Allgemein\Variablen\Lautstärke\SQNotificationHi]*/ ));
define('SQBAlarm', GetValue(39043 /*[Multimedia\Squeezeboxen\Allgemein\Variablen\Lautstärke\SQBAlarm]*/ ));
define('SQNotificationLo', GetValue(12468 /*[Multimedia\Squeezeboxen\Allgemein\Variablen\Lautstärke\SQNotificationLo]*/));

// definiere DeviceIDs auf verständliche Namen
define('SQArbeitszimmerID', 26539);
//define('SQWohnzimmerID',    30996 /*[Objekt #30996 existiert nicht]*/ );
//define('SQControllerID',    53127 /*[Objekt #53127 existiert nicht]*/);
//define('SQBadezimmerID',    53951 /*[Objekt #53951 existiert nicht]*/ );
//define('SQKinderzimmerID',  25212 /*[Objekt #25212 existiert nicht]*/);
//define('SQGaestezimmerID',  10834 /*[Objekt #10834 existiert nicht]*/);
//define('SQArbeitszimmerID', 28760 /*[Objekt #28760 existiert nicht]*/);
$allPlayerIDs = array(SQArbeitszimmerID);

// definiere MediaIDs für unterscheidbare Info-Töne vor Durchsagen
define('SQNotificationLoSound', 33768 /*[Multimedia\Squeezeboxen\Allgemein\Sounds\SQNotificationLoSound]*/);
define('SQAlarmSound', 45261 /*[Multimedia\Squeezeboxen\Allgemein\Sounds\SQAlarmSound]*/);
define('SQWarnungSound', 32021 /*[Multimedia\Squeezeboxen\Allgemein\Sounds\SQWarnungSound]*/ );
define('SQNotificationHiSound', 55112 /*[Multimedia\Squeezeboxen\Allgemein\Sounds\SQNotificationHiSound]*/ );

//********* ab hier nichts mehr ändern ****************************************
function SqueezeSend($box, $cmd)
// Allg. Funktion zum Befehle senden
// Wenn keine MAC-Adresse angegeben, dann sende an alle oben definierten Player
{
    if ($box == "")
    {
       foreach ($GLOBALS["allPlayers"] AS $box)
      {
            CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
        };
    }
    else
    {
    CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
    };
};
//=============================================================================
function SqueezeInit($box)
// Schaltet den Listenmodus der Box(en) an
{
    return SqueezeSend($box, 'listen 1');
};
//=============================================================================
function SqueezePowerOn($box)
// Schaltet die Squeezebox(en) an
{
    return SqueezeSend($box, 'power 1');
};
//=============================================================================
function SqueezePowerOff($box)
// Schaltet die Squeezebox(en) aus
{
    return SqueezeSend($box, 'power 0');
};
//=============================================================================
function SqueezePower($box , $on)
// Schaltet die Squeezebox(en) an oder aus
{
    $cmd = "power ";
    $cmd .= $on ? "1":"0";
    return SqueezeSend($box, $cmd);
};
//=============================================================================
function SqueezeUnSync($box)
// Nimmt den Player mit $box aus der Syncgruppe
{
    return SqueezeSend($box, 'sync -');
};
//=============================================================================
function SqueezeSync($box1mac, $box2mac)
// versucht box2 mit box1 zu syncronisieren
{
    return SqueezeSend($box1mac, 'sync '.$box2mac);
};
//=============================================================================
function SqueezeSetVolume($box, $value)
// Setzt Lautstärke 0...100
{
    return SqueezeSend($box, 'mixer volume '.$value);
};
//=============================================================================
function cover($player_id, $var_id)
// setzt die $var_id mit dem Coverbild von $player_id
{
    $time = time();
    $str = "<table width='100%' cellspacing='0'><tr><td align=right>";
    $str = $str."<img src='http://".SQserverIP."/music/current/cover_150x150_$time.jpg?player=$player_id'></img>";
    $str = $str."</td></tr></table>";
    SetValue($var_id, $str);
};
//=============================================================================
function SqueezeButton($box , $bt)
// Sendet einen Tastendruck
{
  return SqueezeSend($box, "button ".$bt);
};
//=============================================================================
// _Under Development
function SqueezeShowMessage($box, $value1, $value2)
{
  return SqueezeSend($box, 'show '.$value1);
};
//=============================================================================
function SqueezePlayMessageFile($box, $DeviceID, $MedienID, $mType)
// Spielt eine IPS-Mediendatei ab
// $box = MAC-Adresse der Squeezebox
// $DeviceID = ObjektID der Dummy-Instanz passend zur MAC-Adresse
// $MedienID = ID des Soundfiles (MP3 oder WAV)
// $mType = Messagetyp (SQNotificationHi/Lo, SQWarnung, SQAlarm = Lautstärke in %);
{
    $wait = 15; // Wartezeit in sec bis alte Playlist wiederhergestellt wird
    switch ($mType) // Spiele verschiedene Klänge als Aufmerksamkeitssteigerung je nach Lautstärke (SQNotification..)
    {
        case SQNotificationLo:
            $mediaarray1 = IPS_GetMedia(SQNotificationLoSound);  // hole Medieninformationen
            break;
        case SQNotificationHi:
            $mediaarray1 = IPS_GetMedia(SQNotificationHiSound);  // hole Medieninformationen
            break;
        case SQWarnung:
            $mediaarray1 = IPS_GetMedia(SQWarnungSound);  // hole Medieninformationen
            break;
        case SQBAlarm:
            $mediaarray1 = IPS_GetMedia(SQAlarmSound);  // hole Medieninformationen
            break;
        default:
         // kein Klang zur Unterscheidung
    };
    $mediapath1 = rawurlencode(IPS_GetKernelDir().$mediaarray1['MediaFile']);     // hole Medienpfad

    if (!(array_search($box, $GLOBALS["allPlayers"]) !== false)) // Prüfe, ob MAC-Adrese definiert, sonst Abbruch
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageFile:Device mit MAC".$box." existiert nicht");
       return false;
    };
    if (!IPS_InstanceExists($DeviceID)) // Prüfe, ob Device mit $DeviceID existiert, sonst Abbruch
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageFile:Device mit ".$DeviceID." existiert nicht");
       return false;
    };
    if (IPS_MediaExists($MedienID))     // Prüfe, ob MedienObjekt mit der $MedienID existiert, sonst Abbruch
    {
        $mediaarray2 = IPS_GetMedia($MedienID);  // hole Medieninformationen
        // Prüfe, ob Medien-Datei vorhanden und Sound-File
        if (($mediaarray2['IsAvailable'] == true) && ($mediaarray2['MediaType'] == 2))
        {
            $mediapath2 = rawurlencode(IPS_GetKernelDir().$mediaarray2['MediaFile']);     // hole Medienpfad
//            IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageFile:MediaPath: ".$mediapath);
        }
        else     // Datei nicht vorhanden oder kein Soundfile--> Logeintrag in IPS-Meldungen
         {
            IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageFile:MedienID $MedienID ist nicht vorhanden oder keine WAV/MP3-Datei");
            return false; // Abbruch der Funktion mit false-Rückgabe
        };
        // Speichere Status (Power, Modus, Lautstärke, Playlist, Zeitposition)
        $status_old = GetValue(IPS_GetObjectIDByIdent("Power", $DeviceID));    // Status Box An oder Aus
        $modus_old  = GetValue(IPS_GetObjectIDByIdent("Modus", $DeviceID));  // Modus merken (Play Pause Stop)
        $volume_old = GetValue(IPS_GetObjectIDByIdent("Volume", $DeviceID));    // aktuelle Lautstärke der Box zwischenspeichern
        $time_old = GetValue(IPS_GetObjectIDByIdent("Position", $DeviceID));    // Position des aktuellen Titels merken (float Sekunden)
        $repeat = GetValue(IPS_GetObjectIDByIdent("Repeat", $DeviceID));     // War Repeat aktiviert?
        SqueezeSend($box, "playlist repeat 0"); // Repeat deaktivieren
        SqueezeSend($box, "playlist save TEMP0 silent 1"); // aktuelle Playlist speichern
        SqueezeSend($box, "playlist clear"); // Aktuelle Wiedergabeliste löschen
          SqueezeSend($box, "playlist add ".$mediapath1);// neue Wiedergabeliste schreiben mit abzuspielende Datei (1. Datei)
        SqueezeSend($box, "playlist insert ".$mediapath2); // Wiedergabeliste ergänzen mit abzuspielende Datei (2. Datei)
        SqueezeSetVolume($box, $mType); // Definierte Message-Lautstärke setzen
        SqueezeSend($box, "play");        // Abspielen
        // Warten bis Audiodatei(en) abgespielt wurden (Script anhalten)
        IPS_Sleep($wait*1000); // x sec Script anhalten für Durchsage
//        SqueezeSend($box, "playlist clear"); // Temporäre Wiedergabeliste wieder löschen
        SqueezeSetVolume($box, $volume_old); // alte Lautstärke setzen
        SqueezeSend($box, "playlist resume TEMP0 noplay");         // Alte Wiedergabeliste wieder herstellen
        SqueezeSend($box, "playlist repeat ".$repeat); // Repeat wieder herstellen
        SqueezeSend($box, "time ".$time_old); // an die alte Stelle springen
        switch ($modus_old)
        {
            case 0: // Stop
                $cmd = "stop";
               break;
           case 1: // Pause
              $cmd = "pause 1";
              break;
           case 2: // Play
                $cmd = "play";
              break;
        };
        SqueezeSend($box, $cmd); // alten Modus wieder einstellen
        if ($cmd == "play" or $cmd == "pause 1") SqueezeSend($box, "time ".$time_old);
        if (!$status_old) SqueezePowerOff($box); // War die Box zuvor aus wieder ausschalten
    };
  return true;
};
//=============================================================================
function SqueezePlayMessageText($box, $DeviceID, $text, $mType)
// Spielt ein Text via TTS auf der Squeezebox ab
// $box = MAC-Adresse der Squeezebox
// $DeviceID = ObjektID der Dummy-Instanz passend zur MAC-Adresse
// $text = String der ausgegeben werden soll
// $mType = Messagetyp (SQNotificationHi/Lo, SQWarnung, SQAlarm = Lautstärke in %);
{
    $wait = 15; // Wartezeit in sec bis alte Playlist wiederhergestellt wird
    $wait_generate = 5; // Wartezeit in sec zur vollständigen Dateigenerierung
    TTS_GenerateFile(31964 /*[Objekt #31964 existiert nicht]*/, $text, "C:\IP-Symcon\TTS.wav", 23); // Generiere WAV-Datei aus Text
    IPS_Sleep($wait_generate*1000); // Warte x sec für die Generierung der Datei
    switch ($mType) // Spiele verschiedene Klänge als Aufmerksamkeitssteigerung je nach Lautstärke (SQNotification..)
    {
        case SQNotificationLo:
            $mediaarray1 = IPS_GetMedia(SQNotificationLoSound);  // hole Medieninformationen
            break;
        case SQNotificationHi:
            $mediaarray1 = IPS_GetMedia(SQNotificationHiSound);  // hole Medieninformationen
            break;
        case SQWarnung:
            $mediaarray1 = IPS_GetMedia(SQWarnungSound);  // hole Medieninformationen
            break;
        case SQBAlarm:
            $mediaarray1 = IPS_GetMedia(SQAlarmSound);  // hole Medieninformationen
            break;
        default:
         // kein Klang zur Unterscheidung
    };
    $mediapath1 = rawurlencode(IPS_GetKernelDir().$mediaarray1['MediaFile']);     // hole Medienpfad

    if (!(array_search($box, $GLOBALS["allPlayers"]) !== false)) // Prüfe, ob MAC-Adrese definiert, sonst Abbruch
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageText:Device mit MAC".$box." existiert nicht");
       return false;
    };
    if (!IPS_InstanceExists($DeviceID)) // Prüfe, ob Device mit $DeviceID existiert, sonst Abbruch
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageText:Device mit ".$DeviceID." existiert nicht");
       return false;
    };
    if (is_file('C:/IP-Symcon/TTS.wav'))     // Prüfe, ob MedienObjekt mit der $MedienID existiert, sonst Abbruch
    {
        $mediapath2 = rawurlencode(IPS_GetKernelDir().'TTS.wav');     // hole Medienpfad
    }
    else     // Datei nicht vorhanden--> Logeintrag in IPS-Meldungen
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageText: TTS.wav ist nicht vorhanden.");
        return false; // Abbruch der Funktion mit false-Rückgabe
    };
    // Speichere Status (Power, Modus, Lautstärke, Playlist, Zeitposition)
    $status_old = GetValue(IPS_GetObjectIDByIdent("Power", $DeviceID));    // Status Box An oder Aus
    $modus_old  = GetValue(IPS_GetObjectIDByIdent("Modus", $DeviceID));  // Modus merken (Play Pause Stop)
    $volume_old = GetValue(IPS_GetObjectIDByIdent("Volume", $DeviceID));    // aktuelle Lautstärke der Box zwischenspeichern
    $time_old = GetValue(IPS_GetObjectIDByIdent("Position", $DeviceID));    // Position des aktuellen Titels merken (float Sekunden)
    $repeat = GetValue(IPS_GetObjectIDByIdent("Repeat", $DeviceID));     // War Repeat aktiviert?
    SqueezeSend($box, "playlist repeat 0"); // Repeat deaktivieren
    SqueezeSend($box, "playlist save TEMP0 silent 1"); // aktuelle Playlist speichern
    SqueezeSend($box, "playlist clear"); // Aktuelle Wiedergabeliste löschen
     SqueezeSend($box, "playlist add ".$mediapath1);// neue Wiedergabeliste schreiben mit abzuspielende Datei (1. Datei)
    SqueezeSend($box, "playlist insert ".$mediapath2); // Wiedergabeliste ergänzen mit abzuspielende Datei (2. Datei)
    SqueezeSetVolume($box, $mType); // Definierte Message-Lautstärke setzen
    SqueezeSend($box, "play");        // Abspielen
    // Warten bis Audiodatei(en) abgespielt wurden (Script anhalten)
    IPS_Sleep($wait*1000); // x sec Script anhalten für Durchsage
//        SqueezeSend($box, "playlist clear"); // Temporäre Wiedergabeliste wieder löschen
    SqueezeSetVolume($box, $volume_old); // alte Lautstärke setzen
    SqueezeSend($box, "playlist resume TEMP0 noplay");         // Alte Wiedergabeliste wieder herstellen
    SqueezeSend($box, "playlist repeat ".$repeat); // Repeat wieder herstellen
    SqueezeSend($box, "time ".$time_old); // an die alte Stelle springen
    switch ($modus_old)
    {
        case 0: // Stop
            $cmd = "stop";
           break;
       case 1: // Pause
          $cmd = "pause 1";
          break;
       case 2: // Play
            $cmd = "play";
          break;
    };
    SqueezeSend($box, $cmd); // alten Modus wieder einstellen
    if ($cmd == "play" or $cmd == "pause 1") SqueezeSend($box, "time ".$time_old);
    if (!$status_old) SqueezePowerOff($box); // War die Box zuvor aus wieder ausschalten
    return true;
};
?>

Steuerungsscript

<?php
/******************************************************************************
* Letzte Änderung am: 2012-09-23                                              *
* Beschreibung: Bei manueller Ausführung wird überprüft, ob Script versteckt  *
*               ist, wenn nein, dann wird ein neues Dummy-Modul erstellt mit  *
*               allen benötigten Variablen. Bei Steuerung über Webfront werden*
*               die Befehle ausgeführt und an die Squeezebox mit der gegebenen*
*               MAC-Adresse gesendet.                                         *
* Changelog:   V1.0 (2011-11-02) Initial Release                              *
*              V2.0 (2012-09-23) Erweiterung um Installer und Umstellung auf  *
*                                Idents zur einfacheren Ersteinrichtung       *
******************************************************************************/

//***** Definitionsbereich ****************************************************
include_once "32229.ips.php";      // Squeezefunktions-Sammlung

//***** Konfigurationsbereich *************************************************
$boxmac = '90:e6:xx:xx:xx:e0';      // Hier die Squeezebox-MAC-Adresse eintragen

//***** Scriptbereich *********************************************************
//INSTALLER
// Bei manueller Ausführung wird ein Dummy-Modul erstellt, welches mit den für
// die Benutzung wichtigen Variablen ausgestattet wird. Dieses Script verschiebt
// sich dann automatisch in dieses Objekt und wird unsichtbar im WebFront.
// Als Variablen (Idents) werden erstellt: Power, Volume, Modus, Repeat, Shuffle,
// Position, Cover, Interpret, Title, Album, Duration
if ($_IPS['SENDER'] == "Execute")
{
    $object = IPS_GetObject($_IPS['SELF']);    // Hole alle Scripteigenschaften
    $ishidden = $object['ObjectIsHidden']; // Script versteckt?

    if (!$ishidden) // wenn Script nicht versteckt, dann los
    {
        $device = IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}"); // erstellt Dummy-Modul
        if (IPS_ApplyChanges($device)) // prüft, ob device erstellt werden konnte
        {
            $parent = IPS_GetParent($_IPS['SELF']); // merke den Ort des Scriptes
            IPS_SetName($device, "Squeezebox");
            IPS_SetParent($device, $parent); // verschiebe Dummy-Modul zum Scriptort
            IPS_SetParent($_IPS['SELF'], $device); // verschiebe Script in Dummy-Modul
            IPS_SetHidden($_IPS['SELF'], true); // mache Script unsichtbar im Webfront
            $power = IPS_CreateVariable(0); // erstelle Boolean-Variable
            IPS_SetParent($power, $device); // verschiebe Variable in Dummy-Modul
            IPS_SetIdent($power, "Power"); // setze Ident Power
            IPS_SetName($power, "Power"); // bennene Variable in Power
            IPS_SetPosition($power, 1); // setze Position 1 für Visu
            IPS_SetVariableCustomProfile($power, "PowerSwitch"); // setze Schalterprofil
            IPS_SetVariableCustomAction($power, $_IPS['SELF']); // setze Aktion auf dieses Script
            $modus = IPS_CreateVariable(1); // Integervariable
            IPS_SetParent($modus, $device);
            IPS_SetIdent($modus, "Modus");
            IPS_SetName($modus, "Modus");
            IPS_SetPosition($modus, 2);
            IPS_SetVariableCustomProfile($modus, "Squeezebox_Status");
            IPS_SetVariableCustomAction($modus, $_IPS['SELF']); // setze Aktion auf dieses Script
            $volume = IPS_CreateVariable(1); // Integervariable
            IPS_SetParent($volume, $device);
            IPS_SetIdent($volume, "Volume");
            IPS_SetName($volume, "Lautstärke");
            IPS_SetPosition($volume, 3);
            IPS_SetVariableCustomProfile($volume, "Squeezebox_Volume");
            IPS_SetVariableCustomAction($volume, $_IPS['SELF']); // setze Aktion auf dieses Script
            $repeat = IPS_CreateVariable(1); // Integervariable
            IPS_SetParent($repeat, $device);
            IPS_SetIdent($repeat, "Repeat");
            IPS_SetName($repeat, "Repeat");
            IPS_SetPosition($repeat, 4);
            IPS_SetVariableCustomProfile($repeat, "Squeezebox_Repeat");
            IPS_SetVariableCustomAction($repeat, $_IPS['SELF']); // setze Aktion auf dieses Script
          IPS_SetIcon($repeat, "Gnome-Media-Playlist-Repeat-32"); // setze Icon
            $shuffle = IPS_CreateVariable(1); // Integervariable
            IPS_SetParent($shuffle, $device);
            IPS_SetIdent($shuffle, "Shuffle");
            IPS_SetName($shuffle, "Zufall");
            IPS_SetPosition($shuffle, 5);
            IPS_SetVariableCustomProfile($shuffle, "Squeezebox_function");
            IPS_SetVariableCustomAction($shuffle, $_IPS['SELF']); // setze Aktion auf dieses Script
          IPS_SetIcon($shuffle, "Gnome-Media-Playlist-Shuffle-32"); // setze Icon
            $interpret = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($interpret, $device);
            IPS_SetIdent($interpret, "Interpret");
            IPS_SetName($interpret, "Interpret");
            IPS_SetPosition($interpret, 6);
            $title = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($title, $device);
            IPS_SetIdent($title, "Title");
            IPS_SetName($title, "Titel");
            IPS_SetPosition($title, 7);
            $album = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($album, $device);
            IPS_SetIdent($album, "Album");
            IPS_SetName($album, "Album");
            IPS_SetPosition($album, 8);
            $cover = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($cover, $device);
            IPS_SetIdent($cover, "Cover");
            IPS_SetName($cover, "Cover");
            IPS_SetPosition($cover, 9);
            $position = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($position, $device);
            IPS_SetIdent($position, "Position");
            IPS_SetName($position, "Position");
            IPS_SetPosition($position, 10);
            $duration = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($duration, $device);
            IPS_SetIdent($duration, "Duration");
            IPS_SetName($duration, "Dauer");
            IPS_SetPosition($duration, 11);
        }; //    if (IPS_ApplyChanges($device)) // Objekt angelegt?
    }; //    if (!$ishidden) // wenn Script nicht versteckt, dann los
}; //if ($_IPS['SENDER'] == "Execute")
//=============================================================================
if ($_IPS['SENDER'] == "WebFront")
{
    SqueezeInit($boxmac);
      SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
};
//=============================================================================
$deviceid = IPS_GetParent($_IPS['SELF']);
$powerID = IPS_GetObjectIDByIdent("Power", $deviceid);
$volumeID = IPS_GetObjectIDByIdent("Volume", $deviceid);
$modusID = IPS_GetObjectIDByIdent("Modus", $deviceid);
$repeatID = IPS_GetObjectIDByIdent("Repeat", $deviceid);
$shuffleID = IPS_GetObjectIDByIdent("Shuffle", $deviceid);
$coverID = IPS_GetObjectIDByIdent("Cover", $deviceid);
$albumID = IPS_GetObjectIDByIdent("Album", $deviceid);
$interpretID = IPS_GetObjectIDByIdent("Interpret", $deviceid);
$durationID = IPS_GetObjectIDByIdent("Duration", $deviceid);
$positionID = IPS_GetObjectIDByIdent("Position", $deviceid);
$titleID = IPS_GetObjectIDByIdent("Title", $deviceid);

if ($_IPS['VARIABLE'] == $powerID)
{
    SqueezePower($boxmac, $_IPS['VALUE']);
};

if ($_IPS['VARIABLE'] == $volumeID)
{
    SqueezeSetVolume($boxmac, $_IPS['VALUE']);
};

if ($_IPS['VARIABLE'] == $modusID)
{
    switch($_IPS['VALUE'])
    {
       case 0:
          SqueezeButton($boxmac, 'stop');
        break;
        case 1:
           SqueezeButton($boxmac, 'pause');
        break;
        case 2:
           SqueezeButton($boxmac, 'play');
        break;
        case 3:
           SqueezeButton($boxmac, 'jump_fwd');
        break;
        case 4:
           SqueezeButton($boxmac, 'jump_rew');
        break;
    };
};

if ($_IPS['VARIABLE'] == $repeatID)
{
    SqueezeSend($boxmac, "playlist repeat ".$_IPS['VALUE']);
};

if ($_IPS['VARIABLE'] == $shuffleID)
{
    SqueezeSend($boxmac, "playlist shuffle ".$_IPS['VALUE']);
};
?>

Auswertung:

<?php
/******************************************************************************
* Script-Name: Squeezebox Auswertescript.php                                           *
* Version: 2.0                                                                     *
* Autor: McKevin                                                                   *
* Erstellt am: 2011-11-02                                                          *
* Letzte Änderung am: 2012-09-23                                                 *
* Beschreibung: Ändert die IPS-Variablen in Abhängigkeit der Rückmeldung vom  *
*               Logitech Media Server je nach Gerät.                          *
* Changelog:   V1.0 (2011-11-02) Initial Release                              *
*              V2.0 (2012-09-23) Umstellung auf Idents, Code-Reduzierung      *
******************************************************************************/

//******** Definitionsbereich *************************************************
include_once "32229.ips.php";

//***** Scriptbereich *********************************************************
if ($_IPS['SENDER'] == "RegisterVariable") // wenn Daten von Registervariable kommen, dann
{
    $antwort = $_IPS['VALUE'];
    $array = explode(' ', $antwort); // Antwortstring in Array umwandeln
    $array[0] = urldecode($array[0]); // MAC in lesbares Format umwandeln
    // Ermittlung DeviceID aus MAC-Adresse
    // Bei Neugeräten hier die MAC-Adressen und IPS-DeviceIDs nachtragen
    switch ($array[0])
    {
        case SQArbeitszimmer: //MAC-Adresse
           $boxID = SQArbeitszimmerID; // ObjektID des Dummy-Moduls
           break;
//        case SQWohnzimmer:
//           $boxID = SQWohnzimmerID;
//           break;
//        case SQSchlafzimmer:
//           $boxID = SQSchlafzimmerID;
//           break;
//        case SQController:
//           $boxID = SQControllerID;
//           break;
//        case SQKinderzimmer:
//           $boxID = SQKinderzimmerID;
//           break;
//        case SQGaestezimmer:
//           $boxID = SQGaestezimmerID;
//           break;
//        case SQArbeitszimmer:
//           $boxID = SQArbeitszimmerID;
//           break;
    }; // switch

$powerID = IPS_GetObjectIDByIdent("Power", $boxID);
$volumeID = IPS_GetObjectIDByIdent("Volume", $boxID);
$modusID = IPS_GetObjectIDByIdent("Modus", $boxID);
$repeatID = IPS_GetObjectIDByIdent("Repeat", $boxID);
$shuffleID = IPS_GetObjectIDByIdent("Shuffle", $boxID);
$coverID = IPS_GetObjectIDByIdent("Cover", $boxID);
$albumID = IPS_GetObjectIDByIdent("Album", $boxID);
$interpretID = IPS_GetObjectIDByIdent("Interpret", $boxID);
$durationID = IPS_GetObjectIDByIdent("Duration", $boxID);
$positionID = IPS_GetObjectIDByIdent("Position", $boxID);
$titleID = IPS_GetObjectIDByIdent("Title", $boxID);

    // Werte aus der RegVar in die entsprechenden Variablen von IPS eintragen
    // Powertaste bei Änderung aktualisieren
    if ($array[1] == 'power')
    {
        if ($array[2] == '1')
        {
            SetValueBoolean($powerID, true);
        }
        else
        {
            SetValueBoolean($powerID, false);
        };
    };
    //Lautstärke bei Änderung aktualisieren
    if (($array[1] == 'prefset') and ($array[3] == 'volume'))
    {
        SetValue($volumeID, urldecode($array[4]));
    };
    // Repeat bei Änderung aktualisieren
    if (($array[1] == 'prefset') and ($array[3] == 'repeat'))
    {
        SetValue($repeatID, $array[4]);
    };
    // Shuffle bei Änderung aktualisieren
    if (($array[1] == 'prefset') and ($array[3] == 'shuffle'))
        SetValue($shuffleID, $array[4]);

    //Titel-Tag aktualisieren
    if (($array[1] == 'playlist') and ($array[2] == 'newsong'))
    {
        SetValue($titleID, utf8_decode(urldecode($array[3])));
        SetValue($modusID, 2); // Button auf play
        // Subscripe auf entsprechende Box für Anzeige der Laufzeit
        CSCK_SendText(SqueezeServer, $array[0]." status - 1 subscribe:2".chr(13));
        SqueezeSend($array[0], "artist ?");
        SqueezeSend($array[0], "album ?");
//        IPS_Sleep(10);
        cover($array[0], $coverID); // Cover anzeigen
    };
    // Album aktualisieren
    if ($array[1] == 'album')
    {
       SetValue($albumID, utf8_decode(urldecode($array[2])));
    };
    // Artist aktualisieren
    if ($array[1] == 'artist')
    {
       SetValue($interpretID, utf8_decode(urldecode($array[2])));
    };
    // Steuerungstasten im Webfront aktualisieren
    if ($array[1] == 'play')
    {
       SetValue($modusID, 2);
    };
    if ($array[1] == 'stop')
    {
       SetValue($modusID, 0);
    };
    if (($array[1] == 'pause') and ($array[2] == 1))
    {
       SetValue($modusID, 1);
    };
    if (($array[1] == 'pause') and ($array[2] == 0))
    {
       SetValue($modusID, 2);
    };
    if (($array[1] == 'button') and ($array[2] == 'jump_rew'))
    {
       SetValue($modusID, 4);
    };
    if (($array[1] == 'button') and ($array[2] == 'jump_fwd'))
    {
       SetValue($powerID, 3);
    };
    if (($array[1] == 'status') and ($array[4] == 'subscribe%3A2'))
    {
        foreach ($array as $item)
        {
            $item = utf8_decode(urldecode($item));
            $chunks = explode(":", $item);
            if ($chunks[0] == "time")
            {
                SetValue($positionID, date('i:s', $chunks[1]));
            };
            if ($chunks[0] == "duration")
            {
                SetValue($durationID, date('i:s', $chunks[1]));
            };
        };
    };
};
?>]

Hallo Fabian

vorab ich bin nicht der größte Experte in php, aber da bei mir die scripte laufen versuche ich dir zu helfen.

als Erstes: wenn du die diviceID im Steuerscript meinst, die musst du nicht angeben die sind durch das script definiert

als Zweites: welches script ist 54770 ???

gruß Remo

Hallo
Kann mir jemand sagen was ich falsch gemacht habe?

Steuerung

<?php
/******************************************************************************
* Script-Name: Squeezebox AZ Steuerung.php                                                 *
* Version: 2.0                                                                     *
* Autor: wgreipl & McKevin                                                        *
* Erstellt am: 2011-11-02                                                          *
* Letzte Änderung am: 2012-09-23                                                 *
* Beschreibung: Bei manueller Ausführung wird überprüft, ob Script versteckt    *
*               ist, wenn nein, dann wird ein neues Dummy-Modul erstellt mit  *
*               allen benötigten Variablen. Bei Steuerung über Webfront werden*
*               die Befehle ausgeführt und an die Squeezebox mit der gegebenen*
*               MAC-Adresse gesendet.                                         *
* Changelog:   V1.0 (2011-11-02) Initial Release                              *
*              V2.0 (2012-09-23) Erweiterung um Installer und Umstellung auf  *
*                                Idents zur einfacheren Ersteinrichtung       *
******************************************************************************/

//***** Definitionsbereich ****************************************************
include_once "16697 /*[Mulltiroom\Squeezebox\Squeezebox.inc.php]*/.inc.php";      // Squeezefunktions-Sammlung

//***** Konfigurationsbereich *************************************************
$boxmac = 'xx:xx:xx:xx:xx:20'; //SQArbeitszimmer      // Hier die Squeezebox-MAC-Adresse eintragen

//***** Scriptbereich *********************************************************
//INSTALLER
// Bei manueller Ausführung wird ein Dummy-Modul erstellt, welches mit den für
// die Benutzung wichtigen Variablen ausgestattet wird. Dieses Script verschiebt
// sich dann automatisch in dieses Objekt und wird unsichtbar im WebFront.
// Als Variablen (Idents) werden erstellt: Power, Volume, Modus, Repeat, Shuffle,
// Position, Cover, Interpret, Title, Album, Duration
if ($_IPS['SENDER'] == "Execute")
{
    $object = IPS_GetObject($_IPS['SELF']);    // Hole alle Scripteigenschaften
    $ishidden = $object['ObjectIsHidden']; // Script versteckt?

    if (!$ishidden) // wenn Script nicht versteckt, dann los
    {
        $device = IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}"); // erstellt Dummy-Modul
        if (IPS_ApplyChanges($device)) // prüft, ob device erstellt werden konnte
        {
            $parent = IPS_GetParent($_IPS['SELF']); // merke den Ort des Scriptes
            IPS_SetName($device, "Squeezebox");
            IPS_SetParent($device, $parent); // verschiebe Dummy-Modul zum Scriptort
            IPS_SetParent($_IPS['SELF'], $device); // verschiebe Script in Dummy-Modul
            IPS_SetHidden($_IPS['SELF'], true); // mache Script unsichtbar im Webfront
            $power = IPS_CreateVariable(0); // erstelle Boolean-Variable
            IPS_SetParent($power, $device); // verschiebe Variable in Dummy-Modul
            IPS_SetIdent($power, "Power"); // setze Ident Power
            IPS_SetName($power, "Power"); // bennene Variable in Power
            IPS_SetPosition($power, 1); // setze Position 1 für Visu
            IPS_SetVariableCustomProfile($power, "PowerSwitch"); // setze Schalterprofil
            IPS_SetVariableCustomAction($power, $_IPS['SELF']); // setze Aktion auf dieses Script
            $modus = IPS_CreateVariable(1); // Integervariable
            IPS_SetParent($modus, $device);
            IPS_SetIdent($modus, "Modus");
            IPS_SetName($modus, "Modus");
            IPS_SetPosition($modus, 2);
            IPS_SetVariableCustomProfile($modus, "Squeezebox_Status");
            IPS_SetVariableCustomAction($modus, $_IPS['SELF']); // setze Aktion auf dieses Script
            $volume = IPS_CreateVariable(1); // Integervariable
            IPS_SetParent($volume, $device);
            IPS_SetIdent($volume, "Volume");
            IPS_SetName($volume, "Lautstärke");
            IPS_SetPosition($volume, 3);
            IPS_SetVariableCustomProfile($volume, "Squeezebox_Volume");
            IPS_SetVariableCustomAction($volume, $_IPS['SELF']); // setze Aktion auf dieses Script
            $repeat = IPS_CreateVariable(1); // Integervariable
            IPS_SetParent($repeat, $device);
            IPS_SetIdent($repeat, "Repeat");
            IPS_SetName($repeat, "Repeat");
            IPS_SetPosition($repeat, 4);
            IPS_SetVariableCustomProfile($repeat, "Squeezebox_Repeat");
            IPS_SetVariableCustomAction($repeat, $_IPS['SELF']); // setze Aktion auf dieses Script
          IPS_SetIcon($repeat, "Gnome-Media-Playlist-Repeat-32"); // setze Icon
            $shuffle = IPS_CreateVariable(1); // Integervariable
            IPS_SetParent($shuffle, $device);
            IPS_SetIdent($shuffle, "Shuffle");
            IPS_SetName($shuffle, "Zufall");
            IPS_SetPosition($shuffle, 5);
            IPS_SetVariableCustomProfile($shuffle, "Squeezebox_function");
            IPS_SetVariableCustomAction($shuffle, $_IPS['SELF']); // setze Aktion auf dieses Script
          IPS_SetIcon($shuffle, "Gnome-Media-Playlist-Shuffle-32"); // setze Icon
            $interpret = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($interpret, $device);
            IPS_SetIdent($interpret, "Interpret");
            IPS_SetName($interpret, "Interpret");
            IPS_SetPosition($interpret, 6);
            $title = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($title, $device);
            IPS_SetIdent($title, "Title");
            IPS_SetName($title, "Titel");
            IPS_SetPosition($title, 7);
            $album = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($album, $device);
            IPS_SetIdent($album, "Album");
            IPS_SetName($album, "Album");
            IPS_SetPosition($album, 8);
            $cover = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($cover, $device);
            IPS_SetIdent($cover, "Cover");
            IPS_SetName($cover, "Cover");
            IPS_SetPosition($cover, 9);
            $position = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($position, $device);
            IPS_SetIdent($position, "Position");
            IPS_SetName($position, "Position");
            IPS_SetPosition($position, 10);
            $duration = IPS_CreateVariable(3); // Stringvariable
            IPS_SetParent($duration, $device);
            IPS_SetIdent($duration, "Duration");
            IPS_SetName($duration, "Dauer");
            IPS_SetPosition($duration, 11);
        }; //    if (IPS_ApplyChanges($device)) // Objekt angelegt?
    }; //    if (!$ishidden) // wenn Script nicht versteckt, dann los
}; //if ($_IPS['SENDER'] == "Execute")
//=============================================================================
if ($_IPS['SENDER'] == "WebFront")
{
    SqueezeInit($boxmac);
      SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
};
//=============================================================================
$deviceid = IPS_GetParent($_IPS['SELF']);
$powerID = IPS_GetObjectIDByIdent("Power", $deviceid);
$volumeID = IPS_GetObjectIDByIdent("Volume", $deviceid);
$modusID = IPS_GetObjectIDByIdent("Modus", $deviceid);
$repeatID = IPS_GetObjectIDByIdent("Repeat", $deviceid);
$shuffleID = IPS_GetObjectIDByIdent("Shuffle", $deviceid);
$coverID = IPS_GetObjectIDByIdent("Cover", $deviceid);
$albumID = IPS_GetObjectIDByIdent("Album", $deviceid);
$interpretID = IPS_GetObjectIDByIdent("Interpret", $deviceid);
$durationID = IPS_GetObjectIDByIdent("Duration", $deviceid);
$positionID = IPS_GetObjectIDByIdent("Position", $deviceid);
$titleID = IPS_GetObjectIDByIdent("Title", $deviceid);

if ($_IPS['VARIABLE'] == $powerID)
{
    SqueezePower($boxmac, $_IPS['VALUE']);
};

if ($_IPS['VARIABLE'] == $volumeID)
{
    SqueezeSetVolume($boxmac, $_IPS['VALUE']);
};

if ($_IPS['VARIABLE'] == $modusID)
{
    switch($_IPS['VALUE'])
    {
       case 0:
          SqueezeButton($boxmac, 'stop');
        break;
        case 1:
           SqueezeButton($boxmac, 'pause');
        break;
        case 2:
           SqueezeButton($boxmac, 'play');
        break;
        case 3:
           SqueezeButton($boxmac, 'jump_fwd');
        break;
        case 4:
           SqueezeButton($boxmac, 'jump_rew');
        break;
    };
};

if ($_IPS['VARIABLE'] == $repeatID)
{
    SqueezeSend($boxmac, "playlist repeat ".$_IPS['VALUE']);
};

if ($_IPS['VARIABLE'] == $shuffleID)
{
    SqueezeSend($boxmac, "playlist shuffle ".$_IPS['VALUE']);
};
?> 

da bekomme ich diesen Fehler

 PHP-Error-Warning: include_once(16697.inc.php): failed to open stream: No such file or directory
   Error in Script C:\IP-Symcon\scripts\34855.ips.php on Line 19
Warning:  include_once(16697.inc.php): failed to open stream: No such file or directory in C:\IP-Symcon\scripts\34855.ips.php on line 19
PHP-Error-Warning: include_once(): Failed opening '16697.inc.php' for inclusion (include_path='.;C:\php\pear')
   Error in Script C:\IP-Symcon\scripts\34855.ips.php on Line 19
Warning:  include_once(): Failed opening '16697.inc.php' for inclusion (include_path='.;C:\php\pear') in C:\IP-Symcon\scripts\34855.ips.php on line 19
PHP-Error-Notice: Undefined index: VARIABLE
   Error in Script C:\IP-Symcon\scripts\34855.ips.php on Line 136
Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\34855.ips.php on line 136
PHP-Error-Notice: Undefined index: VARIABLE
   Error in Script C:\IP-Symcon\scripts\34855.ips.php on Line 141
Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\34855.ips.php on line 141
PHP-Error-Notice: Undefined index: VARIABLE
   Error in Script C:\IP-Symcon\scripts\34855.ips.php on Line 146
Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\34855.ips.php on line 146
PHP-Error-Notice: Undefined index: VARIABLE
   Error in Script C:\IP-Symcon\scripts\34855.ips.php on Line 168
Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\34855.ips.php on line 168
PHP-Error-Notice: Undefined index: VARIABLE
   Error in Script C:\IP-Symcon\scripts\34855.ips.php on Line 173
Notice:  Undefined index: VARIABLE in C:\IP-Symcon\scripts\34855.ips.php on line 173
 

Auswerung

 <?php
/******************************************************************************
* Script-Name: Squeezebox Auswertescript.php                                           *
* Version: 2.0                                                                     *
* Autor: McKevin                                                                   *
* Erstellt am: 2011-11-02                                                          *
* Letzte Änderung am: 2012-09-23                                                 *
* Beschreibung: Ändert die IPS-Variablen in Abhängigkeit der Rückmeldung vom  *
*               Logitech Media Server je nach Gerät.                          *
* Changelog:   V1.0 (2011-11-02) Initial Release                              *
*              V2.0 (2012-09-23) Umstellung auf Idents, Code-Reduzierung      *
******************************************************************************/

//******** Definitionsbereich *************************************************
//echo get_include_path();
//set_include_path(get_include_path().":"."/Mulltiroom/Squeezebox");
//echo get_include_path();
include_once '16697 /*[Mulltiroom\Squeezebox\Squeezebox.inc.php]*/.inc.php';  


//***** Scriptbereich *********************************************************
if ($_IPS['SENDER'] == "RegisterVariable") // wenn Daten von Registervariable kommen, dann
{
    $antwort = $_IPS['VALUE'];
    $array = explode(' ', $antwort); // Antwortstring in Array umwandeln
    $array[0] = urldecode($array[0]); // MAC in lesbares Format umwandeln
    // Ermittlung DeviceID aus MAC-Adresse
    // Bei Neugeräten hier die MAC-Adressen und IPS-DeviceIDs nachtragen
    switch ($array[0])
    {
        case 'xx:xx:xx:xx:xx:20': //MAC-Adresse SQBadezimmer
           $boxID = SQBadezimmerID;  // ObjektID des Dummy-Moduls
           break;
        case SQWohnzimmer:
           $boxID = SQWohnzimmerID;
           break;
        case SQSchlafzimmer:
           $boxID = SQSchlafzimmerID;
           break;
        case SQController:
           $boxID = SQControllerID;
           break;
        case SQKinderzimmer:
           $boxID = SQKinderzimmerID;
           break;
        case SQGaestezimmer:
           $boxID = SQGaestezimmerID;
           break;
        case SQArbeitszimmer:
           $boxID = SQArbeitszimmerID;
           break;
    }; // switch

$powerID = IPS_GetObjectIDByIdent("Power", $boxID);
$volumeID = IPS_GetObjectIDByIdent("Volume", $boxID);
$modusID = IPS_GetObjectIDByIdent("Modus", $boxID);
$repeatID = IPS_GetObjectIDByIdent("Repeat", $boxID);
$shuffleID = IPS_GetObjectIDByIdent("Shuffle", $boxID);
$coverID = IPS_GetObjectIDByIdent("Cover", $boxID);
$albumID = IPS_GetObjectIDByIdent("Album", $boxID);
$interpretID = IPS_GetObjectIDByIdent("Interpret", $boxID);
$durationID = IPS_GetObjectIDByIdent("Duration", $boxID);
$positionID = IPS_GetObjectIDByIdent("Position", $boxID);
$titleID = IPS_GetObjectIDByIdent("Title", $boxID);

    // Werte aus der RegVar in die entsprechenden Variablen von IPS eintragen
    // Powertaste bei Änderung aktualisieren
    if ($array[1] == 'power')
    {
        if ($array[2] == '1')
        {
            SetValueBoolean($powerID, true);
        }
        else
        {
            SetValueBoolean($powerID, false);
        };
    };
    //Lautstärke bei Änderung aktualisieren
    if (($array[1] == 'prefset') and ($array[3] == 'volume'))
    {
        SetValue($volumeID, urldecode($array[4]));
    };
    // Repeat bei Änderung aktualisieren
    if (($array[1] == 'prefset') and ($array[3] == 'repeat'))
    {
        SetValue($repeatID, $array[4]);
    };
    // Shuffle bei Änderung aktualisieren
    if (($array[1] == 'prefset') and ($array[3] == 'shuffle'))
        SetValue($shuffleID, $array[4]);

    //Titel-Tag aktualisieren
    if (($array[1] == 'playlist') and ($array[2] == 'newsong'))
    {
        SetValue($titleID, utf8_decode(urldecode($array[3])));
        SetValue($modusID, 2); // Button auf play
        // Subscripe auf entsprechende Box für Anzeige der Laufzeit
        CSCK_SendText(SqueezeServer, $array[0]." status - 1 subscribe:2".chr(13));
        SqueezeSend($array[0], "artist ?");
        SqueezeSend($array[0], "album ?");
//        IPS_Sleep(10);
        cover($array[0], $coverID); // Cover anzeigen
    };
    // Album aktualisieren
    if ($array[1] == 'album')
    {
       SetValue($albumID, utf8_decode(urldecode($array[2])));
    };
    // Artist aktualisieren
    if ($array[1] == 'artist')
    {
       SetValue($interpretID, utf8_decode(urldecode($array[2])));
    };
    // Steuerungstasten im Webfront aktualisieren
    if ($array[1] == 'play')
    {
       SetValue($modusID, 2);
    };
    if ($array[1] == 'stop')
    {
       SetValue($modusID, 0);
    };
    if (($array[1] == 'pause') and ($array[2] == 1))
    {
       SetValue($modusID, 1);
    };
    if (($array[1] == 'pause') and ($array[2] == 0))
    {
       SetValue($modusID, 2);
    };
    if (($array[1] == 'button') and ($array[2] == 'jump_rew'))
    {
       SetValue($modusID, 4);
    };
    if (($array[1] == 'button') and ($array[2] == 'jump_fwd'))
    {
       SetValue($powerID, 3);
    };
    if (($array[1] == 'status') and ($array[4] == 'subscribe%3A2'))
    {
        foreach ($array as $item)
        {
            $item = utf8_decode(urldecode($item));
            $chunks = explode(":", $item);
            if ($chunks[0] == "time")
            {
                SetValue($positionID, date('i:s', $chunks[1]));
            };
            if ($chunks[0] == "duration")
            {
                SetValue($durationID, date('i:s', $chunks[1]));
            };
        };
    };
};
?> 

und hir bekomme ich den Fehler

  PHP-Error-Warning: include_once(16697.inc.php): failed to open stream: No such file or directory
   Error in Script C:\IP-Symcon\scripts\49224.ips.php on Line 18
Warning:  include_once(16697.inc.php): failed to open stream: No such file or directory in C:\IP-Symcon\scripts\49224.ips.php on line 18
PHP-Error-Warning: include_once(): Failed opening '16697.inc.php' for inclusion (include_path='.;C:\php\pear')
   Error in Script C:\IP-Symcon\scripts\49224.ips.php on Line 18
Warning:  include_once(): Failed opening '16697.inc.php' for inclusion (include_path='.;C:\php\pear') in C:\IP-Symcon\scripts\49224.ips.php on line 18
 

Squeezebox:

 <?php
/******************************************************************************
* Script-Name: Squeezebox.inc.php                                                       *
* Version: 2.1                                                                     *
* Autor: McKevin                                                                   *
* Erstellt am: 2011-10-24                                                          *
* Letzte Änderung am: 2012-10-02                                                 *
* Beschreibung: Squeezeserver Funktionen zum Inkludieren in anderen Scripten. *
* Dependencies: Logitech Media Server                                                 *
* Changelog:   V1.0 (2011-10-24) Initial Release                              *
*              V2.0 (2012-09-23) Umstellung auf Idents, Code-Reduzierung      *
*              V2.1 (2012-10-02) Bugfix SqueezePlayMessageFile() Resume       *
*              V2.2 (2012-10-11) neu: SqueezeSync() und SqueezeUnsync()         *
******************************************************************************/
//******** Konfigurationsbereich **********************************************
define('SqueezeServer', 50629); //ClientSocketID
define('SQserverIP', '10.0.0.100:9000');     //IP-Adresse und Port des Servers

// MAC-Adresse(n) auf verständliche Konstante(n) definieren
define('SQKinderzimmer',      'xx:xx:xx:xx:xx:20');
define('SQArbeitszimmer',  '00:04:20:xx:xx:xx');
define('SQSchlafzimmer',    '00:04:20:xx:xx:xx');
define('SQWohnzimmer',        '00:04:20:xx:xx:xx');
define('SQController',        '00:04:20:xx:xx:xx');
define('SQBadezimmer',         '00:04:20:xx:xx:xx');
define('SQGaestezimmer',    '00:04:20:xx:xx:xx');
$allPlayers = array(SQArbeitszimmer, SQGaestezimmer, SQSchlafzimmer, SQWohnzimmer,
                          SQController, SQBadezimmer, SQKinderzimmer);

// Definiere Lautstärken für Meldungen/Alarme (wichtig für SQB Radio)
//define('SQWarnung', GetValue(51287 ));
//define('SQNotificationHi', GetValue(23140 ));
//define('SQBAlarm', GetValue(57369 ));
//define('SQNotificationLo', GetValue(59840));

// definiere DeviceIDs auf verständliche Namen
define('SQSchlafzimmerID',  53258);
define('SQWohnzimmerID',    30996 );
define('SQControllerID',    53127);
define('SQBadezimmerID',    49224 /*[Mulltiroom\Squeezebox\Auswerte-Script]*/ );                 //53951
define('SQKinderzimmerID',  25212);
define('SQGaestezimmerID',  10834 /*[Program\IPSLibrary\data\modules\Weather\IPSTwilight\Values\Display]*/);
define('SQArbeitszimmerID', 28760);
$allPlayerIDs = array(SQSchlafzimmerID, SQWohnzimmerID, SQControllerID, SQGaestezimmer,
                             SQBadezimmerID, SQKinderzimmerID, SQArbeitszimmer);

// definiere MediaIDs für unterscheidbare Info-Töne vor Durchsagen
define('SQNotificationLoSound', 48707);
define('SQAlarmSound', 10190);
define('SQWarnungSound', 41201 );
define('SQNotificationHiSound', 23539 );

//********* ab hier nichts mehr ändern ****************************************
function SqueezeSend($box, $cmd)
// Allg. Funktion zum Befehle senden
// Wenn keine MAC-Adresse angegeben, dann sende an alle oben definierten Player
{
    if ($box == "")
    {
       foreach ($GLOBALS["allPlayers"] AS $box)
      {
            CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
        };
    }
    else
    {
    CSCK_SendText(SqueezeServer, $box." ".$cmd.chr(13));
    };
};
//=============================================================================
function SqueezeInit($box)
// Schaltet den Listenmodus der Box(en) an
{
    return SqueezeSend($box, 'listen 1');
};
//=============================================================================
function SqueezePowerOn($box)
// Schaltet die Squeezebox(en) an
{
    return SqueezeSend($box, 'power 1');
};
//=============================================================================
function SqueezePowerOff($box)
// Schaltet die Squeezebox(en) aus
{
    return SqueezeSend($box, 'power 0');
};
//=============================================================================
function SqueezePower($box , $on)
// Schaltet die Squeezebox(en) an oder aus
{
    $cmd = "power ";
    $cmd .= $on ? "1":"0";
    return SqueezeSend($box, $cmd);
};
//=============================================================================
function SqueezeUnSync($box)
// Nimmt den Player mit $box aus der Syncgruppe
{
    return SqueezeSend($box, 'sync -');
};
//=============================================================================
function SqueezeSync($box1mac, $box2mac)
// versucht box2 mit box1 zu syncronisieren
{
    return SqueezeSend($box1mac, 'sync '.$box2mac);
};
//=============================================================================
function SqueezeSetVolume($box, $value)
// Setzt Lautstärke 0...100
{
    return SqueezeSend($box, 'mixer volume '.$value);
};
//=============================================================================
function cover($player_id, $var_id)
// setzt die $var_id mit dem Coverbild von $player_id
{
    $time = time();
    $str = "<table width='100%' cellspacing='0'><tr><td align=right>";
    $str = $str."<img src='http://".SQserverIP."/music/current/cover_150x150_$time.jpg?player=$player_id'></img>";
    $str = $str."</td></tr></table>";
    SetValue($var_id, $str);
};
//=============================================================================
function SqueezeButton($box , $bt)
// Sendet einen Tastendruck
{
  return SqueezeSend($box, "button ".$bt);
};
//=============================================================================
// _Under Development
function SqueezeShowMessage($box, $value1, $value2)
{
  return SqueezeSend($box, 'show '.$value1);
};
//=============================================================================
function SqueezePlayMessageFile($box, $DeviceID, $MedienID, $mType)
// Spielt eine IPS-Mediendatei ab
// $box = MAC-Adresse der Squeezebox
// $DeviceID = ObjektID der Dummy-Instanz passend zur MAC-Adresse
// $MedienID = ID des Soundfiles (MP3 oder WAV)
// $mType = Messagetyp (SQNotificationHi/Lo, SQWarnung, SQAlarm = Lautstärke in %);
{
    $wait = 15; // Wartezeit in sec bis alte Playlist wiederhergestellt wird
    switch ($mType) // Spiele verschiedene Klänge als Aufmerksamkeitssteigerung je nach Lautstärke (SQNotification..)
    {
        case SQNotificationLo:
            $mediaarray1 = IPS_GetMedia(SQNotificationLoSound);  // hole Medieninformationen
            break;
        case SQNotificationHi:
            $mediaarray1 = IPS_GetMedia(SQNotificationHiSound);  // hole Medieninformationen
            break;
        case SQWarnung:
            $mediaarray1 = IPS_GetMedia(SQWarnungSound);  // hole Medieninformationen
            break;
        case SQBAlarm:
            $mediaarray1 = IPS_GetMedia(SQAlarmSound);  // hole Medieninformationen
            break;
        default:
         // kein Klang zur Unterscheidung
    };
    $mediapath1 = rawurlencode(IPS_GetKernelDir().$mediaarray1['MediaFile']);     // hole Medienpfad

    if (!(array_search($box, $GLOBALS["allPlayers"]) !== false)) // Prüfe, ob MAC-Adrese definiert, sonst Abbruch
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageFile:Device mit MAC".$box." existiert nicht");
       return false;
    };
    if (!IPS_InstanceExists($DeviceID)) // Prüfe, ob Device mit $DeviceID existiert, sonst Abbruch
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageFile:Device mit ".$DeviceID." existiert nicht");
       return false;
    };
    if (IPS_MediaExists($MedienID))     // Prüfe, ob MedienObjekt mit der $MedienID existiert, sonst Abbruch
    {
        $mediaarray2 = IPS_GetMedia($MedienID);  // hole Medieninformationen
        // Prüfe, ob Medien-Datei vorhanden und Sound-File
        if (($mediaarray2['IsAvailable'] == true) && ($mediaarray2['MediaType'] == 2))
        {
            $mediapath2 = rawurlencode(IPS_GetKernelDir().$mediaarray2['MediaFile']);     // hole Medienpfad
//            IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageFile:MediaPath: ".$mediapath);
        }
        else     // Datei nicht vorhanden oder kein Soundfile--> Logeintrag in IPS-Meldungen
         {
            IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageFile:MedienID $MedienID ist nicht vorhanden oder keine WAV/MP3-Datei");
            return false; // Abbruch der Funktion mit false-Rückgabe
        };
        // Speichere Status (Power, Modus, Lautstärke, Playlist, Zeitposition)
        $status_old = GetValue(IPS_GetObjectIDByIdent("Power", $DeviceID));    // Status Box An oder Aus
        $modus_old  = GetValue(IPS_GetObjectIDByIdent("Modus", $DeviceID));  // Modus merken (Play Pause Stop)
        $volume_old = GetValue(IPS_GetObjectIDByIdent("Volume", $DeviceID));    // aktuelle Lautstärke der Box zwischenspeichern
        $time_old = GetValue(IPS_GetObjectIDByIdent("Position", $DeviceID));    // Position des aktuellen Titels merken (float Sekunden)
        $repeat = GetValue(IPS_GetObjectIDByIdent("Repeat", $DeviceID));     // War Repeat aktiviert?
        SqueezeSend($box, "playlist repeat 0"); // Repeat deaktivieren
        SqueezeSend($box, "playlist save TEMP0 silent 1"); // aktuelle Playlist speichern
        SqueezeSend($box, "playlist clear"); // Aktuelle Wiedergabeliste löschen
          SqueezeSend($box, "playlist add ".$mediapath1);// neue Wiedergabeliste schreiben mit abzuspielende Datei (1. Datei)
        SqueezeSend($box, "playlist insert ".$mediapath2); // Wiedergabeliste ergänzen mit abzuspielende Datei (2. Datei)
        SqueezeSetVolume($box, $mType); // Definierte Message-Lautstärke setzen
        SqueezeSend($box, "play");        // Abspielen
        // Warten bis Audiodatei(en) abgespielt wurden (Script anhalten)
        IPS_Sleep($wait*1000); // x sec Script anhalten für Durchsage
//        SqueezeSend($box, "playlist clear"); // Temporäre Wiedergabeliste wieder löschen
        SqueezeSetVolume($box, $volume_old); // alte Lautstärke setzen
        SqueezeSend($box, "playlist resume TEMP0 noplay");         // Alte Wiedergabeliste wieder herstellen
        SqueezeSend($box, "playlist repeat ".$repeat); // Repeat wieder herstellen
        SqueezeSend($box, "time ".$time_old); // an die alte Stelle springen
        switch ($modus_old)
        {
            case 0: // Stop
                $cmd = "stop";
               break;
           case 1: // Pause
              $cmd = "pause 1";
              break;
           case 2: // Play
                $cmd = "play";
              break;
        };
        SqueezeSend($box, $cmd); // alten Modus wieder einstellen
        if ($cmd == "play" or $cmd == "pause 1") SqueezeSend($box, "time ".$time_old);
        if (!$status_old) SqueezePowerOff($box); // War die Box zuvor aus wieder ausschalten
    };
  return true;
};
//=============================================================================
function SqueezePlayMessageText($box, $DeviceID, $text, $mType)
// Spielt ein Text via TTS auf der Squeezebox ab
// $box = MAC-Adresse der Squeezebox
// $DeviceID = ObjektID der Dummy-Instanz passend zur MAC-Adresse
// $text = String der ausgegeben werden soll
// $mType = Messagetyp (SQNotificationHi/Lo, SQWarnung, SQAlarm = Lautstärke in %);
{
    $wait = 15; // Wartezeit in sec bis alte Playlist wiederhergestellt wird
    $wait_generate = 5; // Wartezeit in sec zur vollständigen Dateigenerierung
    TTS_GenerateFile(31964, $text, "C:\IP-Symcon\TTS.wav", 23); // Generiere WAV-Datei aus Text
    IPS_Sleep($wait_generate*1000); // Warte x sec für die Generierung der Datei
    switch ($mType) // Spiele verschiedene Klänge als Aufmerksamkeitssteigerung je nach Lautstärke (SQNotification..)
    {
        case SQNotificationLo:
            $mediaarray1 = IPS_GetMedia(SQNotificationLoSound);  // hole Medieninformationen
            break;
        case SQNotificationHi:
            $mediaarray1 = IPS_GetMedia(SQNotificationHiSound);  // hole Medieninformationen
            break;
        case SQWarnung:
            $mediaarray1 = IPS_GetMedia(SQWarnungSound);  // hole Medieninformationen
            break;
        case SQBAlarm:
            $mediaarray1 = IPS_GetMedia(SQAlarmSound);  // hole Medieninformationen
            break;
        default:
         // kein Klang zur Unterscheidung
    };
    $mediapath1 = rawurlencode(IPS_GetKernelDir().$mediaarray1['MediaFile']);     // hole Medienpfad

    if (!(array_search($box, $GLOBALS["allPlayers"]) !== false)) // Prüfe, ob MAC-Adrese definiert, sonst Abbruch
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageText:Device mit MAC".$box." existiert nicht");
       return false;
    };
    if (!IPS_InstanceExists($DeviceID)) // Prüfe, ob Device mit $DeviceID existiert, sonst Abbruch
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageText:Device mit ".$DeviceID." existiert nicht");
       return false;
    };
    if (is_file('C:/IP-Symcon/TTS.wav'))     // Prüfe, ob MedienObjekt mit der $MedienID existiert, sonst Abbruch
    {
        $mediapath2 = rawurlencode(IPS_GetKernelDir().'TTS.wav');     // hole Medienpfad
    }
    else     // Datei nicht vorhanden--> Logeintrag in IPS-Meldungen
    {
        IPS_LogMessage($_IPS['SELF'], "SqueezePlayMessageText: TTS.wav ist nicht vorhanden.");
        return false; // Abbruch der Funktion mit false-Rückgabe
    };
    // Speichere Status (Power, Modus, Lautstärke, Playlist, Zeitposition)
    $status_old = GetValue(IPS_GetObjectIDByIdent("Power", $DeviceID));    // Status Box An oder Aus
    $modus_old  = GetValue(IPS_GetObjectIDByIdent("Modus", $DeviceID));  // Modus merken (Play Pause Stop)
    $volume_old = GetValue(IPS_GetObjectIDByIdent("Volume", $DeviceID));    // aktuelle Lautstärke der Box zwischenspeichern
    $time_old = GetValue(IPS_GetObjectIDByIdent("Position", $DeviceID));    // Position des aktuellen Titels merken (float Sekunden)
    $repeat = GetValue(IPS_GetObjectIDByIdent("Repeat", $DeviceID));     // War Repeat aktiviert?
    SqueezeSend($box, "playlist repeat 0"); // Repeat deaktivieren
    SqueezeSend($box, "playlist save TEMP0 silent 1"); // aktuelle Playlist speichern
    SqueezeSend($box, "playlist clear"); // Aktuelle Wiedergabeliste löschen
     SqueezeSend($box, "playlist add ".$mediapath1);// neue Wiedergabeliste schreiben mit abzuspielende Datei (1. Datei)
    SqueezeSend($box, "playlist insert ".$mediapath2); // Wiedergabeliste ergänzen mit abzuspielende Datei (2. Datei)
    SqueezeSetVolume($box, $mType); // Definierte Message-Lautstärke setzen
    SqueezeSend($box, "play");        // Abspielen
    // Warten bis Audiodatei(en) abgespielt wurden (Script anhalten)
    IPS_Sleep($wait*1000); // x sec Script anhalten für Durchsage
//        SqueezeSend($box, "playlist clear"); // Temporäre Wiedergabeliste wieder löschen
    SqueezeSetVolume($box, $volume_old); // alte Lautstärke setzen
    SqueezeSend($box, "playlist resume TEMP0 noplay");         // Alte Wiedergabeliste wieder herstellen
    SqueezeSend($box, "playlist repeat ".$repeat); // Repeat wieder herstellen
    SqueezeSend($box, "time ".$time_old); // an die alte Stelle springen
    switch ($modus_old)
    {
        case 0: // Stop
            $cmd = "stop";
           break;
       case 1: // Pause
          $cmd = "pause 1";
          break;
       case 2: // Play
            $cmd = "play";
          break;
    };
    SqueezeSend($box, $cmd); // alten Modus wieder einstellen
    if ($cmd == "play" or $cmd == "pause 1") SqueezeSend($box, "time ".$time_old);
    if (!$status_old) SqueezePowerOff($box); // War die Box zuvor aus wieder ausschalten
    return true;
};
?> 

Ich spiel mich schon seit tagen und komm nicht weiter
Für ein wenig hilfe wäre ich sehr dankbar

Grüße
Rupert

Lösch alles und nimm das hier:
[Modul] Squeezebox (Testversion)
Michael