GetLEDState() . "\n"; $sonos->SetLEDState(true); echo "\n LED: " . $sonos->GetLEDState() . "\n"; IPS_Sleep(600); $sonos->SetLEDState(false); echo "\n LED: " . $sonos->GetLEDState() . "\n"; IPS_Sleep(600); $sonos->SetLEDState("On"); echo "\n LED: " . $sonos->GetLEDState() . "\n"; // ******************************* /LEDSTATE EXAMPLE *********************************************/ /* ****************************** ZONEATTR AND INFO EXAMPLE *********************************** $ZoneAttributes = $sonos->GetZoneAttributes(); print_r( $ZoneAttributes); $ZoneInfo = $sonos->GetZoneInfo(); print_r( $ZoneInfo); // ******************************* /ZONEATTR AND INFO EXAMPLE ************************************/ /* ****************************** AddMember and RemoveMember EXAMPLE**************************** $AddMember = $sonos->AddMember("RINCON_000E5825411201400"); echo "\nDEBUG AddMember:\n"; print_r( $AddMember); // Talk to slave $sonos = new PHPSonos("192.168.0.111"); //Slave Sonos ZP IPAddress echo "\n"; $ret = $sonos->SetAVTransportURI("x-rincon:" . "RINCON_000E5832FB5C01400"); echo "\nDEBUG SetAVTransportURI to "."x-rincon:" . "RINCON_000E5832FB5C01400" ."\n"; // Playing starts IPS_Sleep(1000); // Talk to Coord $sonos = new PHPSonos("192.168.0.115"); //Sonos ZP IPAdresse $RemoveMember = $sonos->RemoveMember("RINCON_000E5825411201400"); echo "\nDEBUG RemoveMember:\n"; print_r( $RemoveMember); // Talk to slave $sonos = new PHPSonos("192.168.0.111"); //Slave Sonos ZP IPAddress // needed for stop of playback on Slave $sonos->SetAVTransportURI(""); echo "\nDEBUG SetAVTransportURI to NONE \n"; //Playing stops // ****************************** /AddMember and RemoveMember EXAMPLE****************************/ $sonos = new PHPSonos("192.168.0.111"); //Sonos ZP IPAdresse // ****************************** Volume Ramp EXAMPLE****************************/ // echo "RampTime: ". $sonos->RampToVolume("SLEEP_TIMER_RAMP_TYPE",40) . "\n"; // ****************************** /Volume Ramp EXAMPLE****************************/ /****************************** Crossfade EXAMPLE**************************** echo "GetCrossfadeMode: ". $sonos->GetCrossfadeMode() . "\n"; IPS_Sleep(1000); echo "SetCrossfadeMode true: ". $sonos->SetCrossfadeMode(true) . "\n"; echo "GetCrossfadeMode: ". $sonos->GetCrossfadeMode() . "\n"; IPS_Sleep(1000); echo "SetCrossfadeMode false: ". $sonos->SetCrossfadeMode(false) . "\n"; echo "GetCrossfadeMode: ". $sonos->GetCrossfadeMode() . "\n"; // ****************************** /Crossfade EXAMPLE****************************/ /****************************** SaveQueue EXAMPLE**************************** echo "SaveQueue as TEST (SONOS Playlist): ". $sonos->SaveQueue("Test") . "\n"; // ****************************** /SaveQueue EXAMPLE****************************/ /****************************** Playlists EXAMPLE**************************** $sonoslists=$sonos->GetSONOSPlaylists(); print_r($sonoslists); foreach($sonoslists as $sonoslist) { if ($sonoslist['title']=='Test') $id=$sonoslist['id']; } echo $id . "\n"; $sonos->SaveQueue("Test",$id); echo "\n====================\n"; $arrpl=$sonos->GetImportedPlaylists(); print_r($arrpl); // ****************************** /Playlists EXAMPLE****************************/ /* ****************************** Meldung/Message EXAMPLE*********************** $sonos = new PHPSonos("192.168.0.115"); //Sonos ZP IPAdresse $vol=$sonos->GetVolume(); // br_TTS_Speak($IDMediaPlayer,"Test Meldung",1*1000); // Ramp down $sonos->SetVolume($vol/100*40); IPS_Sleep(100); $sonos->SetVolume($vol/100*10); // Saving off information $oldpi = $sonos->GetPositionInfo(); $oldmi = $sonos->GetMediaInfo(); print_r($oldpi); $oldti = $sonos->GetTransportInfo(); // Setting AVT to IPS-Meldung $sonos->SetVolume($vol/100*70); $sonos->SetAVTransportURI("x-file-cifs://touch/IP-Symcon$/media/Meldung.wav"); $sonos->Play(); $sonos->SetVolume($vol); while ($sonos->GetTransportInfo()==1){ // Wait here for Meldung IPS_Sleep(30); } $sonos->SetVolume($vol/100*60); // Setting old queue $sonos->SetAVTransportURI($oldmi['CurrentURI'],$oldmi['CurrentURIMetaData']); try { // Seek TRack_Nr $sonos->Seek("TRACK_NR",$oldpi['Track']); // Seek REl_time $sonos->Seek("REL_TIME",$oldpi['RelTime']); } catch (Exception $e) { // Seek not posssible } // Only play if old pi is PLAYING if ($oldti==1) $sonos->Play(); $sonos->SetVolume($vol); /* ****************************** / Meldung/Message EXAMPLE***********************/ /* Test br */ //if($sonos->SubscribeMRAVTransport()) echo "SUBCRIBE !!!! true"; /* $AddMember = $sonos->AddMember("RINCON_000E5825411201400"); echo "\nDEBUG AddMember:\n"; print_r( $AddMember); // Talk to slave $sonos = new PHPSonos("192.168.0.111"); //Slave Sonos ZP IPAddress echo "\n"; $ret = $sonos->SetAVTransportURI("x-rincon:" . "RINCON_000E5832FB5C01400"); echo "\nDEBUG SetAVTransportURI to "."x-rincon:" . "RINCON_000E5832FB5C01400" ."\n"; // Playing starts */ /* ****************************** Browse EXAMPLE********************** $sonoslists=$sonos->GetSONOSPlaylists(); print_r($sonoslists); foreach($sonoslists as $sonoslist) { if ($sonoslist['title']=='Test') $id=$sonoslist['id']; } echo "\n===============================================================\n"; $browseliste = $sonos->Browse("SQ:53","c"); print_r($browseliste); echo "\n===============================================================\n"; /* ****************************** /Browse EXAMPLE***********************/ /* ****************************** GetAlarmTime EXAMPLE*********************** print_r($sonos->ListAlarms()); /* ****************************** GetAlarmTime EXAMPLE*********************** /* ****************************** Subcribe **********************************/ $sonos = new PHPSonos("192.168.0.115"); //Sonos ZP IPAdresse echo($sonos->SubscribeMRAVTransport('http://192.168.0.5:6666')); echo($sonos->SubscribeZPGroupManagement('http://192.168.0.5:6666')); /* ****************************** /Subcribe **********************************/ // http://www.ip-symcon.de/forum/f53/php-sonos-klasse-ansteuern-einzelner-player-7676/index12.html#post125724 //$sonos->SetRadio("x-rincon-mp3radio://streams.br-online.de/bayern3_2.asx", "Bayern 3"); //$sonos->Play(); /* ************ Queue Dump to htmlvar *********************** $sonoscurrentlist=$sonos->GetCurrentPlaylist(); $title=""; foreach($sonoscurrentlist as $sonoslist) { $title.=($sonoslist ['title'])."
"; //,= ist anhängen } SetValueString (24524, $title); /*************************************************************** $VarProfileName="pl_anz_play"; if (IPS_VariableProfileExists($VarProfileName)==False) { IPS_CreateVariableProfile($VarProfileName,1); IPS_SetVariableProfileAssociation($VarProfileName, 0, "Anzeigen","",-1); IPS_SetVariableProfileAssociation($VarProfileName, 1, "Play","",-1); } $sonoslists=$sonos->GetSONOSPlaylists(); // DEBUG print_r($sonoslists); // ...wo sollen die ganzen Vars hin $ParentID=(int)33498; // ...wo sollen die ganzen Vars hin $position=1; foreach($sonoslists as $sonoslist) { $id = CreateVariableByName($ParentID, "test",VAR_TYPE_INTEGER); $id = CreateVariableByName($ParentID, $sonoslist['title'],VAR_TYPE_INTEGER); IPS_SetVariableCustomProfile($id, "pl_anz_play"); IPS_SetPosition($id, ++$position); $test=IPS_SetVariableCustomAction($id, 45245 ); SetValueInteger($id, -1); // Wert setzen auf -1 $position++; } */ /******************************************************************************************* // Selectvar Webfront $RadioFavSelID=(int)25828; // Data var $RadioFavDataID=(int)36980; // Hide data var IPS_SetHidden($RadioFavDataID,true); $sonos = new PHPSonos("192.168.0.115"); //Sonos ZP IPAdresse $VarProfileName="RadioFavSel"; if (IPS_VariableProfileExists($VarProfileName)==true) { echo "\nDEBUG: profile exists ... delete\n"; IPS_DeleteVariableProfile($VarProfileName); } $ret=IPS_CreateVariableProfile($VarProfileName,1); echo "\nDEBUG: profile create ret is !".$ret."!\n"; IPS_SetVariableCustomProfile($RadioFavSelID, $VarProfileName); $test=IPS_SetVariableCustomAction($RadioFavSelID, 45245 ); $browselist = $sonos->Browse("R:0/0","c"); // Safe off Data SetValue($RadioFavDataID, serialize($browselist)); print_r($browselist); $position=0; $ret2=0; foreach($browselist as $radiofav) { $ret2=IPS_SetVariableProfileAssociation($VarProfileName, $position, $radiofav['title'],"",-1); // echo "\nDEBUG: assoc !".$radiofav['title']."!!".$ret2."!".$radiofav['res']."!\n"; $position++; } echo "\n\n!!"; var_dump(urldecode($browselist[0]['res'])); echo "!!\n\n"; // Play $sonos->SetRadio(urldecode($browselist[0]['res'])); // $sonos->SetRadio("x-sonosapi-stream:s90495?sid=254&flags=32","Test"); $sonos->Play(); ***************************************************************/ /***************************** TUNEIN TEST ***************************** $sonos = new PHPSonos("192.168.0.115"); //Sonos ZP IPAdresse $mi=$sonos->GetMediaInfo(); //print_r($mi); $station=preg_replace("#(.*)x-sonosapi-stream:(.*?)\?sid(.*)#is",'$2',$mi['CurrentURI']); //echo $station; $content = @file_get_contents("http://opml.radiotime.com/Describe.ashx?c=nowplaying&id=".$station); echo $content; $albumArtURI=preg_replace("#(.*)(.*?)\(.*)#is",'$2',$content); echo $albumArtURI; ******************************************************************************/ /************************* GetCurrentTransportActions TEST********************************************************** $sonos = new PHPSonos("192.168.0.115"); //Sonos ZP IPAdresse $sonos->SetRadio("x-rincon-mp3radio://streams.br-online.de/bayern3_2.asx", "Bayern 3"); $sonos->Play(); $oldpi = $sonos->GetPositionInfo(); $oldmi = $sonos->GetMediaInfo(); print_r($oldpi); print_r($oldmi); // print_r($sonos->GetCurrentTransportActions()); ************************** /GetCurrentTransportActions TEST *************************************/ /* $sonos = new PHPSonos("192.168.0.115"); //Sonos ZP IPAdresse print_r($sonos->GetZoneAttributes()); */ /********************* INVISIBLE EXAMPLE ************************************** // Be careful with using the code below!!! $sonos = new PHPSonos("192.168.0.115"); //Sonos ZP IPAdresse echo "\nSet Inv true: "; $sonos->SetInvisible(true); echo "\nGet Inv: "; print_r($sonos->GetInvisible()); echo "\nSet Inv false: "; $sonos->SetInvisible(false); echo "\nGet Inv: "; print_r($sonos->GetInvisible()); *********************** /INVISIBLE EXAMPLE ********************************************/ /************************ simplexml status test ************************************* // http://www.trautner.net/313-sonos-mit-gira-homeserver-steuern **/ function getStatus($zoneplayerIp) { $url = "http://" . $zoneplayerIp . ":1400/status/zp"; $xml = simpleXML_load_file($url); return $xml->ZPInfo->SoftwareVersion; } echo getStatus("192.168.0.115"); ?>