mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 12:49:34 +00:00
Sonos: Add a feature-procedure for retreiving the devicename of the masterplayer of a group.
git-svn-id: https://svn.fhem.de/fhem/trunk@7743 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
84ab8301bb
commit
ad36b3a18e
@ -47,6 +47,9 @@
|
||||
# Changelog
|
||||
#
|
||||
# SVN-History:
|
||||
# 27.01.2015
|
||||
# Bei den Befehlen "AddMember", "RemoveMember" und "CreateStereoPair" werden nun alle in Fhem verfügbaren Sonosplayer in einer Auswahl angeboten. Das erfolgt allerdings ungeachtet der Gültigkeit eines Players in diesem Kontext (z.B. kann man keinen Player aus der Gruppe entfernen, der nicht in der Gruppe ist, die Auswahl bietet aber alle an).
|
||||
# Es gibt jetzt eine Prozedur "SONOSPLAYER_GetMasterPlayerName()" mit der man sich den Devicenamen des Masterplayer zu dem übergebenen Playernamen geben lassen kann.
|
||||
# 26.01.2015
|
||||
# Beim Setzen von "disable" am Sonos-Device wurde der "state" und "STATE" der Player nicht korrekt gesetzt.
|
||||
# 24.01.2015
|
||||
@ -4391,6 +4394,16 @@ sub SONOS_Discover_Callback($$$) {
|
||||
SONOS_Client_Notifier('CommandAttr:'.$name.'RG sortby 2');
|
||||
SONOS_Client_Notifier('CommandAttr:'.$name.'RG noheading 1');
|
||||
SONOS_Client_Notifier('CommandAttr:'.$name.'RG nonames 1');
|
||||
|
||||
#SONOS_Client_Notifier('CommandDefine:'.$name.'RG2 ReadingsGroup '.$name.':infoSummarize2@{SONOSPLAYER_GetMasterPlayerName($DEVICE)}');
|
||||
#SONOS_Client_Notifier('CommandAttr:'.$name.'RG2 valueFormat {" "}');
|
||||
#SONOS_Client_Notifier('CommandAttr:'.$name.'RG2 valuePrefix {SONOS_getCoverTitleRG(SONOSPLAYER_GetMasterPlayerName($DEVICE))}');
|
||||
#SONOS_Client_Notifier('CommandAttr:'.$name.'RG2 room '.$SONOS_Client_Data{SonosDeviceName});
|
||||
#SONOS_Client_Notifier('CommandAttr:'.$name.'RG2 group '.$groupName);
|
||||
#SONOS_Client_Notifier('CommandAttr:'.$name.'RG2 sortby 4');
|
||||
#SONOS_Client_Notifier('CommandAttr:'.$name.'RG2 noheading 1');
|
||||
#SONOS_Client_Notifier('CommandAttr:'.$name.'RG2 nonames 1');
|
||||
#SONOS_Client_Notifier('CommandAttr:'.$name.'RG2 notime 1');
|
||||
}
|
||||
|
||||
# Define Readingsgroup Listen
|
||||
|
@ -387,6 +387,13 @@ sub SONOSPLAYER_Set($@) {
|
||||
$key = $key.':'.$icons;
|
||||
}
|
||||
|
||||
# Playerauswahl einsetzen
|
||||
my @playerNames = ();
|
||||
for my $player (SONOS_getAllSonosplayerDevices()) {
|
||||
push @playerNames, $player->{NAME} if ($hash->{NAME} ne $player->{NAME});
|
||||
}
|
||||
$key = $key.':'.join(',', sort(@playerNames)) if ((lc($key) eq 'addmember') || (lc($key) eq 'createstereopair') || (lc($key) eq 'removemember'));
|
||||
|
||||
# Wifi-Auswahl setzen
|
||||
$key = $key.':off,on,persist-off' if (lc($key) eq 'wifi');
|
||||
|
||||
@ -801,6 +808,21 @@ sub SONOSPLAYER_GetRealTargetPlayerHash($) {
|
||||
return $hash;
|
||||
}
|
||||
|
||||
########################################################################################
|
||||
#
|
||||
# SONOSPLAYER_GetMasterPlayerName - Retreives the Real Player Name for Device-Commands
|
||||
# In Case of no grouping: the given name (the normal device)
|
||||
# In Case of grouping: the name of the groupmaster
|
||||
#
|
||||
# Parameter name = name of device, for which the master is searched
|
||||
#
|
||||
########################################################################################
|
||||
sub SONOSPLAYER_GetMasterPlayerName($) {
|
||||
my ($name) = @_;
|
||||
|
||||
return SONOSPLAYER_GetRealTargetPlayerHash(SONOS_getDeviceDefHash($name))->{NAME};
|
||||
}
|
||||
|
||||
########################################################################################
|
||||
#
|
||||
# SONOSPLAYER_Undef - Implements UndefFn function
|
||||
@ -872,7 +894,7 @@ sub SONOSPLAYER_Log($$$) {
|
||||
<a name="SONOSPLAYER"></a>
|
||||
<h3>SONOSPLAYER</h3>
|
||||
<p>FHEM module to work with a Sonos Zoneplayer</p>
|
||||
<p>For more informations have also a closer look at the wiki at <a href="http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel">http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel</a></p>
|
||||
<p>For more informations have also a closer look at the wiki at <a href="http://www.fhemwiki.de/wiki/SONOS">http://www.fhemwiki.de/wiki/SONOS</a></p>
|
||||
<p>Normally you don't have to define a Sonosplayer-Device on your own, because the Sonos-Device will do this for you during the discovery-process.</p>
|
||||
<h4>Example</h4>
|
||||
<p>
|
||||
@ -1151,7 +1173,7 @@ Here an event is defined, where in time of 2 seconds the Mute-Button has to be p
|
||||
<a name="SONOSPLAYER"></a>
|
||||
<h3>SONOSPLAYER</h3>
|
||||
<p>FHEM Modul für die Steuerung eines Sonos Zoneplayer</p>
|
||||
<p>Für weitere Hinweise und Beschreibungen bitte auch im Wiki unter <a href="http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel">http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel</a> nachschauen.</p>
|
||||
<p>Für weitere Hinweise und Beschreibungen bitte auch im Wiki unter <a href="http://www.fhemwiki.de/wiki/SONOS">http://www.fhemwiki.de/wiki/SONOS</a> nachschauen.</p>
|
||||
<p>Im Normalfall braucht man dieses Device nicht selber zu definieren, da es automatisch vom Discovery-Process des Sonos-Device erzeugt wird.</p>
|
||||
<h4>Example</h4>
|
||||
<p>
|
||||
|
Loading…
Reference in New Issue
Block a user