From 5fafff7f4acb426df3e4f105337e113433cf69f6 Mon Sep 17 00:00:00 2001 From: rleins Date: Sat, 3 Jan 2015 21:04:20 +0000 Subject: [PATCH] Sonos: Patch for Dock-functionality git-svn-id: https://svn.fhem.de/fhem/trunk@7423 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_SONOS.pm | 21 +++++++++++++-------- fhem/FHEM/21_SONOSPLAYER.pm | 12 ++++++------ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/fhem/FHEM/00_SONOS.pm b/fhem/FHEM/00_SONOS.pm index b62169ac1..f5e1395d8 100755 --- a/fhem/FHEM/00_SONOS.pm +++ b/fhem/FHEM/00_SONOS.pm @@ -9,14 +9,16 @@ # # !WARNING! # This Module needs additional Perl-Libraries. -# Installation: +# Installation of: # * LWP::Simple -# * HTML::Entities -# * Net::Ping -# * File::Path -# * Time::HiRes -# * threads -# * Thread::Queue +# * LWP::UserAgent +# * HTTP::Request +# * SOAP::Lite +# +# e.g. as Debian-Packages (via "sudo apt-get install ") +# * LWP::Simple-Packagename (incl. LWP::UserAgent and HTTP::Request): libwww-perl +# * SOAP::Lite-Packagename: libsoap-lite-perl +# # # define SONOS [[[interval] waittime] delaytime] # @@ -30,6 +32,8 @@ # Changelog # # SVN-History: +# 03.01.2015 +# Dokumentation angepasst (commandref und Installationsdoku im Dateiheader) # 02.01.2015 # Anzeige bei der Wiedergabe eines Docks verbessert. Dort werden nun der Titel und Album/Artist-Informationen und ein Dock-Cover angezeigt. # Getter/Setter bei Bedarf um ":noArg" erweitert. @@ -333,7 +337,7 @@ my %sets = ( my @SONOS_PossibleDefinitions = qw(NAME INTERVAL); my @SONOS_PossibleAttributes = qw(targetSpeakFileHashCache targetSpeakFileTimestamp targetSpeakDir targetSpeakURL Speak0 Speak1 Speak2 Speak3 Speak4 SpeakCover Speak1Cover Speak2Cover Speak3Cover Speak4Cover minVolume maxVolume minVolumeHeadphone maxVolumeHeadphone getAlarms disable generateVolumeEvent buttonEvents characterDecoding generateProxyAlbumArtURLs proxyCacheTime); -my @SONOS_PossibleReadings = qw(AlarmList AlarmListIDs UserID_Spotify UserID_Napster location SleepTimerVersion Mute HeadphoneConnected Balance Volume Loudness Bass Treble AlarmListVersion ZonePlayerUUIDsInGroup ZoneGroupID fieldType ZoneGroupName roomName roomIcon LineInConnected); +my @SONOS_PossibleReadings = qw(AlarmList AlarmListIDs UserID_Spotify UserID_Napster location SleepTimerVersion Mute HeadphoneConnected Balance Volume Loudness Bass Treble AlarmListVersion ZonePlayerUUIDsInGroup ZoneGroupID fieldType ZoneGroupName roomName roomIcon LineInConnected currentAlbum currentArtist currentTitle); # Obsolete Einstellungen... my $SONOS_UseTelnetForQuestions = 1; @@ -4660,6 +4664,7 @@ sub SONOS_ServiceCallback($$) { # Dock-Wiedergabe feststellen, und dann andere Informationen anzeigen SONOS_Client_Notifier('SetCurrent:Album:'.SONOS_Client_Data_Retreive($1.'_MR', 'reading', 'currentAlbum', SONOS_Client_Data_Retreive($1.'_MR', 'reading', 'roomName', $1))); my $tmpTitle = SONOS_replaceSpecialStringCharacters(decode_entities($1)) if ($currentTrackMetaData =~ m/(.*?)<\/dc:title>/i); + $tmpTitle = '' if (!defined($tmpTitle)); SONOS_Client_Notifier('SetCurrent:Title:'.SONOS_Client_Data_Retreive($1.'_MR', 'reading', 'currentTitle', $tmpTitle)); SONOS_Client_Notifier('SetCurrent:Artist:'.SONOS_Client_Data_Retreive($1.'_MR', 'reading', 'currentArtist', '')); diff --git a/fhem/FHEM/21_SONOSPLAYER.pm b/fhem/FHEM/21_SONOSPLAYER.pm index 555b9ba36..7d5c20cd2 100755 --- a/fhem/FHEM/21_SONOSPLAYER.pm +++ b/fhem/FHEM/21_SONOSPLAYER.pm @@ -888,15 +888,15 @@ sub SONOSPLAYER_Log($$$) {
  • set <name> DailyIndexRefreshTime <time>
    Sets the current DailyIndexRefreshTime for the whole bunch of Zoneplayers.
  • -
  • -set <name> RoomIcon <Iconname> -
    Sets the Icon for this Zone
  • set <name> Name <Zonename>
    Sets the Name for this Zone
  • set <name> Reboot
    Initiates a reboot on the Zoneplayer.
  • +
  • +set <name> RoomIcon <Iconname> +
    Sets the Icon for this Zone
  • set <name> Wifi <State>
    Sets the WiFi-State of the given Player. Can be 'off', 'persist-off' or 'on'.
  • @@ -1167,15 +1167,15 @@ Here an event is defined, where in time of 2 seconds the Mute-Button has to be p
  • set <name> DailyIndexRefreshTime <time>
    Setzt die aktuell gültige DailyIndexRefreshTime für alle Zoneplayer.
  • -
  • -set <name> RoomIcon <Iconname> -
    Legt das Icon für die Zone fest
  • set <name> Name <Zonename>
    Legt den Namen der Zone fest.
  • set <name> Reboot
    Führt für den Zoneplayer einen Neustart durch.
  • +
  • +set <name> RoomIcon <Iconname> +
    Legt das Icon für die Zone fest
  • set <name> Wifi <State>
    Setzt den WiFi-Zustand des Players. Kann 'off', 'persist-off' oder 'on' sein.