Script für Samsung MultiRoom Audio R1 WAM1500

Moin,

da ich einen Lautsprecher mit WLAN und Bluetooth gesucht habe hab ich mich für den Samsung R1 entschieden.

Und hier dafür meine Scripte:

Status Abfrage:

<?
//IP
$ip = "192.168.2.203";
//ID Mode Bool
$mode = 17708 /*[I/O\Insel\Geräte\Samsung R1 Bad\Radio\Mode]*/; 
//ID Was läuft String
$was = 33008 /*[I/O\Insel\Geräte\Samsung R1 Bad\Radio\Was läuft]*/;
//Status auslesen
$url = "http://" . $ip . ":55001/CPM?cmd=%3Cname%3EGetRadioInfo%3C/name%3E";
 	
        // create curl resource 
        $ch = curl_init(); 

        // set url 
        curl_setopt($ch, CURLOPT_URL, $url); 

        //return the transfer as a string 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

        // $output contains the output string 
        $output = curl_exec($ch); 
		
        // close curl resource to free up system resources 
        curl_close($ch); 
		
			
$part = explode("
", $output);    
	
		
//print_r($part);	
$info = extractStringBetween(">", "<", $part[1]);
if(strcmp($info[0], "TuneIn") == 0)
{

	//Was läuft
	$img = extractStringBetween(">", "<", $part[6]);
	$text = extractStringBetween(">", "<", $part[5]);
	$string = "<html> <img src=\"" . $img[0]  . "\" width=\"150\" height=\"90\" align=\"middle\"> Sendung: " . $text[0] . "</html>";
    SetValue($was , $string);

	//Play
	$mode = extractStringBetween(">", "<", $part[11]);
	if(strcmp($mode[0], "play") == 0)
	{
		SetValue($mode, true);
	}else{
	 	SetValue($mode, false);
	} 


}else{
	//Nixs an
	SetValue($was , "Kein Radio angewählt");
	SetValue($mode, false);
}





//Ausschneiden
function extractStringBetween($cFirstChar, $cSecondChar, $sString)
{
    preg_match_all("/\\".$cFirstChar."(.*?)\\".$cSecondChar."/", $sString, $aMatches);
    return $aMatches[1];
}


?>

Senden:

<?
$ip = "192.168.2.203";
$sender = $_IPS['VALUE'];
$vol = $_IPS['VALUE'];
$mode = $_IPS['VALUE'];

$vol_30 = round($vol * 0.3);

if ($mode)
{
	$mode_str = "pause";
}else{
	$mode_str = "play";
}


if ($_IPS['VARIABLE'] == 34487 /*[I/O\Insel\Geräte\Samsung R1 Bad\Radio\Sender]*/)
{
	//Sender
	$url = "http://" . $ip . ":55001/CPM?cmd=%3Cname%3ESetPlayPreset%3C/name%3E%3Cp%20type=%22dec%22%20name=%22presetindex%22%20val=%22" . $sender  . "%22/%3E%3Cp%20type=%22dec%22%20name=%22presettype%22%20val=%220%22/%3E";
	SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}

if ($_IPS['VARIABLE'] == 51389 /*[I/O\Insel\Geräte\Samsung R1 Bad\Radio\Lautstärke]*/)
{
	//lautstärke
	$url = "http://" . $ip . ":55001/UIC?cmd=%3Cname%3ESetVolume%3C/name%3E%3Cp%20type=%22dec%22%20name=%22volume%22%20val=%22" . $vol_30 . "%22/%3E";
	SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}

if ($_IPS['VARIABLE'] == 17708 /*[I/O\Insel\Geräte\Samsung R1 Bad\Radio\Mode]*/)
{
	//Mode
	$url = "http://" . $ip . ":55001/CPM?cmd=%3Cname%3ESetPlaybackControl%3C/name%3E%3Cp%20type=%22str%22%20name=%22playbackcontrol%22%20val=%22" . $mode_str . "%22/%3E";
	SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}


        // create curl resource 
        $ch = curl_init(); 

        // set url 
        curl_setopt($ch, CURLOPT_URL, $url); 

        //return the transfer as a string 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

        // $output contains the output string 
        $output = curl_exec($ch); 

        // close curl resource to free up system resources 
        curl_close($ch);     

?>

Die Anwahl der Sender funktioniert über die Favoriten.
Erster eigener Favorit wäre Sendernummer 3.

Unbenannt.PNG