Sonos steuern

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

Vorheriges Thema - Nächstes Thema

Reinerlein

Hi zusammen,

ich habe gerade den offiziellen Pfad und das Wiki aktualisiert. Hier wie immer der Changelog dazu (V2.5):

  • Verwendung und Speicherung der Benutzer-IDs für Spotify und Napster wurden stabiler gegenüber Sonderzeichen gemacht
  • Spotify-URLs werden im Reading 'currentTrackURI' und 'nextTrackURI' lesbarer abgelegt
  • Ein Fehler beim Öffnen von M3U-Playlistdateien wurde behoben (dafür Danke an John)
  • Überholt: Für die Informationsanfragen an Fhem durch den SubProzess wird nun standardmäßig der Telnet-Port von Fhem verwendet. Wenn das fehlschlägt, wird auf den alten Mechanismus zurückgeschaltet
  • Neu: Es werden keine Informationsanfragen mehr zwischen Fhem und dem SubProzess ausgetauscht. Notwendige Informationen müssen vorher übertragen werden. Das bedeutet, dass bei einer Attributänderung ein Neustart von Fhem erfolgen muss.
  • Es wurde ein Standard-Layout für das RemoteControl-Hilfsmodul angelegt
  • Der Verbose-Level des Sonos-Devices wird nun auch an den SubProzess weitergereicht (auch zur Laufzeit), und beim initialen Start des SubProzess-Threads mitgegeben.
  • AlbumArt von Napster erhält nun den den festen Mimetype 'jpg', da dieser nicht übertragen wird
  • Es werden nun die durch Fhem definierten Standard-Attribute mit angeboten
  • Es gab ein Problem mit der Befehlsverarbeitung, wenn das Verbose-Attribut an einem Sonos-Device gesetzt war.
  • Es wird nun auf Änderungsevents für den Zonennamen und das Zonenicon reagiert, und die entsprechenden Readings aktualisiert
  • Es gibt jetzt zwei neue Setter: 'Name' und 'Icon', mit dem der Name und das Icon der Zone eingestellt werden kann
  • Es gibt jetzt einen Getter 'PossibleRoomIcons', welcher die möglichen Angaben für den neuen Setter 'Icon' liefert
  • Das Reading 'ZoneGroupID' wird nun auf eine andere Weise ermittelt und gesetzt
  • Es gib jetzt ein neues Reading 'AlarmRunning', welches auf '1' steht, wenn gerade eine Alarmabspielung aktiv ist
  • Die Namens- und Aufgabenerkennung beim Ermitteln der Player wurde angepasst
  • Der Aufruf von AddMember und RemoveMember wurde bzgl. des SonosDevice-Namen abgesichert, sodass hier kein Absturz mehr bei einer falschen Deviceangabe erfolgt
  • Es gibt jetzt ein neues Reading 'AlarmRunningID', welches bei einer Alarmausführung die ID des aktiven Alarms enthält
  • Das Senden von Aktualisierungen an Fhem wurde etwas sicherer gemacht, wenn Fhem auf der anderen Seite gerade nicht zuhören kann
  • Die Readings 'AlarmList', 'AlarmListIDs' und 'AlarmListVersion' werden nicht mehr aus dem Statefile geladen, da dort Sonderzeichen wie '#' zum Abschneiden der restlichen Zeile führen
  • Anpassung der UPnP-Klasse, damit das Device-Beschreibungsdokument nur noch einmal geladen wird (anstatt wie bisher zweimal)
  • Anpassung im Bereich der Cover Aktualisierung über FhemWeb. Das geht jetzt mit viel weniger Aufwand durch.
  • Es gibt jetzt einen Setter 'SnapshotGroupVolume', der das aktuelle Lautstärkenverhältnis der einzelnen Player einer Gruppe für die folgenden Aufrufe des Setter 'GroupVolume' festhält. Die Anweisungen 'PlayURI' und 'PlayURITemp' (sowie darauf aufbauende Aufrufe wie 'Speak') führen diese Anweisung selbsttätig beim Starten durch.
  • Wenn beim Auffrischen der Subscriptions ein Fehler auftritt, der darauf schließen läßt, dass der Player weg ist, dann wird die entsprechende Referenz aufgeräumt
  • Man kann als relative Angabe bei setVolume nun einen Prozentwert angeben, z.B. '+20%'. Damit wird die Lautstärke um den jeweiligen prozentualen Anteil erhöht oder abgesenkt.
  • Es gibt jetzt ein Reading 'LineInConnected', welches eine '1' enthält, wenn der Line-In-Eingang angeschlossen wurde, sonst '0'.

Im Wiki ist einiges an Zusatzinformationen hinzugekommen. Auch im Bereich der eigenen Fehlersuche...

Grüße
Reiner

JoeALLb

Wow,  herzlichen Dank.

Gesendet von meinem Xperia Pro mit Tapatalk

FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

strauch

Zitat von: JoeALLb am 08 März 2014, 08:02:11
Wow,  herzlichen Dank.

Mehr fällt mir dazu auch nicht ein. Danke :-)

Gesendet von meinem Nexus 4 mit Tapatalk

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Capeghost

Hallo nochmal,

dank Einsteiger-Doku habe ich ich das mit dem Setzen der Sets ohne Klammern wunderbar hinbekommen ;-)

Jetzt kämpfe ich allerdings mit dem richtigen Befehl für ein Notify, um eine Spotify-Playliste einzubinden.

Wenn ich mir in Spotify den Code anzeigen lassen, erhalte ich folgendes (es ist einer in meinen eigenen Spotify-Playlisten gesicherte Liste):
spotify:user:sharemyplaylists.com:playlist:19aMuJ7trjTAPNja6pd4f9

Das würde ich dann so in der DEF zum Notify abbilden:

Fern1Taste1links:toggle set Sonos_Buero LoadPlaylist x-sonos-spotify:spotify:user:sharemyplaylists.com:playlist:19aMuJ7trjTAPNja6pd4f9

Aber auch mit einer von mir komplett selbst angelegten Liste funktioniert es nicht. Die Playliste wird nicht gefunden:

Fern1Taste1links:toggle set Sonos_Buero LoadPlaylist x-sonos-spotify:spotify:user:1121726842:playlist:7y1lsMlXa8LgOatYLkg6QJ


Im Sonos-Anwendungsbeispiel finde ich leider keine kompletten Beispiele für den Syntax der Playlisten, nur für einzelne Tracks mit PlayURI, aber auch die scheinen nicht richtig zu funktionieren, aber die Playlisten sind mir da erstmal wichtiger.



Ich hoffe, Ihr könnt mir helfen.

Gruß

Capeghost

Reinerlein

Hallo Capeghost,

der Befehl "LoadPlaylist" ist nur zum Laden von Sonos-Playlisten gedacht.
So wie ich das sehe kannst du das nur über den Weg eines Sonos-Favoriten lösen.

Also:
- Über den Controller die Spotify-Playlist lange antippen, "Hinzufügen" auswählen, und zu den Sonos-Favoriten hinzufügen
- Um die genaue Schreibweise dieser Playliste zu erfahren, am Besten über Fhem den Befehl "get Favourites" ausführen
- Dann kannst du dein Notify umschreiben, sodass der Setter "StartFavourite" mit dem ermittelten Namen aufgerufen wird (nicht vergessen, dass der Name URL-Encoded geschrieben werden muss, um Leerzeichen und Sonderzeichen zu ermöglichen)

Grüße
Reiner

Capeghost

Schade. Die direkte Nutzung der Spotify- Playlists hätte natürlich den Vorteil, das man immer den aktuellen Inhalt der Liste hat, während man sonst immer wieder regelmässig daraus eine neue Sonos-Playliste erstellen müsste, da diese sich ja dann nicht automatisch aktualisiert.
Aber danke für die schnelle Info, dann brauche ich das nicht weiter probieren.
Gruss Capeghost

strauch

Wenn du die spotify playlist in die Favoriten packet bleibt das eine sportiv play list und nimmt auch alle Änderungen mit.

Gesendet von meinem Nexus 4 mit Tapatalk

FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Capeghost

Hast natürlich recht. Habe Sonos Favoriten mit Sonos Playliste verwechselt. Als Favorit müsste es in der Tat immer aktuell sein.

Danke.

djhans

Hallo,
ich bastel mal wieder am Sonos rum und wollte ein notify für den GruppenChange einbauen.

@ Reiner:
habe das so versucht, wie Du es weiter oben beschrieben hast.

define zoneChange notify Sonos:ZoneGroupState { doChanges(); }

habe es dann als ersten Test mal so angewendet:
define zoneChange notify Sonos:ZoneGroupState set Sonos_Wohnzimmer Play
Aber irgendwie mache ich noch was fasch, oder ich habe Dich nicht verstanden...

djhans

Reinerlein

Hi djhans,

hmm, vielleicht kannst du mal versuchen, den regulären Ausdruck zu erweitern:

define zoneChange notify Sonos:ZoneGroupState.* set Sonos_Wohnzimmer Play
Damit matcht der Ausdruck komplett, vielleicht klappt das ja...

Grüße
Reiner

JoeALLb

Ist der normale Updatezweig eigentlich jetzt aktueller als der DEEV zweig? Soll ich wechseln oder am Dev-zweig bleiben?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Reinerlein

Hi JoeAllb,

momentan unterscheidet sich der Dev-Zweig nur in den Kommentaren, da dort bereits die nächste Versionsnummer vorbereitet drinsteht :-)
Inhaltlich/Funktional sind beide Zweige momentan identisch...

Ich bin gerade dabei die Titel und Albuminformationen bei LineIn und Gruppenwiedergaben etwas zu erweitern, sodass man dort direkt sieht, von welchem Zoneplayer das kommt. Also nix großes, sondern eher kleine Kosmetik...
Was ich als nächstes prüfen wollte, war die Geschichte mit der Kodierung der Titel bei Umlauten. Das kann ich bei mir nur leider nicht darstellen, da (bei mir) die Umlaute sauber angezeigt werden.

Grüße
Reiner

JoeALLb

Danke für die Info!
Mir ist aufgefallen: Ich habe den Sonon_Küche neu eingebunden.
Früher wurde dieser als Sonos_Kueche angelegt. Diesmal wurde er als Sonos_K__che angelegt.
Gabs da ein Problem?
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

der-Lolo

Das problem habe ich beim Buero eq Büro auch...
beim anlegen der Devices hieß mein amp Büro - später habe ich in der Controller app zwar Buero daraus gemacht und in FHEM ein rename gesetzt, es blieb aber bei B__ro.
Einfach mal neu definieren?

Reinerlein

Hi,

das könnte schon mit der Kodierungsproblematik zu tun haben.
Ich werde da mal schauen... das sollte ich ja nachgestellt bekommen...

Grüße
Reiner