31-10-2014, 18:48:39
(Dieser Beitrag wurde zuletzt bearbeitet: 31-10-2014, 19:03:31 von Smarter.)
In der Zwischenzeit habe ich auch das Grouping bei mir am Laufen,
Ein Doppelklick (<2 Sek) auf die obere Wippe des Unterputzschalter schaltet die Box auf play und überträgt die Musik dieses Zimmers auf die Slave Zonen welche in der der Config.ini festgelegten werden.
Ein Doppelklick auf die untere Wippe hebt die Gruppierung wieder auf und stoppt die Musikwiedergabe.
Eventuell kann mir jemand ein Tipp geben um das Ungrouping zu perfektionieren. Beim Ungrouping gehen leider Radiosender der Boxen verloren. Beispiel: Im Bad ist mein Liebingsradiosender voreingestellt. Nach dem Ungrouping wurde dieser gelöscht. Bei nachfolgenden code ist bereits eine Verbesserung eingebaut. Ich habe herausgefunden, dass die Slaves TrackURI immer beginnt mit "x-rincon:RINCON". Somit werden nur Slaves aus der Gruppe entfernt und nicht beteiligte Boxen z.B. Wohnzimmer werden übersprungen. Die hat das Ungrouping deutlich zuverlässiger gemacht. Die Funktion $sonos->SetQueue("x-rincon-queue:" . getRINCON($ip) . "#0") ist dafür verantwortlich das die Lösung passiert. Gibt es eine möglichkeit sich den Radiosender vorher auslesen obwohl dieser nicht abgespielt wird oder eine andere Funktion um das Ungrouping vorzunehmen?
PS: Da ich RW SH Schalter & Thermostate benutzen kann, könnte ich natürlich auch diese nehmen um wieder auf meinen Radiosender zurückzustellen als workaround
Ein Doppelklick (<2 Sek) auf die obere Wippe des Unterputzschalter schaltet die Box auf play und überträgt die Musik dieses Zimmers auf die Slave Zonen welche in der der Config.ini festgelegten werden.
Ein Doppelklick auf die untere Wippe hebt die Gruppierung wieder auf und stoppt die Musikwiedergabe.
Eventuell kann mir jemand ein Tipp geben um das Ungrouping zu perfektionieren. Beim Ungrouping gehen leider Radiosender der Boxen verloren. Beispiel: Im Bad ist mein Liebingsradiosender voreingestellt. Nach dem Ungrouping wurde dieser gelöscht. Bei nachfolgenden code ist bereits eine Verbesserung eingebaut. Ich habe herausgefunden, dass die Slaves TrackURI immer beginnt mit "x-rincon:RINCON". Somit werden nur Slaves aus der Gruppe entfernt und nicht beteiligte Boxen z.B. Wohnzimmer werden übersprungen. Die hat das Ungrouping deutlich zuverlässiger gemacht. Die Funktion $sonos->SetQueue("x-rincon-queue:" . getRINCON($ip) . "#0") ist dafür verantwortlich das die Lösung passiert. Gibt es eine möglichkeit sich den Radiosender vorher auslesen obwohl dieser nicht abgespielt wird oder eine andere Funktion um das Ungrouping vorzunehmen?
PS: Da ich RW SH Schalter & Thermostate benutzen kann, könnte ich natürlich auch diese nehmen um wieder auf meinen Radiosender zurückzustellen als workaround
PHP-Code:
Function RemoveMember($master)
// Slave Zone z.B Kueche von Master Zone z.B. Buero entfernen. Zonen in config.ini Sektion 'Sonos' definieren -----------------------------------------------------------------------
// @ $master = Sonos Master Zone (Coordinator)
// @ $slave = Slave Zone (abhängig)
{ global $configIni;# content of config.ini file
$allZones = $configIni['SonosZones']; # read Sonos zones from config.ini
$SonosGrouping=$configIni['SonosGrouping']; # read SonosGrouping from config.ini
$Slaves=$SonosGrouping[$master];
$allSlaves=array_pad(explode(",",$Slaves,10),10,""); # max 10 Zonen
$masterIP=$allZones[$master];
$masterrincon = getRINCON($allZones[$master]); # read Sonos zones IP from config ini
# Zone auflösen / remove all slave zones to master zone
foreach($allSlaves as $index => $zone)
{ $zone=trim($zone);
if ($zone!==""){
$slaveIP = $allZones[$zone]; # read Slave Sonos IP Address from config ini
$sonos = new PHPSonos($slaveIP);
$save_PositionInfo = $sonos->GetPositionInfo();
$save_TrackURI=$save_PositionInfo["TrackURI"];
# Prüfen ob ein Slave spielt (z.B x-rincon:RINCON_000E58C3063401400) und dann Gruppierung aufheben
if (substr($save_TrackURI, 0, 15) == "x-rincon:RINCON")
{
$sonos->SetQueue("x-rincon-queue:" . getRINCON($slaveIP) . "#0"); #Playliste aktivieren, ungroup
}
}
}
return;
}
openHAB RaspberryPi3Innogy-Smarthome+PhilipsHue+Sonos+Buderus-Brennwertkessel+SamsungCAM+SamsungGalaxyTab4+Fritzbox7490+FIBARO-Zwischenstecker+LogitechHarmonyHub+Netatmo+DreamboxDM800