Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

Begonnen von Otto123, 31 Mai 2020, 18:30:55

Vorheriges Thema - Nächstes Thema

TomLee

Ach du Sch...   ::), ich versuchs die ganze Zeit, zum Test, mit dem setter in dem Text2Speech-Device. 8)

Danke.

Das mit HTTPSRV muss ich mir noch anschauen, falls das was damit zu tun haben sollte das ich File not found: cache/index.html zurückbekomme.

Otto123

#481
Zitat von: TomLee am 13 August 2020, 19:22:21
Ach du Sch...   ::), ich versuchs die ganze Zeit, zum Test, mit dem setter in dem Text2Speech-Device. 8)
Kann man das so verstehen? Da muss ich die Doku nachbessern :)
Zitat von: TomLee am 13 August 2020, 19:22:21
Das mit HTTPSRV muss ich mir noch anschauen, falls das was damit zu tun haben sollte das ich File not found: cache/index.html zurückbekomme.
Nein das ist bei mir auch so :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

ZitatKann man das so verstehen?

Wer fähig ist "umständlich" zu denken schon. ;D

TomLee

Bezüglich meines Verständnisproblem macht die Anpassung im Wiki für mich keinen Unterschied zu zuvor.
Es steht jetzt nur zweimal da, wie man zu dem speak-setter kommt.
Die verlinkte Routine hab ich schon verstanden was die macht, der speak-Befehl war schon vorhanden, nur genutzt hab ich ihn nicht.
Du hast mich schon verstanden das ich es vergeblich mit dem setter aus dem Text2Speech-Device versucht hatte ?
Das versteh ich jetzt, weshalb das nicht klappen konnte im Wiki kommt das aber nicht rüber, mein ich.

Otto123

Im Wiki steht doch aber überhaupt nichts von einem setter im SonosTTS Device? attr setList gibt es dort gar nicht? Ich versteh überhaupt nicht was Du da eigentlich gemacht hast?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

set SonosTTS tts Hallo

War ich die ganze Zeit fokussiert wird auch gehen.
Für mich, war das, logische Schlussfolgerung wenn ich als erstes mal alles durchgehe was deine Routine angelegt hat, ganz am Ende hätt ich mir den speak Befehl vorgenommen.

Otto123

Klar geht das, das erzeugt die mp3 Datei - so wie es vom Text2Speech vorgesehen :)
Und im Wiki steht ja auch wie es komplett geht ;) aber eben automatisch nur im ganzen Satz.
set SonosTTS tts Hier steht die Ansage;sleep SonosTTS:playing:.0 ; set alias=PlayerAlias playUri [SonosTTS:httpName]

Oder Step 1 und Step 3, allerdings dann den sleep Teil einfach weglassen.

Oh na das geht ja gut los, der Erste der testet und schon lauter Missverständnisse - ich habe es nicht gut gemacht.  :'(
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

Zitat von: Otto123 am 13 August 2020, 11:38:09
gleich mit dem Wiki begonnen: https://wiki.fhem.de/wiki/Sonos2mqtt#Speak_Befehl
Wie geplant steht die Grundlage hier https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Sonos2Mqtt und im eigenen Artikel die Erweiterung und aktuelle Entwicklung.

Vielleicht findet ihr Zeit zum drüberschauen und kritisieren. ;)
Hi Otto,

vorab mal Danke für's In-Angriff-nehmen!

Habe eigentlich nur ein paar kleinere Punkte:
- Wer "noob" ist mit "bridgeRegexp"-Geräten aller Art wird vermutlich eine kleine Beschreibung vermissen, was das Gerät mit dem sonos2mqtt_bridge_comfort-Template denn für eine Funktion hat?
- In dem Detail-Artikel (?) wäre dann noob-tauglich) noch zu erläutern, dass die von der bridge erzeugten weiteren Devices dann mit dem "speaker"-template als Basis zu konfigurieren wären, oder?
- Später wären dann noch ein paar screenshots hilfreich, damit man den Unterschied zwischen Basis und "erweiterten" features sehen kann.
(devspec via Name finde ich immer noch nur dann ganz ok, wenn es um Automatismen direkt anknüpfend an autocreate geht...).


Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

Zitat von: Beta-User am 14 August 2020, 10:19:29
- In dem Detail-Artikel (?) wäre dann noob-tauglich) noch zu erläutern, dass die von der bridge erzeugten weiteren Devices dann mit dem "speaker"-template als Basis zu konfigurieren wären, oder?
Naja, ich habe es wahrscheinlich zu komfortabel gemacht.  ??? Da muss nichts mehr konfiguriert werden.  Das bridge_comfort Template definiert zwei notify, diese machen alles automatisch.

Steht in einem schlichten Satz im ersten Artikel
ZitatDas hier verwendete Template definiert zwei notify, diese erledigen die weitere Konfiguration der automatisch erzeugten MQT ...

Die Funktionsbeschreibung der Bridge kann ich noch einfügen, vor allem damit ich es einem Jahr auch noch weiß. :)

Die devspec mit Namen: Betrifft derzeit das SonosTTS Device. Dies ist exklusiv! Wer das so anlegt wie empfohlen wird das so lassen und gut. Wer das unbedingt ändert, der muss eben alles ändern.  Ja man kann es komplizierter machen, dann liest sich alles wieder komplizierter. Es ist ja so schon kompliziert genug ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Zitat von: Otto123 am 09 August 2020, 16:01:23
Ja mit den Umlauten gibt es Ärger. Ich habe auch noch andere Namen mit irgendwelchen Zeichen drin. Da muss ich die "Suche" noch besser machen.  ::)
...
Ich habe hier auch noch weiter gemacht. Ich habe ein paar Erkenntnisse aber noch keine Lösung. Die Sache ist komplizierter und es sind mindesten 3 Problemstellen:

  • Umlaute: die werden beim Schreiben in FHEM (also setreading oder attr ... ) konvertiert. Im JSON steht ü=hex fc (ISO-8859-15). Im Reading steht Ü=hex c3 bc (UTF-8)
  • HTML Code: Es gibt Sender mit HTML Codes im Namen. Die kann ich offenbar relativ leicht mit HTML::Entities decode_entities umwandeln. Wieder ein use :(
  • Arabisch: Die sind im JSON und Reading gleich (d9 86 d8 ac d9 88 d9 85), aber mein einfaches regEx match kommt damit nicht wirklich klar. Da läuft der Cursor rückwärts  :o
Bin für jede Idee dankbar.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

#490
Hab mir für die mp3-Files in /cache einen setter erstellt der nur noch die Angabe des Files benötigt:

set alias=Büro notify 25 KlingelTon.mp3

notify2:textField {my $file = "http://".ReadingsVal("SonosTTS","host","")."/fhem/cache/".$EVTPART2;'sonos/RINCON_000E58F7F67C01400/control {"command":"notify","input":{"trackUri":"'.$file.'","onlyWhenPlaying":false,"timeout":10,"volume":"'.$EVTPART1.'","delayMs":700}}'}

Nur noch mit dem mp3-File Name:

set alias=Büro notify 25 KlingelTon

notify2:textField {my $file = "http://".ReadingsVal("SonosTTS","host","")."/fhem/cache/".$EVTPART2.".mp3"; 'sonos/RINCON_000E58F7F67C01400/control {"command":"notify","input":{"trackUri":"'.$file.'","onlyWhenPlaying":false,"timeout":10,"volume":"'.$EVTPART1.'","delayMs":700}}'}




Besteht die Möglichkeit die "Sonderzeichen" die in den Sendernamen enthalten sind durch irgendein anderes Zeichen zu ersetzen (vor/nach my $search = (split(' ', $EVENT,2))[1]) und darauf dann das $value =~/$search/ loszulassen oder ist das ein Denkfehler ?

Otto123

Beachte bitte, der Wert "timeout":10 ist irgendwie noch nicht zu Ende gedacht :)
Bei mir bricht er manchmal wirklich ab, ich habe es noch nicht verstanden wie der Timeout wirklich wirkt. Ja verlängern hilft irgendwie ;)

Ja die Sonderzeichen ersetzen geht sicher, ich wollte es halt so elegant wie möglich machen. manches braucht ja auch Zeit...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Zitat von: Otto123 am 09 August 2020, 17:27:01
Vielleicht lässt sich noch ein besserer Sleep Event finden :)

Dauert etwas bis der Sender abgespielt wird, die Zeit wird aber auch benötigt, sonst wird während der Sprachansage gestartet und nix passiert:

$play:enqueuedMetadata_UpnpClass:.object.item.audioItem.audioBroadcast

{my $dev = (devspec2array('model=sonos2mqtt_bridge'))[0];;my $play = "SonosControl";;my $r=Each($dev,ReadingsVal($dev,'favRadios',''));;fhem("set $play speak 15 Es folgt $r");;fhem("sleep $play:enqueuedMetadata_UpnpClass:.object.item.audioItem.audioBroadcast;;set $play playFav $r")}

2020-08-14 16:51:08 MQTT2_DEVICE SonosControl speak 15 Es folgt COSMO Chillout
2020-08-14 16:51:09 MQTT2_DEVICE SonosControl notify
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl STOPPED
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl volume_LF: 100
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl uuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl currentTrack_Duration: 0:00:02
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl groupName: Wohnzimmer
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl ts: 1597416669950
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl currentTrack_ItemId: -1
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl currentTrack_UpnpClass: object.item.audioItem.musicTrack
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl volume: 15
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl currentTrack_ProtocolInfo: http-get:*:audio/mpeg:*
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl currentTrack_Title: 4baac26e3c4d4436e4afafb56d2aac32.mp3
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl volume_RF: 100
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl name: Wohnzimmer
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl playmode: NORMAL
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl currentTrack_TrackUri: http://192.168.188.67:8083/fhem/cache/4baac26e3c4d4436e4afafb56d2aac32.mp3
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl currentTrack_ParentId: -1
2020-08-14 16:51:10 MQTT2_DEVICE SonosControl coordinatorUuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_ParentId: -1
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_TrackUri: http://192.168.188.67:8083/fhem/cache/4baac26e3c4d4436e4afafb56d2aac32.mp3
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl coordinatorUuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl volume_RF: 100
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl name: Wohnzimmer
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_Title: 4baac26e3c4d4436e4afafb56d2aac32.mp3
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl playmode: NORMAL
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl groupName: Wohnzimmer
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl ts: 1597416670567
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_ItemId: -1
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_Duration: 0:00:02
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_ProtocolInfo: http-get:*:audio/mpeg:*
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl volume: 15
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_UpnpClass: object.item.audioItem.musicTrack
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl TRANSITIONING
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl volume_LF: 100
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl uuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_TrackUri: http://192.168.188.67:8083/fhem/cache/4baac26e3c4d4436e4afafb56d2aac32.mp3
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_ParentId: -1
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl coordinatorUuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_Title: 4baac26e3c4d4436e4afafb56d2aac32.mp3
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl name: Wohnzimmer
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl volume_RF: 100
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl playmode: NORMAL
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_Duration: 0:00:02
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl ts: 1597416671076
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_ItemId: -1
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl groupName: Wohnzimmer
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl volume: 15
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_UpnpClass: object.item.audioItem.musicTrack
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl currentTrack_ProtocolInfo: http-get:*:audio/mpeg:*
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl PLAYING
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl uuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:11 MQTT2_DEVICE SonosControl volume_LF: 100
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl name: Wohnzimmer
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl volume_RF: 100
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl currentTrack_Title: 4baac26e3c4d4436e4afafb56d2aac32.mp3
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl playmode: NORMAL
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl currentTrack_ParentId: -1
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl currentTrack_TrackUri: http://192.168.188.67:8083/fhem/cache/4baac26e3c4d4436e4afafb56d2aac32.mp3
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl coordinatorUuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl STOPPED
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl uuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl volume_LF: 100
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl ts: 1597416673094
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl currentTrack_ItemId: -1
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl groupName: Wohnzimmer
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl currentTrack_Duration: 0:00:02
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl currentTrack_ProtocolInfo: http-get:*:audio/mpeg:*
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl volume: 13
2020-08-14 16:51:13 MQTT2_DEVICE SonosControl currentTrack_UpnpClass: object.item.audioItem.musicTrack
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl currentTrack_ParentId: -1
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl enqueuedMetadata_ItemId: -1
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl currentTrack_TrackUri: x-sonosapi-stream:s84548?sid=254&flags=8224&sn=0
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl coordinatorUuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl enqueuedMetadata_UpnpClass: object.item.audioItem.audioBroadcast
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl name: Wohnzimmer
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl volume_RF: 100
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl currentTrack_Title: die neue welle
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl playmode: NORMAL
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl currentTrack_ItemId: -1
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl ts: 1597416674387
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl enqueuedMetadata_Title: die neue welle
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl currentTrack_AlbumArtUri: http://192.168.188.23:1400/getaa?s=1&u=x-sonosapi-stream:s84548%3fsid%3d254%26flags%3d8224%26sn%3d0
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl groupName: Wohnzimmer
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl currentTrack_ProtocolInfo: sonos.com-http:*:application/octet-stream:*
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl currentTrack_UpnpClass: object.item
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl enqueuedMetadata_ParentId: -1
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl volume: 13
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl STOPPED
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl uuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl volume_LF: 100
2020-08-14 16:51:15 MQTT2_DEVICE SonosControl setAVTUri
2020-08-14 16:51:16 MQTT2_DEVICE SonosControl play
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl name: Wohnzimmer
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl enqueuedMetadata_UpnpClass: object.item.audioItem.audioBroadcast
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl volume_RF: 100
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl currentTrack_Title: x-sonosapi-stream:rpde_svc_1944?sid=232&flags=32&sn=4
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl playmode: NORMAL
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl currentTrack_ParentId: -1
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl currentTrack_TrackUri: x-sonosapi-stream:rpde_svc_1944?sid=232&flags=32&sn=4
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl enqueuedMetadata_ItemId: -1
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl coordinatorUuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl TRANSITIONING
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl uuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl volume_LF: 100
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl ts: 1597416680301
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl currentTrack_ItemId: -1
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl enqueuedMetadata_Title: COSMO Chillout
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl currentTrack_AlbumArtUri: http://192.168.188.23:1400/getaa?s=1&u=x-sonosapi-stream:rpde_svc_1944%3fsid%3d232%26flags%3d32%26sn%3d4
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl groupName: Wohnzimmer
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl currentTrack_ProtocolInfo: sonos.com-http:*:*:*
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl currentTrack_Artist: ZPSTR_BUFFERING
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl currentTrack_UpnpClass: object.item
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl volume: 13
2020-08-14 16:51:20 MQTT2_DEVICE SonosControl enqueuedMetadata_ParentId: -1
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl enqueuedMetadata_ItemId: -1
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_TrackUri: x-sonosapi-stream:rpde_svc_1944?sid=232&flags=32&sn=4
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_ParentId: -1
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl uuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_UpnpClass: object.item
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_ProtocolInfo: sonos.com-http:*:*:*
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_AlbumArtUri: http://192.168.188.23:1400/getaa?s=1&u=x-sonosapi-stream:rpde_svc_1944%3fsid%3d232%26flags%3d32%26sn%3d4
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_ItemId: -1
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl playmode: NORMAL
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_Title: x-sonosapi-stream:rpde_svc_1944?sid=232&flags=32&sn=4
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl volume_RF: 100
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl name: Wohnzimmer
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl enqueuedMetadata_UpnpClass: object.item.audioItem.audioBroadcast
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl coordinatorUuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl volume_LF: 100
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl PLAYING
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl volume: 13
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl enqueuedMetadata_ParentId: -1
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_Artist: chillout
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl groupName: Wohnzimmer
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl enqueuedMetadata_Title: COSMO Chillout
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl ts: 1597416682600
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_ItemId: -1
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl enqueuedMetadata_Title: COSMO Chillout
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl ts: 1597416683100
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_AlbumArtUri: http://192.168.188.23:1400/getaa?s=1&u=x-sonosapi-stream:rpde_svc_1944%3fsid%3d232%26flags%3d32%26sn%3d4
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl groupName: Wohnzimmer
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl enqueuedMetadata_ParentId: -1
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_UpnpClass: object.item
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl volume: 13
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_ProtocolInfo: sonos.com-http:*:*:*
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_Artist: chillout
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl PLAYING
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl uuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl volume_LF: 100
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl enqueuedMetadata_ItemId: -1
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_TrackUri: x-sonosapi-stream:rpde_svc_1944?sid=232&flags=32&sn=4
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_ParentId: -1
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl coordinatorUuid: RINCON_000E58F7F67C01400
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl currentTrack_Title: x-sonosapi-stream:rpde_svc_1944?sid=232&flags=32&sn=4
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl enqueuedMetadata_UpnpClass: object.item.audioItem.audioBroadcast
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl name: Wohnzimmer
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl volume_RF: 100
2020-08-14 16:51:23 MQTT2_DEVICE SonosControl playmode: NORMAL



Otto123

Ich habe jetzt eventuell eine Variante für die Favoriten List hinbekommen. So würde ein setter mit Auswahlbox der Favoriten entstehen. Die Favoriten müssen schon in der SonosBridge als Reading da sein. Wenn nicht: Im Wiki steht die Anleitung.
Das hier in der Raw Def ausführen
{use JSON;;use HTML::Entities;;use Encode qw(encode decode);;\
my $enc = 'UTF8';;\
my $dev = (devspec2array('model=sonos2mqtt_bridge'))[0];;\
my $read = 'Favorites';;\
my $decoded = decode_json(ReadingsVal($dev,$read,''));;\
my @arr  = @{$decoded->{'Result'}};;\
my @out;;\
foreach (@arr) {\
  my $dec=encode($enc, decode_entities($_->{'Title'}));;\
  $dec =~ s/\s/./g;;\
  push @out,$dec}\
my $favliste= join ',', sort @out;;\
my @devlist = devspec2array('MQTT2_RINCON_.*');;\
my $attr = 'setList';;\
my $item = ' playFav:'.$favliste.q( {use JSON;;use HTML::Entities;;use Encode qw(encode decode);;my $enc = 'UTF8';;my $uri='';;my $search = (split(' ', $EVENT,2))[1];;my $dev = (devspec2array('model=sonos2mqtt_bridge'))[0];;my $read = 'Favorites';;my $decoded = decode_json(ReadingsVal($dev,$read,''));;my @arr  = @{$decoded->{'Result'}};;foreach (@arr) {if (encode($enc, decode_entities($_->{'Title'})) =~ /$search/i){$uri = $_->{'TrackUri'} }};;fhem("set $NAME playUri $uri") if ($uri ne '')});;\
my ($first,$sec)=split(' ',$item,2);;\
foreach (@devlist) {\
   my @arr = grep {$_ !~ $first} split("\n",AttrVal($_,$attr,''));;\
   push @arr,$item;;\
   my $val = join "\n",@arr;;\
   $val =~ s/;;/;;;;/g;;\
   fhem("attr $_ $attr $val")}\
return "$attr in ".scalar(@devlist)." Definitionen modifiziert"\
}
Die erst Schleife erzeugt eine Komma getrennte Liste. Die ist dann schon "bereinigt": Kein HTML Codes, keine white Spaces, utf-8 codiert.
Die zweite Schleife packt in alle Player (kann man im devspec ändern) den setter.
Der Code im setter bekommt den Sender aus der Liste (oder per set Parameter) und sucht im JSON Reading Favorites welches er vorher wieder "bereinigt".

Mein Problem war offenbar, das Perl zum einen "locker" mit der codierung umgeht, er wandelt offenbar in Abhängigkeit was man tut und welcher String wie codiert ist von utf-8 nach ISO oder umgekehrt,  und das man nicht nochmal codieren darf. Wobei ich es immer noch nicht ganz verstanden habe.  :'( Eventuell spielt auch noch die Codierung von $EVENT eine Rolle? Ich habe so viele Varianten probiert, bis ich gemerkt habe, dass Perl mich veräppelt.

Probiers mal aus. ;)

Ein Rest bleibt noch: ich habe einen Favoriten (kein Radio) da ist die TrackUri nicht die richtige uri ::)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

ZitatProbiers mal aus.

Hab ich, jetzt klappts mit SWR4.Baden-Württemberg, allerdings bei allen Sendern denen noch eine Beschreibung/Kategorie in () anhängt nicht mehr.

011.FM-NonStop60s
1A.Deutsche.Hits
1LIVE.diggi.(Top.40/Pop)
Antenne.Thüringen.80er.(80er)
COSMO.Chillout
DASDING.92.5.(Euro-Hits)
FM.نجوم.100.6.(Arabisch)
Hitradio.Ö3.99.9.(Österreichisch)
Hörbücher
NDR.2
PsyRadioChillout
SWR4.Baden-Württemberg
SWR4.Rheinland-Pfalz
die.neue.welle.101.8.(Rock)

Zitat
Ein Rest bleibt noch: ich habe einen Favoriten (kein Radio) da ist die TrackUri nicht die richtige uri
Das bei mir mit Hörbücher auch so, ein Favorit aus der Musikbibliothek