2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

Sonos: Correct wrong attribute-check during speak execution

git-svn-id: https://svn.fhem.de/fhem/trunk@7587 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rleins 2015-01-16 08:29:32 +00:00
parent 933df3d423
commit b8a0f685a0
2 changed files with 15 additions and 13 deletions

View File

@ -47,6 +47,8 @@
# Changelog
#
# SVN-History:
# 16.01.2015
# Speak hatte eine fehlerhafte Überprüfung der Attribute, und konnte nicht ausgeführt werden.
# 15.01.2015
# Für die Setter "LoadPlaylist", "StartPlaylist", "LoadRadio", "StartRadio" und "StartFavourite" kann man jetzt anstatt des Namens einen regulären Ausdruck verwenden.
# Beim Erkennen der Player werden einige Abspielreadings ("transportState", "currentTrackURI", "currentTrackDuration", "currentTrackPosition", "currentTrack", "numberOfTracks", "currentStreamAudio" und "currentNormalAudio") nun direkt abgeholt, und werden somit aktuell korrekt gesetzt.

View File

@ -638,21 +638,21 @@ sub SONOSPLAYER_Set($@) {
SONOS_DoWork($udn, 'addURIToQueue', $value);
} elsif ((lc($key) eq 'speak') || ($key =~ m/speak\d+/i)) {
$key = 'speak0' if (lc($key) eq 'speak');
$hash = SONOSPLAYER_GetRealTargetPlayerHash($hash);
$udn = $hash->{UDN};
# Hier die komplette restliche Zeile in den zweiten Parameter packen, da damit auch Leerzeichen möglich sind
my $text = '';
for(my $i = 4; $i < @a; $i++) {
$text .= ' '.$a[$i];
}
my $sonosName = SONOS_getDeviceDefHash(undef)->{NAME};
if ((ReadingsVal($sonosName, 'targetSpeakDir', '') eq '') || (ReadingsVal($sonosName, 'targetSpeakURL', '') eq '')) {
return $key.' not possible. Please define valid "targetSpeakDir" and "targetSpeakURL" for Device "'.$sonosName.'" first.';
if ((AttrVal($sonosName, 'targetSpeakDir', '') eq '') || (AttrVal($sonosName, 'targetSpeakURL', '') eq '')) {
return $key.' not possible. Please define valid "targetSpeakDir"- and "targetSpeakURL"-Attribute for Device "'.$sonosName.'" first.';
} else {
$key = 'speak0' if (lc($key) eq 'speak');
$hash = SONOSPLAYER_GetRealTargetPlayerHash($hash);
$udn = $hash->{UDN};
# Hier die komplette restliche Zeile in den Text-Parameter packen, da damit auch Leerzeichen möglich sind
my $text = '';
for(my $i = 4; $i < @a; $i++) {
$text .= ' '.$a[$i];
}
SONOS_DoWork($udn, lc($key), $value, $value2, $text);
}
} elsif (lc($key) eq 'alarm') {