2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-10 08:04:00 +00:00

Sonos: The PlayURI-command doesn't work properly

git-svn-id: https://svn.fhem.de/fhem/trunk@7476 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rleins 2015-01-08 21:48:22 +00:00
parent 6d788109f8
commit 09fdf07f12
2 changed files with 24 additions and 19 deletions

View File

@ -32,6 +32,8 @@
# Changelog
#
# SVN-History:
# 08.01.2015
# Bei der Wiedergabeanweisung "PlayURI" gab es einen Fehler
# 05.01.2105
# Die Cover beim Abspielen "von diesem Gerät" (also iPad, oder Android-Tablet) wurden nicht angezeigt.
# 04.01.2015
@ -5793,6 +5795,7 @@ sub SONOS_getDeviceDefHash($) {
}
SONOS_Log undef, 1, "The Method 'SONOS_getDeviceDefHash' cannot find the FHEM-Device according to '$devicename'. This should not happen!";
return undef;
}
########################################################################################

View File

@ -600,27 +600,29 @@ sub SONOSPLAYER_Set($@) {
$udn = $hash->{UDN};
# Prüfen, ob ein Sonosplayer-Device angegeben wurde, dann diesen AV Eingang als Quelle wählen
my $dHash = SONOS_getDeviceDefHash($value);
if (defined($dHash)) {
my $udnShort = $1 if ($dHash->{UDN} =~ m/(.*)_MR/);
# Wenn dieses Quell-Device eine Playbar ist, dann den optischen Eingang als Quelle wählen...
if (ReadingsVal($dHash->{NAME}, 'playerType', '') eq 'S9') {
# Das ganze geht nur bei dem eigenen Eingang, ansonsten eine Gruppenwiedergabe starten
if ($dHash->{NAME} eq $hash->{NAME}) {
$value = 'x-sonos-htastream:'.$udnShort.':spdif';
if (defined($defs{$value})) {
my $dHash = SONOS_getDeviceDefHash($value);
if (defined($dHash)) {
my $udnShort = $1 if ($dHash->{UDN} =~ m/(.*)_MR/);
# Wenn dieses Quell-Device eine Playbar ist, dann den optischen Eingang als Quelle wählen...
if (ReadingsVal($dHash->{NAME}, 'playerType', '') eq 'S9') {
# Das ganze geht nur bei dem eigenen Eingang, ansonsten eine Gruppenwiedergabe starten
if ($dHash->{NAME} eq $hash->{NAME}) {
$value = 'x-sonos-htastream:'.$udnShort.':spdif';
} else {
# Auf dem anderen Player den TV-Eingang wählen
SONOS_DoWork($dHash->{UDN}, 'playURI', 'x-sonos-htastream:'.$udnShort.':spdif', undef);
# Gruppe bilden
SONOS_DoWork($hash->{UDN}, 'playURI', 'x-rincon:'.$udnShort, $value2);
# Wir sind hier fertig
return undef;
}
} else {
# Auf dem anderen Player den TV-Eingang wählen
SONOS_DoWork($dHash->{UDN}, 'playURI', 'x-sonos-htastream:'.$udnShort.':spdif', undef);
# Gruppe bilden
SONOS_DoWork($hash->{UDN}, 'playURI', 'x-rincon:'.$udnShort, $value2);
# Wir sind hier fertig
return undef;
$value = 'x-rincon-stream:'.$udnShort;
}
} else {
$value = 'x-rincon-stream:'.$udnShort;
}
}