Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

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

Vorheriges Thema - Nächstes Thema

Otto123

Spontan kann ich sagen: switchtotv geht nicht: not implemented :(
habe ich vorgestern schon in mehreren Variationen probiert
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

87insane

also ich kann das nicht testen da ich kein Gerät habe was das kann.... Deswegen vorhin auch meine Frage wer hier was hat.

Otto123

Die Meldung kommt direkt von dem sonos2mqtt "im Fenster" ich habe das noch interaktiv gestartet.
Das ist aus meiner Sicht empfehlenswert beim testen :)
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

87insane

#63
Me2... Würde das im Leben so nicht laufen lassen. Wobei das aktuell schon gehen würde.

Hätt ja auch mal ne Meldung direkt aus der Konsole gepostet. Hatte tatsächlich gerade "fenster" geschrieben [emoji33] (bis mir auffiel das du das sehr "neutral" erklärt hast...)

Was steht nun auf dem Aufgaben zettel?
Aus meinem Post sind noch dinge offen. Da weiß ich ad-hoc nicht weiter.

Gesendet von meinem LM-G810 mit Tapatalk

Beta-User

Vielleicht noch ein etwas generischerer Hinweis: Es sollte https://wiki.fhem.de/wiki/DevelopmentGuidelinesAV beachtet werden ;) .

Was das switchtotv angeht, wird das wohl nur bei wenigen Modellen unterstützt (stand irgendwo in der Doku).

Da wir vermutlich mehr Perl in der setList brauchen (wg. DevelopmentGuidelinesAV), würde ich vorschlagen, die eigentlichen Sendestrings erst ganz am Ende zusammenzubauen, dürfte effektiv kürzer werden, und das dann mit "qq" zu interpolieren. Damit ich nicht lange die Fachbegriffe erläutern muß ein Beispiel, das hoffentlich funktioniert:
mute:on,off { my $value = $EVTPART1 eq "on" ? "mute" : "unmute"; qq(
sonos/RINCON_7828CAF427B201400/control { "command": "$value" } ) }


Und statt Perl-devStateIcon würde ich hier zur multiline-stateFormat+regex-devStateIcon-Variante tendieren...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Otto123

Zitat von: Beta-User am 03 Juni 2020, 05:50:47
Was das switchtotv angeht, wird das wohl nur bei wenigen Modellen unterstützt (stand irgendwo in der Doku).
Ja, das dürften bei mir die playbase und die beam sein. zumindest heben beide den TV Knopf in der Sonos UI.
Ich wollte gestern damit nur sagen: Es gibt ne Liste und es gibt die Realität :)
Ich weiß auch nicht genau was da aufeinander aufbaut (mehrere node Module (node-sonos-ts)beteiligt?!)
Und es gab die Aussage: es ist nicht alles direkt implementiert, aber man kann sich "RAW" mit Sonos unterhalten -> adv-command - damit hab ich auch schon, leider bisher völlig erfolglos, rumprobiert. Da braucht man wieder einen Übersetzer :) für Doku.
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

Bei mir kommt immer false zurück im Reading mute_Master, ist das bei euch auch so ?
muten on/off klappt aber ohne Probleme.

defmod MQTT2_SONOS_SPEAKER_WOHNZIMMER MQTT2_DEVICE RINCON_000E58F7F67C01400
attr MQTT2_SONOS_SPEAKER_WOHNZIMMER IODev MQTT2_Server
attr MQTT2_SONOS_SPEAKER_WOHNZIMMER jsonMap volume_Master:volume mute_Master:mute
attr MQTT2_SONOS_SPEAKER_WOHNZIMMER readingList sonos/RINCON_000E58F7F67C01400:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_SONOS_SPEAKER_WOHNZIMMER room MQTT2_DEVICE
attr MQTT2_SONOS_SPEAKER_WOHNZIMMER setList mute:on,off { my $value = $EVTPART1 eq "on" ? "mute" : "unmute";; qq(sonos/RINCON_000E58F7F67C01400/control { "command": "$value" } ) }\
next:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "next" }\
pause:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "pause" }\
play:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "play" }\
previous:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "previous" }\
volume:slider,0,1,100 sonos/RINCON_000E58F7F67C01400/control { "command": "volume", "input": $EVTPART1 }\
stop:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "stop" }

setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER play
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 coordinatorUuid RINCON_000E58F7F67C01400
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 currentTrack_AlbumArtUri https://cdn-radiotime-logos.tunein.com/s2485q.png
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 currentTrack_Artist BENEE FEAT. GUS DAPPERTON
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 currentTrack_ItemId -1
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 currentTrack_ParentId -1
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 currentTrack_ProtocolInfo aac:*:application/octet-stream:*
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 currentTrack_Title SUPALONELY
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 currentTrack_TrackUri aac://http://streams.regenbogen.de/rr-mannheim-128-aac?usid=0-0-H-A-V-02
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 currentTrack_UpnpClass object.item
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 enqueuedMetadata_AlbumArtUri https://cdn-radiotime-logos.tunein.com/s2485q.png
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 enqueuedMetadata_ItemId -1
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 enqueuedMetadata_ParentId -1
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 enqueuedMetadata_Title 102.8 Radio Regenbogen Heidelberg
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 enqueuedMetadata_UpnpClass object.item.audioItem.audioBroadcast
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 groupName Wohnzimmer
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 mute false
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 mute_LF false
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 mute_RF false
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 name Wohnzimmer
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 playmode NORMAL
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:40:05 state play
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 transportState PLAYING
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 ts 1591191759246
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:42:39 uuid RINCON_000E58F7F67C01400
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:31:31 volume 9
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:31:31 volume_LF 100
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 15:31:31 volume_RF 100

87insane

Wenn ich mich nicht täusche, hast du ohne Gruppen auch keinen Master.

Gesendet von meinem LM-G810 mit Tapatalk


TomLee

Ok, versteh ich. Unabhängig davon wie das richtige Reading zu dem mute Kommando heißt, es ändert sich unter keinem anderen Topic irgendein Reading wenn ich mute, ist das bei dir auch so ?

87insane

Wie ich schrieb...
Hab das zwar gepflegt und alles abgetippt nach besten Wissen und Gewissen aber getestet nur grob. Schaue ich mir an. Bin aber noch auf der Arbeit.

Gesendet von meinem LM-G810 mit Tapatalk


TomLee

Moment, versteh ich noch net ganz.

ZitatStatus message

We emit a single status message for each sonos speaker, on the sonos/uuid_of_speaker topic. This status message is a combination of all the sonos events we are listening for. Just create an issue (or PR) if you think there should be more data send to mqtt.

Topic: sonos/RINCON_000E5000000001400 this message is retained.

{
  "uuid" : "RINCON_000E5000000001400",
  "name" : "Kantoor",
  "groupName" : "Kantoor",
  "coordinatorUuid" : "RINCON_000E5000000001400",
  "currentTrack" : {
    "Album" : "Hard Bass 2012 Mixed by The Pitcher, Luna, Frontliner and Chris One",
    "Artist" : "Pavo",
    "AlbumArtUri" : "http://192.168.1.105:1400/getaa?s=1&u=x-sonos-spotify:spotify:track:3Je8RHcdTJ8NGG3krmCHUd%3fsid%3d9%26flags%3d8224%26sn%3d7",
    "Title" : "Let's Go! - Radio Edit",
    "UpnpClass" : "object.item.audioItem.musicTrack",
    "Duration" : "0:04:06",
    "ItemId" : "-1",
    "ParentId" : "-1",
    "TrackUri" : "x-sonos-spotify:spotify:track:3Je8RHcdTJ8NGG3krmCHUd?sid=9&flags=8224&sn=7",
    "ProtocolInfo" : "sonos.com-spotify:*:audio/x-spotify:*"
  },
  "enqueuedMetadata" : {
    "Artist" : "stephanvanrooij",
    "AlbumArtUri" : "https://mosaic.scdn.co/640/ab67616d0000b27323f45715a7ccccab470d29b2ab67616d0000b273819f90c805b6a4a816495df9ab67616d0000b273be8e9b832634616dcf14ca97ab67616d0000b273d2cb2c655c141aa8e7fff4f0",
    "Title" : "Hardstyle",
    "UpnpClass" : "object.container.playlistContainer",
    "ItemId" : "10062a6cspotify%3aplaylist%3a5e2KheF9qKRvqCwtFlKEme",
    "ParentId" : "00080024playlists"
  },
  "nextTrack" : {
    "Album" : "Renegades",
    "Artist" : "Frequencerz",
    "AlbumArtUri" : "http://192.168.1.105:1400/getaa?s=1&u=x-sonos-spotify:spotify:track:7iGbCV07PTIWpEBXUoIZG3%3fsid%3d9%26flags%3d8224%26sn%3d7",
    "Title" : "Renegades",
    "UpnpClass" : "object.item.audioItem.musicTrack",
    "Duration" : "0:04:52",
    "ItemId" : "-1",
    "ParentId" : "-1",
    "TrackUri" : "x-sonos-spotify:spotify:track:7iGbCV07PTIWpEBXUoIZG3?sid=9&flags=8224&sn=7",
    "ProtocolInfo" : "sonos.com-spotify:*:audio/x-spotify:*"
  },
  "transportState" : "PLAYING",
  "playmode" : "SHUFFLE",
  "ts" : 1586344373119,
"volume" : {
    "Master" : 7,
    "LF" : 100,
    "RF" : 100
  },
  "mute" : {
    "Master" : false,
    "LF" : false,
    "RF" : false
  }

}

ändere ja auch mit dem volume Kommando volume_Master

87insane

Bin ja schon fast am pc.... Ruhig Blut :-P danke aber für das raus suchen...

Gesendet von meinem LM-G810 mit Tapatalk


87insane

Habs gefunden.. schreibe gleich was dazu... Muss nun noch zurück setzen und testen.

Otto123

#73
Ich habe mal Beta-Users AttrTemplate getestet. Funktioniert - wenn man das herum ludernde " Am Dateiende wieder löscht :)
Ich habe einfach alles was ich bisher an MQTT2_Devices hatte gelöscht.
Habe den sonos2mqtt beendet.
Dann habe ich define SonosBridge MQTT2_DEVICE ein leeres Device angelegt. AttrTemplate  sonos2mqtt_bridge angwendet, dabei musste ich sonos eingeben und fertig.
Nach dem Start von sonos2mqtt hat er die RINCON_ Devices angelegt. dort dann AttrTemplate sonos2mqtt_speaker angewendet. :)

Muss man die Template Datei auch reload machen wenn man sie mit nano geändert hat? Scheinbar ... aber wie geht das?
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

{ AttrTemplate_Initialize() }

immer, weißt du doch.

Klar funzt das Template, bin mir aber nicht sicher ob da alle drei Topics in dem Gerät landen sollen oder jedes Topic in ein Gerät, darum hab ich in der obigen Definition nur den Rincon-Pfad drin, das gefällt mir erstmal besser.

Und ? ändert sich bei dir ein Reading auf true wenn du (die sL natürlich zuvor um den Befehl ergänzt) ein mute on ausführst ?