SONOS Favouriten durchschalten

Begonnen von ripperle, 30 Oktober 2018, 10:59:08

Vorheriges Thema - Nächstes Thema

binford6000

Zitat von: ripperle am 31 Oktober 2018, 23:28:44
Das Problem ist das ich
a) überhaupt kein reading mit dem currentFavouriteName habe
b) alle anderen readings die man nutzen könnte um den aktuellen favourite zu ermitteln etwas anderes drin steht wie mir get favourites oder get favorites with cover liefert...
Im konkreten Beispiel bekomme ich nur "antenne 1" anstatt "Hitradio Antenne 1" sodass ich nicht ermitteln kann, welcher favourite gerade abgespielt wird..

Wie juemuc (und ich) schon vorgeschlagen haben:
Am besten du verschiebst den Thread nach Multimedia. Dann ist die Chance größer dass noch andere Sonos Nutzer mitlesen [emoji6]

Ich kann mir leider nicht erklären warum deine Readings nicht korrekt gefüllt sind.
VG Sebastian


Gesendet von iPad mit Tapatalk

ripperle

ZitatAm besten du verschiebst den Thread nach Multimedia. Dann ist die Chance größer dass noch andere Sonos Nutzer mitlesen

Erl. Wusste ehrlich gesagt nicht wie das funktioniert, aber habe jetzt den richtigen Knopf gefunden  ::) :o

Noch eine andere Sache die mir aufgefallen ist und evtl. relevant ist:

Es gibt ja im Player unten userReadings:
Favourites:LastActionResult.*?GetFavouritesWithCovers.* { if (ReadingsVal("Sonos_Wohnzimmer", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1; } }, Radios:LastActionResult.*?GetRadiosWithCovers.* { if (ReadingsVal("Sonos_Wohnzimmer", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1; } }, Playlists:LastActionResult.*?GetPlaylistsWithCovers.* { if (ReadingsVal("Sonos_Wohnzimmer", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1; } }, currentTrackPosition:LastActionResult.*?GetCurrentTrackPosition.* { if (ReadingsVal("Sonos_Wohnzimmer", "LastActionResult", "") =~ m/.*?: (.*)/) { return $1; } }

Wenn ich diesen abgefahrenen perl Ausdruck richtig interpretiere, sollten 3 readings im device auftauchen (Favourites,Radios,Playlists), welche über den LastActionResult und wildem regex z.B. direkt die Favoriten extrahieren. Ich sehe bei mir keins dieser readings?!
Desweiteren werden ja auch userReadings angelegt, z.B. Sonos_KuecheRG_Favourites, welche ebenfalls bei mir leer sind?! (Auch wenn ich davor GetFavouritesWithCovers ausgeführt habe)

Gruß
ripperle

binford6000

Moin,
probier mal folgendes:
attr Sonos getListsDirectlyToReadings 1
und lösche das Userreading am Sonos_Player. Dann werden die Favoriten, Playlists und Radios direkt in die Readings geschrieben.
VG Sebastian

ripperle

Uhhh das wars!! Bekomme jetzt das
currentFavouriteName
antenne 1
2018-11-01 10:06:06
currentFavouriteNameMasked
antenne.1
2018-11-01 10:06:06
currentNormalAudio
0
2018-11-01 07:00:45
currentOriginalTrackNumber
2018-01-31 16:32:25
currentPlaylistName
2018-01-31 16:32:25
currentPlaylistNameMasked
2018-11-01 10:02:00
currentRadioName
2018-01-31 16:32:25
currentRadioNameMasked
2018-11-01 10:02:00
currentSender
Hitradio antenne 1
2018-11-01 10:06:06
currentSenderCurrent
2018-10-26 21:48:50
currentSenderInfo
2018-11-01 10:06:06
currentSource
Hitradio antenne 1
2018-11-01 10:06:06


Mit dem müsste ich arbeiten können... Wenn ich das richtig sehe werden sogar im reading currentFavouriteNameMasked die Sonderzeichen direkt durch ein Punkt ersetzt damit ich es besser im perl script verarbeiten kann... Melde mich nochmal sobald ich Zeit habe es zu testen...

Vielen Dank!!

ripperle

#19
Also wie erwartet funktioniert das jetzt so wie ich das vor hatte

Vielen Dank!!!

Hätte trotzdem noch paar fragen wenn wir schon dabei sind :):

  • Damit das Reading "FavouritesList" befüllt wird, muss soweit ich das verstanden habe get Favourites aufgerufen werden. Gibt es eine Möglichkeit bei einer durch die Sonos App geänderte Favouritenliste dieses reading "automatisch" zu aktualisieren?
  • Das starten eines Favoriten mittels "set StartFavourite" mit Sonderzeichen (zum Beispiel Leerzeichen bei "antenne 1") funktioniert nicht.
    Habe gedacht hierfür wären die Readings currentFavouriteNameMasked oder FavouritesList, welche diese Sonderzeichen mit Punkten ersetzen.
    Leider tut das auch nicht. Ich greife also immer noch auf die readings mit Sonderzeichen zu und ersetzte die Leerzeichen mit %20, dann tuts. Gibt es hier eine bessere Möglichkeit?
  • Kann ich die readingGroups und notifys löschen oder brauch man die zwingend? (Habe eig keine Verwendung dafür)

Gruß

binford6000

#20
Zu 1:
Mach doch einfach ein tägliches at  ;)

Zu 2:
set mySonos_Bad StartFavourite /antenne.1/

Zu 3:
Welche notifys?
Wenn du die readingsGroups nicht brauchst -> löschen
Kannst halt darüber auch die Favoriten/Radios Playlists ansteuern

VG Sebastian

juemuc

zu 1)

Ein notify hilft  8)
defmod Sonos_Favoritenupdate_K notify Sonos_Kueche:FavouritesVersion:.* \
get Sonos_Kueche Favourites


Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

binford6000

Zitat von: juemuc am 01 November 2018, 22:18:01
zu 1)

Ein notify hilft  8)
defmod Sonos_Favoritenupdate_K notify Sonos_Kueche:FavouritesVersion:.* \
get Sonos_Kueche Favourites


Viele Grüße
Jürgen

Und wieder was gelernt  :)
Danke!

Reinerlein

Hallo,

habe das gerade entdeckt.
Schön dass ihr es gelöst habt, dann bleibt mir nur noch ein Hinweis auf ein weiteres Attribut für diesen Zweck:

attr Sonos getFavouritesListAtNewVersion 1
Damit wird in Zusammenhang mit "getListsDirectlyToReadings" das Favourite-Reading bei einer Änderung im Sonos-System automatisch aktualisiert...

Grüße
Reinerlein

binford6000

Ok, notify wieder gelöscht :-)
Danke und VG Sebastian


Gesendet von iPad mit Tapatalk

juemuc

Und ich hatte beides  :o. Nun sind die notify-Einträge weg  ;D
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

ripperle

ZitatHallo,

habe das gerade entdeckt.
Schön dass ihr es gelöst habt, dann bleibt mir nur noch ein Hinweis auf ein weiteres Attribut für diesen Zweck:
Code: [Auswählen]
attr Sonos getFavouritesListAtNewVersion 1
Damit wird in Zusammenhang mit "getListsDirectlyToReadings" das Favourite-Reading bei einer Änderung im Sonos-System automatisch aktualisiert...

Grüße
Reinerlein

Habe die userReading einträge in den Sonos Playern entfernt und das Attribut getFavouritesListAtNewVersion auf 1 gesetzt. Sollte nun tatsächlich ohne das ich ein get ausführe das reading FavouritesList sich ändern, wenn ich mit der App die Favoritenliste beabeite?!
Ich muss weiterhin ein get Favourites ausführen damit sich die Liste aktualisert...

Ansonsten tut aber alles super...

P.S.:
Falls es jemand interessiert, ich habe mit einem XIAOMI Cube eine 1A mini Fernbedienung gebaut  ;D

ripperle

Also mir ist aufgefallen das die favorite Version und das Favourite-Reading tatsächlich sofort aktualisiert wird... Nur das reading FavouritList und FavouritListMasked welche ich benutze werden nicht aktualisiert...
Habe jetzt dann doch ein notify gemacht, welches get Favourites aufruft wenn die favourite Version sich ändert...

Gruß

Jewe

Hallo,

leider klappt es bei mir auch nicht mit den Favoriten oder auch Playlisten. Die Attribute
getFavouritesListAtNewVersion oder getListsDirectlyToReadings habe ich nicht.
Muss ich dazu etwas spezielles installieren oder so ? Mein Fehm ist fast ganz aktuell.

Jens

binford6000

Hallo Jens,
was heißt denn "fast ganz aktuell"?!  ;D Und was sagt denn
version 00_SONOS.pm?

Sollte lauten:
00_SONOS.pm 16658 2018-04-25 06:00:12Z Reinerlein
Und dann gibts auch die Attribute
getFavouritesListAtNewVersion
getListsDirectlyToReadings
getPlaylistsListAtNewVersion
getRadiosListAtNewVersion


Diese werden am SONOS-Device eingestellt, nicht am SONOSPLAYER-device  ;)
Sobald ich in der SONOS App einen neuen Favorit anlege taucht der in FHEM auf.

VG Sebastian