Sonos steuern

Begonnen von Will, 05 Januar 2013, 15:51:12

Vorheriges Thema - Nächstes Thema

yetiman

Hi,

ja, die Speak Funktion ist das Killer-Feature!

Und das mit dem hauen sollte ich mir wirklich überlegen :-))

Ingo

P.S.: Bin schon dauernd am updaten ;-)


Gesendet von iPhone mit Tapatalk

rapster

P.S. Falls jemand interesse an der KontaktCheck-Funktion hat, habsi mal hier reingestellt => http://forum.fhem.de/index.php?topic=29684

Gruß Claudiu

Reinerlein

Hallo zusammen,

im Dev-Bereich habe ich ein neues Feature eingebaut:
Bei Spotify-Titeln wird das Cover jetzt direkt über die Spotify-API heruntergeladen. Das bedeutet, dass es eine bessere Auflösung hat (640x640 Pixel) und das Spotify-Logo nicht mehr enthält.

Grüße
Reinerlein

der-Lolo

Hallo Reinerlein,
sag mal hat sich irgendwas im Handling mit dem Sonos-Dock verändert? Meiner will nicht mehr so recht.

Reinerlein

Hallo der-Lolo,

also zumindest nicht wissentlich. Ich habe allerdings auch keinen hier, und kann es nicht testen...

Was klappt denn nicht mehr?

Grüße
Reinerlein

der-Lolo

Ich bekomme keinen Ton mehr - der eingesteckte iPod ist ok, der wiedergebende connect ist ok, die Titelanzeige kommt an. Komisch ist das beim Dock Volume auf 0 steht - und sich nicht verändern lässt...
Ausserdem fällt mir beim connect das lastActionResult ins Auge
ZitatLastActionResult CheckProxyObject-ERROR: SonosPlayer disappeared?

Ich hatte das Ding mal wunderbar am laufen - habe es aber zugegeben jetzt lange nicht benutzt gehabt - und in der Konfiguration die ich jetzt habe ( Cubietruck ) lief es auch noch nicht.

Reinerlein

Hallo der-Lolo,

hast du vielleicht das Attribut "maxVolume" an dem Device gesetzt? Das würde zumindest eine Lautstärke größer diesem Wert verhindern...

Also, geht es nur nicht, wenn du das Fhem-Modul an hast? Oder gibt es auch Probleme, wenn du das ganze ohne Fhem verwendest?

Ansonsten solltest du mal das Verbose-Attribut hoch setzen, und die Log-Ausgaben mitschneiden. Meistens kann man ja ganz gut erkennen, was er noch macht, und was ihm nicht mehr passt...

Grüße
Reinerlein

der-Lolo

#1207
Ich werde später näher dabei schauen und FHEM mal herunterfahren - aus der App heraus bekomme ich so jedenfalls auch keinen Ton. Komisch das ganze...
maxVolume ist nicht gesetzt...
ich habe mal ein list gemacht...
Internals:
   CFGFN      /opt/fhem/FHEM/Sonos.cfg
   DEF        RINCON_000E5861BC7A01400_MR
   NAME       sonos_Dock
   NR         81
   STATE      PLAYING => (Amy Macdonald) 'Youth Of Today' vom Album 'This Is The Life'
   TYPE       SONOSPLAYER
   UDN        RINCON_000E5861BC7A01400_MR
   Readings:
     2014-10-03 19:13:05   AlarmRunning    0
     2014-10-03 19:13:05   AlarmRunningID  0
     2014-10-03 18:20:58   Balance         0
     2014-10-03 18:20:59   CrossfadeMode   0
     2014-10-03 18:20:59   HeadphoneConnected 0
     2014-11-29 20:13:55   LastActionResult CheckProxyObject-ERROR: SonosPlayer disappeared?
     2014-11-29 13:51:12   LineInConnected 1
     2014-10-03 18:20:59   Mute            0
     2014-11-29 13:51:13   Repeat          1
     2014-11-29 13:51:13   Shuffle         1
     2014-10-03 19:13:05   SleepTimer      0
     2014-10-03 18:20:58   Volume          0
     2014-10-25 14:02:41   ZoneGroupID     RINCON_000E5861BC7A01400:__
     2014-11-29 13:53:04   currentAlbum    This Is The Life
     2014-11-29 11:24:38   currentAlbumArtURI ./www/images/default/SONOSPLAYER/sonos_Dock_AlbumArt.png
     2014-11-29 13:49:27   currentAlbumArtist PLAYING
     2014-11-29 13:53:04   currentArtist   Amy Macdonald
     2014-10-03 18:20:59   currentNormalAudio 1
     2014-11-29 14:22:00   currentOriginalTrackNumber
     2014-11-29 14:22:00   currentSender
     2014-11-29 14:22:00   currentSenderCurrent
     2014-11-29 14:22:00   currentSenderInfo
     2014-11-29 14:22:00   currentStreamAudio
     2014-11-29 13:53:04   currentTitle    Youth Of Today
     2014-11-29 13:53:04   currentTrack    3
     2014-11-29 13:53:04   currentTrackDuration 0:03:58
     2014-11-29 13:51:13   currentTrackURI x-sonos-dock:RINCON_000E5861BC7A01400/
     2014-11-29 14:21:59   fieldType
     2014-11-29 13:53:04   infoSummarize1  (Amy Macdonald) 'Youth Of Today' vom Album 'This Is The Life'
     2014-11-29 13:53:04   infoSummarize2  PLAYING => (Amy Macdonald) 'Youth Of Today' vom Album 'This Is The Life'
     2014-10-03 18:20:59   infoSummarize3  Lautstaerke: 0 ~ Ton An ~ Balance: Mitte ~ Kein Kopfhoerer
     2014-11-29 14:22:00   infoSummarize4
     2014-10-03 18:20:58   location        http://192.168.178.51:1400/xml/device_description.xml
     2014-11-29 14:22:00   nextAlbum
     2014-11-29 11:24:38   nextAlbumArtURI ./www/images/default/SONOSPLAYER/sonos_Dock_NextAlbumArt.png
     2014-11-29 14:22:00   nextAlbumArtist
     2014-11-29 14:22:00   nextArtist
     2014-11-29 14:22:00   nextOriginalTrackNumber
     2014-11-29 14:22:00   nextTitle
     2014-11-29 14:22:00   nextTrackDuration
     2014-11-29 14:22:00   nextTrackURI
     2014-11-29 13:51:13   numberOfTracks  152
     2014-10-03 18:20:58   playerType      WD100
     2014-11-29 14:21:59   presence        appeared
     2014-10-03 18:20:59   roomIcon        dock
     2014-10-03 18:20:58   roomName        DOCK
     2014-10-03 18:20:58   saveRoomName    DOCK
     2014-10-03 18:20:58   serialNum       00-0E-58-61-BC-7A:2
     2014-10-03 18:20:58   softwareRevision 5.1
     2014-11-29 14:22:00   state           PLAYING => (Amy Macdonald) 'Youth Of Today' vom Album 'This Is The Life'
     2014-11-29 13:49:27   transportState  PLAYING
Attributes:
   generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
   generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
   generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
   getAlarms  1
   group      DOCK
   icon       icoSONOSPLAYER_icon-WD100.png
   minVolume  0
   model      Sonos_WD100
   room       Geräte,sonos
   stateVariable InfoSummarize2
   webCmd     Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT

Reinerlein

Hallo der-Lolo,

das sieht erstmal alles normal aus.
Die LastActionResult-Meldung kommt, wenn er einen Befehl an den Player senden will, und der UPnP-Proxy nicht mehr funktioniert...

Da brauchen wir jetzt die Logs, damit wir sehen, was er eigentlich machen wollte...

Grüße
Reinerlein

der-Lolo

Entwarnung - ich habe den iPod Nano resettet, danach lief die Wiedergabe auf anhieb. Komisch bleibts aber trotzdem, alles ging - play pause, Titelwahl... es kam nur kein ton.

Tausend Dank für deine Hilfsbereitschaft - btw Sonos lässt sich auch in der Logitech Harmony integrieren.
Man kann also auch über den Harmony Hub steuern.

Reinerlein

Hallo zusammen,

auf Anregung von der-Lolo habe ich etwas gebastelt:
Es gibt jetzt zwei Prozeduren("SONOS_getTitleRG" und "SONOS_getCoverRG"), die als Grundlage für die Verwendung einer ReadingsGroup verwendet werden können.
Der Automatische Erkennungsmechanismus baut die neuen Devices nun entsprechend mit einer Readingsgroup auf (siehe Screenshot).
Das ganze kann man so verwenden, oder eben als Kopiervorlage für eigene Ideen benuten.

Außerdem habe ich mir dabei natürlich auch Gedanken um die Aktualisierung der Coverbilder per longpoll gemacht, und folgende Lösung gebaut (die in dem oben genannten Auto-Mechanismus auch fertig funktioniert):
Es gibt ein neues Reading "currentAlbumArtURL" (und natürlich auch "nextAlbumArtURL"). Dieses liefert die Original-URL zu dem Coverbild (also den Ort, wo das Modul das Cover herunterlädt, beim Player oder über die Spotify-API). Diese ändert sich, wenn sich das Cover ändert, sodass der longpoll Mechanismus und der Fhemweb/Browser-Cachemechanismus hier kein Problem mehr sind...
Dadurch ist eine ReadingsGroup nun in der Lage bei jeder Titeländerung die Cover und Titelinformationen life zu aktualisieren...

Da manche Anwender aber vielleicht über einen Proxy in ihr lokales Netz auf den Fhem-Server zugreifen, und bestimmt nicht die Zoneplayer nach aussen hin zugreifbar machen wollen, habe ich im Modul noch einen kleinen Proxy implementiert.
Dieser wird durch das Attribut "generateProxyAlbumArtURLs" aktiviert. Gleichzeitig werden dabei auch, wie der Name schon sagt, die URL-Readings so gebaut, dass sie über diesen Proxy zugreifen...
Ein normaler Anwender mit vollem Zugriff auf das lokale Netzwerk merkt keinen Unterschied in den beiden Varianten. Ich habe es optional gemacht, da die Proxy-Tätigkeit für einen Pi durchaus zusätzliche Arbeit darstellt, die ja eigentlich auch dezentral von den Playern direkt erledigt werden kann.

Damit habe ich einen wichtigen Punkt meiner persönlichen Ärgernisse behoben, weil ich mich immer über die fehlende Life-Cover-Aktualisierung geärgert habe...

Wer das ganze sofort testen möchte, braucht nur seine Player neu erkennen zu lassen. Dann hat man erstmal alles da...

Ach ja, aktualisieren wie immer:

update all http://fhem.lmsoft.de/sonos_dev/controls_sonos.txt


Grüße
Reinerlein

der-Lolo

#1211
Erstmal tausend Dank für Deine mühe! Du hast ja sogar noch etwas mehr draus gemacht ;-)
Erläuterst du noch kurz das vorgehen um player neu erkennen zu lassen..?
Muss die bestehende config gelöscht werden?

Ich freu mich schon drauf zu schauen ob es auch im Dashboard funktioniert...

rapster

Hi Reinerlein, die neuen Readinggroups schauen echt super aus, und die Idee mit dem Longpool bei den Covern klingt auch spannend ;-)
Werde das mal testen..

@derLolo: ja, die Player löschen, das Sonos-Device kannste lassen.

Gruß Claudiu

der-Lolo

Ok, dann ist das wohl nichts mehr für diese fortgeschrittene Uhrzeit...

rapster

Hi Reinerlein,

für meinen Geschmack sind die Cover allerdings fast etwas zu groß (war schon früher so ;)).
Früher konnte ich das htmlattr width='px' anpassen.
So wie ich das erkenne funktioniert das nun allerdings nicht mehr, oder?

Gibt es i.M. eine Möglichkeit die Cover-Größe anzupassen? Bzw. ist es möglich dass du diese Funktion implementierst?


Danke und Gruß Claudiu