IP-Symcon Kuckucksuhr (SONOS)

Hier ein IP-Symcon Klassiker die IP-Symcon Kuckucksuhr (Link zur WAE-Datei) nun neu mit der Soundausgabe des Kuckucks über das SONOS-Soundsystem.
Das folgende Skript überprüft zunächst, ob Musik abgespielt wird. Ist dies der Fall, werden die aktuelle Lautstärke sowie die URL des Radiosenders in Variablen gespeichert. Dach wird der Kuckuck abgespielt. Zu beachten ist, dass man das Skript nur für Radiostreams verwenden sollte, da die Playlist überschrieben wird.
Man das kann Skript selbstverständlich modifizieren und z.B. einen „Dorbell-Sound“ ausgeben, wenn es an der Tür geläutet hat oder einen Hinweis (Alarm) ausgeben

Link zur PHP-Sonos

// !!! Trigger: stündlich !!!

include("PHPSonos.inc.php");

$sonos = new PHPSonos("123.45.67.890"); 	//Sonos ZP IPAdresse
$status = $sonos->GetTransportInfo();     // 1: PLAYING, 2: PAUSED, 3: STOPPED
$hour = date("h");      						// wie spät - Stunden
$sleep = ($hour * 500)+ 1000;  				// Wartezeit berechnunen

if ($status == 1){
	$volume = $sonos->GetVolume();         // Lautstärke merken
	$posInfo = $sonos->GetPositionInfo();
	$uri = $posInfo['URI'];                // URL merken
	$sonos->ClearQueue(); 						//Playlist löschen
	$sonos->AddToQueue("x-file-cifs://Share/sound/cuckoo/cuckoo".$hour.".wav"); //Datei hinzufügen
	$sonos->SetQueue("x-rincon-queue:RINCON_"."000E58507DEA"."01400#0");
	$sonos->SetVolume(25); //0-100 in %
	$sonos->Play();
	IPS_Sleep($sleep);
	$sonos->SetVolume($volume);
	$sonos->SetRadio($uri);
	$sonos->Play();
}else{
	$sonos->ClearQueue(); 							//Playlist löschen
	$sonos->AddToQueue("x-file-cifs://Share/sound/cuckoo/cuckoo".$hour.".wav"); //Datei hinzufügen
	$sonos->SetQueue("x-rincon-queue:RINCON_"."000E58507DEA"."01400#0");
	$sonos->SetVolume(25); //0-100 in %
	$sonos->Play();
}

Hallo zsammen,

habe heute das Script in Betrieb genommen. Funktioniert super. Wird mir allerdings ohne Fehlermeldung als ‚fehlerhaft‘ markiert.
Anbei das Script.

<?

// !!! Trigger: stündlich !!!

include("PHPSonos.inc.php");

$Player_IP = $sonosKeller;
$sonos = new PHPSonos($Player_IP);     //Sonos ZP IPAdresse
$onOffLine = getvalue(42546  /*[Logisch\MultiMedia\Sonos\Keller\OnlineOffline]*/);
//$hour = date("h");                              // wie spät - Stunden
$hour = '02'; // zum testen reichen 2
//echo $hour;
$sleep = ($hour * 2500)+ 1000; // Wartezeit berechnunen // angepasst auf HahnkrähLänge

if ($onOffLine)
{
   $status = $sonos->GetTransportInfo();     // 1: PLAYING, 2: PAUSED, 3: STOPPED
    if ($status == 1)
    {
        $volume = $sonos->GetVolume();         // Lautstärke merken
        $posInfo = $sonos->GetPositionInfo();
        $uri = $posInfo['URI'];                // URL merken
        $sonos->ClearQueue();                         //Playlist löschen
        $sonos->AddToQueue("x-file-cifs://laptop01/media/Sounds/Hahn/rooster".$hour.".mp3"); //Datei hinzufügen
        $sonos->SetQueue($sonosKellerRinCon); // ist in __autoload // org: "x-rincon-queue:RINCON_"."000E58F9B108"."01400#0"
        $sonos->SetVolume(25); //0-100 in %
        $sonos->Play();
        IPS_Sleep($sleep);
        $sonos->SetVolume($volume);
        $sonos->SetRadio($uri);
        $sonos->Play();
    }
    else
    {
        $sonos->ClearQueue();                             //Playlist löschen
        $sonos->AddToQueue("x-file-cifs://laptop01/media/Sounds/Hahn/rooster".$hour.".mp3"); //Datei hinzufügen
        $sonos->SetQueue($sonosKellerRinCon); // org: "x-rincon-queue:RINCON_"."000E58F9B108"."01400#0"
        $sonos->SetVolume(25); //0-100 in %
        $sonos->Play();
    }
}

?>

Hat jemand eine Idee warum?

Im Anhang findet ihr den bekannten Kuckuksuhr-Sound mit 1.5 sek Pausen zwischen den Rufen, einen original KuckucksRuf (1-10 Originalton, 11 + 12 zusammengeschnitten) und einen krähenden Hahn (zusammengeschnitten) und eine 1,5 Sek Pause mp3 zum einbauen in eigene Schnitte bei Bedarf.
Geschnitten online unter http://123apps.com/de/
Link zu den Sounds

Hast du manuell (Strg-E) getestet? Sind alle Variablen/Werte vorhanden?

Hallo Ralf,

führe das Script wieder nur manuell aus, bis der „Fehler“ behoben ist.

Wenn irgend welche Variablen / Werte nicht vorhanden wären, würde das Script die nicht unter Angabe von Variable / Wert und Zeile anmeckern?

Und da es ja funktioniert, wo soll ich it der Suche ansetzen?

Getestet:
Sonosip manuell: ohne Erfolg
onOffLine manuell: ohne Erfolg
hour automatisch: ohne Erfolg
sleep auf Standard von Steiner zurück gesetzt oder auf $hour * 3000 gesetzt, beides ohne Erfolg

Mehr gibts ja wohl nicht.

Noch eine Idee?

Behoben.

IPS-Konsole zu u wieder auf.

Sorry für die Umstände und viel Spass mit den „neuen“ Tönen.