Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

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

Vorheriges Thema - Nächstes Thema

TomLee

Und genau in die Richtung geht unsere zukünftige Lösung mit dem speak Befehl, sagt mir mein Bauchgefühl, weil ich von der Materie keine Ahnung habe.

Beim echodevice-Modul gibts die tts-Lösung ja auch, das hab ich mir damals auch mal kurzzeitig angetan, mit Null Ahnung, was ich mich Frage ist, ssml nutzen wir auch mit dem Modul dazu war der ganze Kram mit Mini-Server nicht nötig und ssml erzeugt auch ne mp3 wenn man will.

Kann man diese Verbindung zu echodevice eventuell irgendwie nutzen ? angemeldet ist man ja schon.

87insane

#76
Jetzt machen wir mal was ganz lustiges Otto.. ;)
Wir fangen gleich mit einem neuen Objekt an, welches wir zuordnen und eingliedern dürfen.

Der Entwickler hat sich etwas ganz schönes einfallen lassen....

Mit den aktuellen Templates bist du ja nun vertraut. Bitte stoppe den Dienst bzw. den Prozess des Servers. Neue Parameter: node wo auch immer bei dir index.js --distinct --mqtt mqtt://"NUTZER":"PASSWORT"@IP:PORT

Ach ja und lass autocreate an.

Danach bekommst du sowas:
Internals:
   CFGFN     
   CID        mqttjs_9749c474
   DEF        mqttjs_9749c474
   DEVICETOPIC MQTT2_mqttjs_9749c474
   FUUID      5ed7cbf9-f33f-fcb4-264f-c8bca8f18011b7b2
   IODev      sonosmqtt
   LASTInputDev sonosmqtt
   MSGCNT     2
   NAME       MQTT2_mqttjs_9749c474
   NR         858
   STATE      STOPPED
   TYPE       MQTT2_DEVICE
   sonosmqtt_MSGCNT 2
   sonosmqtt_TIME 2020-06-03 18:14:45
   READINGS:
     2020-06-03 18:12:47   AVTransportURI  x-sonosapi-stream:s306651?sid=254&flags=8224&sn=0
     2020-06-03 18:12:47   AVTransportURIMetaData_ItemId -1
     2020-06-03 18:12:47   AVTransportURIMetaData_ParentId -1
     2020-06-03 18:12:47   AVTransportURIMetaData_Title DJ Mag Germany Radio by iloveradio.de
     2020-06-03 18:12:47   AVTransportURIMetaData_UpnpClass object.item.audioItem.audioBroadcast
     2020-06-03 18:12:47   AlarmRunning    false
     2020-06-03 18:12:47   Album           Sweet Dreams
     2020-06-03 18:12:47   AlbumArtUri     http://192.168.20.70:1400/getaa?s=1&u=x-sonos-spotify:spotify:track:7tNAeLkrsnOqKXWTmd8cQp%3fsid%3d9%26flags%3d8224%26sn%3d3
     2020-06-03 18:12:47   Artist          F4ST
     2020-06-03 18:12:44   Bass            0
     2020-06-03 18:12:47   CurrentCrossfadeMode false
     2020-06-03 18:12:47   CurrentMediaDuration NOT_IMPLEMENTED
     2020-06-03 18:12:47   CurrentPlayMode NORMAL
     2020-06-03 18:12:47   CurrentRecordQualityMode NOT_IMPLEMENTED
     2020-06-03 18:12:47   CurrentSection  0
     2020-06-03 18:12:47   CurrentTrack    1
     2020-06-03 18:12:47   CurrentTrackDuration 0:00:00
     2020-06-03 18:12:47   CurrentTrackMetaData_AlbumArtUri http://192.168.20.71:1400/getaa?s=1&u=x-sonosapi-stream:s306651%3fsid%3d254%26flags%3d8224%26sn%3d0
     2020-06-03 18:12:47   CurrentTrackMetaData_ItemId -1
     2020-06-03 18:12:47   CurrentTrackMetaData_ParentId -1
     2020-06-03 18:12:47   CurrentTrackMetaData_ProtocolInfo sonos.com-http:*:application/octet-stream:*
     2020-06-03 18:12:47   CurrentTrackMetaData_Title DJ Mag Germany Radio by iloveradio.de
     2020-06-03 18:12:47   CurrentTrackMetaData_TrackUri x-sonosapi-stream:s306651?sid=254&flags=8224&sn=0
     2020-06-03 18:12:47   CurrentTrackMetaData_UpnpClass object.item
     2020-06-03 18:12:47   CurrentTrackURI x-sonosapi-stream:s306651?sid=254&flags=8224&sn=0
     2020-06-03 18:12:47   CurrentTransportActions Set, Stop, Play
     2020-06-03 18:12:47   DirectControlIsSuspended false
     2020-06-03 18:12:47   Duration        0:02:08
     2020-06-03 18:12:47   EnqueuedTransportURI x-sonosapi-stream:s306651?sid=254&flags=8224&sn=0
     2020-06-03 18:12:47   EnqueuedTransportURIMetaData_ItemId -1
     2020-06-03 18:12:47   EnqueuedTransportURIMetaData_ParentId -1
     2020-06-03 18:12:47   EnqueuedTransportURIMetaData_Title DJ Mag Germany Radio by iloveradio.de
     2020-06-03 18:12:47   EnqueuedTransportURIMetaData_UpnpClass object.item.audioItem.audioBroadcast
     2020-06-03 18:12:44   HeadphoneConnected false
     2020-06-03 18:12:47   ItemId          -1
     2020-06-03 18:12:44   Loudness        true
     2020-06-03 18:12:44   Mute_LF         false
     2020-06-03 18:12:44   Mute_Master     false
     2020-06-03 18:12:44   Mute_RF         false
     2020-06-03 18:12:47   NumberOfTracks  1
     2020-06-03 18:12:44   OutputFixed     false
     2020-06-03 18:12:47   ParentId        -1
     2020-06-03 18:12:47   PlaybackStorageMedium NETWORK
     2020-06-03 18:12:47   PossiblePlaybackStorageMedia NONE, NETWORK
     2020-06-03 18:12:47   PossibleRecordQualityModes NOT_IMPLEMENTED
     2020-06-03 18:12:47   PossibleRecordStorageMedia NOT_IMPLEMENTED
     2020-06-03 18:12:44   PresetNameList  FactoryDefaults
     2020-06-03 18:12:47   ProtocolInfo    sonos.com-spotify:*:audio/x-spotify:*
     2020-06-03 18:12:47   RecordMediumWriteStatus NOT_IMPLEMENTED
     2020-06-03 18:12:47   RecordStorageMedium NOT_IMPLEMENTED
     2020-06-03 18:12:47   RestartPending  false
     2020-06-03 18:12:47   SleepTimerGeneration 0
     2020-06-03 18:12:47   SnoozeRunning   false
     2020-06-03 18:12:44   SpeakerSize     5
     2020-06-03 18:12:44   SubCrossover    0
     2020-06-03 18:12:44   SubEnabled      true
     2020-06-03 18:12:44   SubGain         0
     2020-06-03 18:12:44   SubPolarity     0
     2020-06-03 18:12:47   Title           Sweet Dreams
     2020-06-03 18:12:47   TrackUri        x-sonos-spotify:spotify:track:7tNAeLkrsnOqKXWTmd8cQp?sid=9&flags=8224&sn=3
     2020-06-03 18:12:47   TransportPlaySpeed NOT_IMPLEMENTED
     2020-06-03 18:12:47   TransportState  STOPPED
     2020-06-03 18:12:47   TransportStatus OK
     2020-06-03 18:12:44   Treble          0
     2020-06-03 18:12:47   UpnpClass       object.item.audioItem.musicTrack
     2020-06-03 18:12:44   Volume_LF       100
     2020-06-03 18:12:44   Volume_Master   49
     2020-06-03 18:12:44   Volume_RF       100
     2020-06-03 18:14:45   connected       0
     2020-06-03 18:12:47   state           STOPPED
     2020-06-03 18:12:47   trackUri        x-sonos-spotify:spotify%3atrack%3a7tNAeLkrsnOqKXWTmd8cQp?sid=9&flags=8224&sn=3
     2020-06-03 18:12:45   volume          15
Attributes:
   IODev      sonosmqtt
   readingList mqttjs_9749c474:sonos/connected:.* connected
mqttjs_9749c474:sonos/status/wohnzimmer/volume:.* volume
mqttjs_9749c474:sonos/status/k\xc3\xbcche/renderingcontrol:.* { json2nameValue($EVENT) }
mqttjs_9749c474:sonos/status/k\xc3\xbcche/volume:.* volume
mqttjs_9749c474:sonos/status/badezimmer/state:.* state
mqttjs_9749c474:sonos/status/badezimmer/trackUri:.* trackUri
mqttjs_9749c474:sonos/status/badezimmer/track:.* { json2nameValue($EVENT) }
mqttjs_9749c474:sonos/status/badezimmer/volume:.* volume
mqttjs_9749c474:sonos/status/k\xc3\xbcche/avtransport:.* { json2nameValue($EVENT) }
mqttjs_9749c474:sonos/status/k\xc3\xbcche/state:.* state
mqttjs_9749c474:sonos/status/k\xc3\xbcche/trackUri:.* trackUri
mqttjs_9749c474:sonos/status/k\xc3\xbcche/track:.* { json2nameValue($EVENT) }
mqttjs_9749c474:sonos/status/wohnzimmer/state:.* state
mqttjs_9749c474:sonos/status/wohnzimmer/trackUri:.* trackUri
mqttjs_9749c474:sonos/status/wohnzimmer/track:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE

Das sind nun wirkliche Stati Anzeigen. Ich glaube wir müssen/haben mit dem Ergebnis:
A) Nochmal schauen ob wir eine sinnige Zuordnung der Readings hin bekommen.
B) das Ziel von mute false/true nicht erreicht. Bei mir kann ich dem Gerät keine Statusänderung entlocken.
C) schonmal saubere volume
D) Ich hab jetzt nur schnell testen können aber es geht noch ein wenig mehr.

https://www.npmjs.com/package/sonos2mqtt#distinct-messages    Einfach mal die paar Zeilen runter lesen...




@TomLee
Bitte erleutere deine Frage zu speak genauer.... Ich glaube Ahnung zu haben aber verstehe nicht was du sagen möchtest. Speak an sich wird gehen...wie, weiß ich noch nicht. Allerdings hat man im Sonos Modul z.B. einfach einen Pfad mit den Dateien und diese werden auch automatisch erzeugt. Deine Frage verstehe ich aber leider nicht.

TomLee

Und wo ist jetzt das reading zu mute on/off? sehe sie erst mal nicht, das hab ich vorhin nachdem du geschrieben hattest du kommst gleich nach Hause  ausprobiert !


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) }\
sonos/status/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 mute
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 coordinatorUuid RINCON_000E58F7F67C01400
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_Album Weihnachts CD
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_AlbumArtUri http://192.168.188.38:1400/getaa?s=1&u=x-sonos-http:library%2ftracks%2f35754a47-37ea-4c09-b522-8c3af89953fe%2f.mp3%3fsid%3d201%26flags%3d0%26sn%3d5
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_Artist Prinzessin
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_Duration 1:12:28
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_ItemId -1
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_ParentId -1
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_ProtocolInfo sonos.com-http:*:audio/mpeg:*
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_Title PrinzessinLillifeeunddaskleineEinhornDasOriginal-HörspielzumKinofilm_ep7_HhMVFs_dp65-zrBUJZhrIkDdS9
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_TrackUri x-sonos-http:library/tracks/35754a47-37ea-4c09-b522-8c3af89953fe/.mp3?sid=201&flags=0&sn=5
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 currentTrack_UpnpClass object.item.audioItem.musicTrack
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 16:01:33 enqueuedMetadata_Album Reggae Gold 1997
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 16:01:33 enqueuedMetadata_AlbumArtUri http://192.168.188.38:1400/getaa?u=x-file-cifs:%2f%2f192.168.188.26%2fOwnMusic%2fTony%20Rebel%2fIf%20Jah.mp3&v=81
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 16:01:33 enqueuedMetadata_Artist Tony Rebel
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 17:20:58 enqueuedMetadata_ItemId
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 17:20:58 enqueuedMetadata_ParentId
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 17:20:58 enqueuedMetadata_Title
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 17:20:58 enqueuedMetadata_UpnpClass object.item.audioItem.musicTrack
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 groupName Wohnzimmer
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 mute false
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 mute_LF false
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 mute_RF false
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 name Wohnzimmer
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_Album Rasta Philosophy
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_AlbumArtUri http://192.168.188.38:1400/getaa?s=1&u=x-sonos-http:library%2ftracks%2f92c25731-b9a2-4bcf-a119-f78a9b2b965a%2f.mp3%3fsid%3d201%26flags%3d0%26sn%3d5
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_Artist Iqulah
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_Duration 0:05:06
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_ItemId -1
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_ParentId -1
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_ProtocolInfo sonos.com-http:*:audio/mpeg:*
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_Title Rasta Magic
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_TrackUri x-sonos-http:library/tracks/92c25731-b9a2-4bcf-a119-f78a9b2b965a/.mp3?sid=201&flags=0&sn=5
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 nextTrack_UpnpClass object.item.audioItem.musicTrack
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 playmode NORMAL
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 18:11:15 state mute
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 transportState PLAYING
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 ts 1591204444853
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 uuid RINCON_000E58F7F67C01400
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 volume 10
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 volume_LF 100
setstate MQTT2_SONOS_SPEAKER_WOHNZIMMER 2020-06-03 19:14:05 volume_RF 100




87insane

#78
Du hattest aber gelesen was ich bei
ZitatB) das Ziel von mute false/true nicht erreicht. Bei mir kann ich dem Gerät keine Statusänderung entlocken.
geschrieben habe?

Ich wollte jetzt mal die Advanced func testen. Ggf. geht es damit.


Ganz ehrlich das muss ein BUG sein. Die Werte, werden immer mit false gesendet. Also ich habe in der Sache, heute Mittag gedacht was gefunden zu haben. Aber das war ein verrutscher. Die Test Box neben mir, um auch zu hören ob das alles wirklich klappt, hat loudnes an. Das steht genau da drüber. Aber ich habe vorhin die komplette Bridge auseinander genommen und mir alles einzeln senden lassen. Ich bin fast verrückt geworden. Egal wie...die Werte kommen falsch.
Trotz allem ist das "neue" Device eine Sache die wir nutzen sollten.

Otto123

#79
Ich habe etwas getestet, sowas hier funktioniert:
set sonosmqtt publish sonos/RINCON_347E5C82560801400/control {  "command": "adv-command", "input": { "cmd": "AVTransportService.Pause", "val": { "InstanceID": 0}}}
set sonosmqtt publish sonos/RINCON_347E5C82560801400/control {"command": "adv-command","input": {"cmd": "RenderingControlService.SetVolume","val": {"InstanceID": 0,"Channel": "Master","DesiredVolume": 20}}}
set sonosmqtt publish sonos/RINCON_347E5C82560801400/control {  "command": "joingroup",  "input": "BadWanne"}
set sonosmqtt publish sonos/RINCON_347E5C82560801400/control {  "command": "leavegroup",  "input": "BadWanne"}

set sonosmqtt publish sonos/RINCON_347E5C82560801400/control {  "command": "joingroup",  "input": "BadWanne"}
sleep 5;set sonosmqtt publish sonos/RINCON_347E5C82560801400/control {  "command": "leavegroup",  "input": "BadWanne"}
sleep 10;set sonosmqtt publish sonos/RINCON_347E5C82560801400/control {  "command": "play"}

Bei mute ändert sich leider nix.
Was ich versucht habe ist Radio oder so zu starten, das habe ich nicht hinbekommen. Die URI ist offenbar anders als im Reading angegeben.

Ich verstehe die letzte Übung noch nicht ganz  :-[
Edit: Ok neuer Parameter und damit neues Device. Das ist sowas wie minimal Readings?

Ah ok: Zum radio starten muss/kann man die Kurze TrackUri nehmen:
set sonosmqtt publish sonos/RINCON_347E5C82560801400/control {  "command": "setavtransporturi",  "input": "x-sonosapi-stream:s6628?sid=254&flags=8224&sn=0"}
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

 >:(

Sry, zwei Fehler hatte ich gemacht  ::) ein .* unterschlagen und nicht richtig gelesen, name_of_speaker und nicht die uuid_of_speaker, trotzdem kamen Readings dazu mein ich, das muss ich mir aber später anschauen was genau jetzt rauskommt.

sonos/status/RINCON_000E58F7F67C01400 { json2nameValue($EVENT,'',$JSONMAP) }

87insane

#81
ZitatIch verstehe die letzte Übung noch nicht ganz  :-[
Das war mehr ein gedanklicher Absturz meinerseits. Da dies für mich bedeutet, nochmal zu gucken was man nun nimmt. In dem letzteren sind meiner Meinung nach die sinnvollsten Readings.
Ich glaube ich bin heute aber mal früher rauß. Ich brauch mal ein paar Minuten leben :)

@TomLee: Ich bin mir zu 99% sicher das du das bei issues melden muss. Das wird nicht an FHEM liegen.

@Beta-User: Ist die Bridge so nicht etwas schöner?
Internals:
   CID        mqttjs_73ae6b29
   DEF        mqttjs_73ae6b29
   DEVICETOPIC MQTT_sonos_bridge
   FUUID      5ed667cd-f33f-fcb4-5f6d-7bea3adb84022d9c
   IODev      sonosmqtt
   LASTInputDev sonosmqtt
   MSGCNT     20
   NAME       MQTT_sonos_bridge
   NR         447
   STATE      restart
   TYPE       MQTT2_DEVICE
   sonosmqtt_MSGCNT 20
   sonosmqtt_TIME 2020-06-03 20:18:37
   OLDREADINGS:
   READINGS:
     2020-06-03 20:11:35   config_RINCON_5CAAFD79D52801400 {"available_commands":["adv-command","command","joingroup","leavegroup","mute","next","notify","pause","play","playmode","previous","queue","seek","selecttrack","setavtransporturi","sleep","speak","stop","switchtoline","switchtoqueue","switchtotv","toggle","unmute","volume","volumedown","volumeup"],"command_topic":"sonos/RINCON_5CAAFD79D52801400/control","device":{"identifiers":["RINCON_5CAAFD79D52801400"],"manufacturer":"Sonos","name":"Badezimmer"},"device_class":"speaker","icon":"mdi:speaker","json_attributes":true,"json_attributes_topic":"sonos/RINCON_5CAAFD79D52801400","name":"Badezimmer","state_topic":"sonos/RINCON_5CAAFD79D52801400","unique_id":"sonos2mqtt_RINCON_5CAAFD79D52801400_speaker","availability_topic":"sonos/connected","payload_available":"2"}
     2020-06-03 20:11:35   config_RINCON_7828CAF427B201400 {"available_commands":["adv-command","command","joingroup","leavegroup","mute","next","notify","pause","play","playmode","previous","queue","seek","selecttrack","setavtransporturi","sleep","speak","stop","switchtoline","switchtoqueue","switchtotv","toggle","unmute","volume","volumedown","volumeup"],"command_topic":"sonos/RINCON_7828CAF427B201400/control","device":{"identifiers":["RINCON_7828CAF427B201400"],"manufacturer":"Sonos","name":"Wohnzimmer"},"device_class":"speaker","icon":"mdi:speaker","json_attributes":true,"json_attributes_topic":"sonos/RINCON_7828CAF427B201400","name":"Wohnzimmer","state_topic":"sonos/RINCON_7828CAF427B201400","unique_id":"sonos2mqtt_RINCON_7828CAF427B201400_speaker","availability_topic":"sonos/connected","payload_available":"2"}
     2020-06-03 20:11:35   config_RINCON_7828CAF4289001400 {"available_commands":["adv-command","command","joingroup","leavegroup","mute","next","notify","pause","play","playmode","previous","queue","seek","selecttrack","setavtransporturi","sleep","speak","stop","switchtoline","switchtoqueue","switchtotv","toggle","unmute","volume","volumedown","volumeup"],"command_topic":"sonos/RINCON_7828CAF4289001400/control","device":{"identifiers":["RINCON_7828CAF4289001400"],"manufacturer":"Sonos","name":"Küche"},"device_class":"speaker","icon":"mdi:speaker","json_attributes":true,"json_attributes_topic":"sonos/RINCON_7828CAF4289001400","name":"Küche","state_topic":"sonos/RINCON_7828CAF4289001400","unique_id":"sonos2mqtt_RINCON_7828CAF4289001400_speaker","availability_topic":"sonos/connected","payload_available":"2"}
     2020-06-03 20:18:37   connected       0
Attributes:
   IODev      sonosmqtt
   bridgeRegexp mqttjs_73ae6b29/(RINCON_[A-Za-z0-9._]*)[/]?.*:.* "$1"
mqttjs_73ae6b29/sonos/status/badezimmer/.*:.* "$1"
   devStateIcon { my $amp = ReadingsVal($name,"connected","0") eq "0" ? "rot" : ReadingsVal($name,"connected","0") eq "1" ? "gelb" : "gruen";;
my $stateinfo = ReadingsVal($name,"connected","0") eq "0" ? "sonos2MQTT Dienst ist aus" : ReadingsVal($name,"connected","0") eq "1" ? "sonos2MQTT findet kein SONOS Gerät" : "sonos2MQTT läuft!";;
my $show = "".FW_makeImage("10px-kreis-".$amp)."";;
"
$show $stateinfo
" }
   readingList sonos/connected:.* connected
  homeassistant/music_player/RINCON_([0-9A-Z]+)/sonos/config:.* { $TOPIC =~ m,(RINCON_[0-9A-Z]+),; { "config_$1"=>$EVENT }}
  sonos/status/[^/]+/avtransport:.* {}
  sonos/status/[^/]+/renderingcontrol:.* {}
   room       MQTT2_DEVICE
   setList    restart:noArg {system ("sudo -u root /opt/fhem/FHEM/restart.sh &")}
start:noArg {system ("sudo -u root /opt/fhem/FHEM/start.sh &")}
stop:noArg {system ("sudo -u root /opt/fhem/FHEM/stop.sh &")}


-devstateicon
-setlist ggf?
-stateformat wolltest lieber aber macht das wirklich einen Unterschied? Besser direkt so als man baut es in 3 Wochen wieder um.

Otto123

Was auch geht: vorhandene mp3 spielen:
set sonosmqtt publish sonos/RINCON_347E5C82560801400/control {  "command": "setavtransporturi",  "input": "x-file-cifs://192.168.56.83/SonosSpeak/RINCON_000E586BE2A201400_MR_Speak_46997c34b47c65d08088f6e6f011de47b09bea29.mp3"}
Das wäre ein Ansatz, die Ansagen vom TEXT2SPEECH Modul erzeugen lassen und dann über Sonos ausgeben. Das T2S hatte einen "Server Modus"
Jetzt hat man Steuerung stop play volume mute
Gruppierung
URI starten (radio oder Datei)

Eingänge umschalten fehlt mir noch. Da ist offenbar einfach der x-sonos-htastream nicht implementiert und ich bin zu doof das über adv-command zu machen.
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 hab durchaus mehr und es dürfen bitte und gerne alle mit testen und weiter machen... :)

https://forum.fhem.de/index.php/topic,111711.msg1060092.html#msg1060092

Mute usw geht ja auch nur eben das Reading kommt falsch. Volume könnte zb mit dem weiterem Parameter beim starten des Dienstes so übernommen werden. Es gibt leider zu wenig Details zu --distinct

Otto123

Ich wollte damit sagen: Die habe ich getestet. :)

Und man braucht eventuell eine Abfrage von Sonos. Also "liefere mir die Favoriten" oder so. Alles was ich da mit get abrufen kann landet irgendwie im Nirwana.

Im sonos-command-mapping.js habe ich mMn einen Fehler gefunden (bez. switchtotv) aber wenn ich den behebe - wie es logisch aussieht - bessert sich nichts :(
Schluß jetzt :)
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: 87insane am 03 Juni 2020, 20:17:09
@Beta-User: Ist die Bridge so nicht etwas schöner?
-devstateicon
-setlist ggf?
-stateformat wolltest lieber aber macht das wirklich einen Unterschied? Besser direkt so als man baut es in 3 Wochen wieder um.
- devStateIcon bitte möglichst indirekt via stateFormat. Ich kämpfe grade mit seltsamen Effekten am tasmota_POW...
- Mit sh commands tue ich mich schwer. Da muß das Umfeld passen, und ich will niemandem erklären, wie man einem untergeordneten Dienst-user wie fhem Admin-Rechte verschafft. Ist meine Meinung, kann man drüber streiten, aber ich will es nicht. (Basta!)

Zitat von: Otto123 am 03 Juni 2020, 18:10:03Ich habe einfach alles was ich bisher an MQTT2_Devices hatte gelöscht.
[..]
Grundsätzlich sollte es reichen, nach dem Löschen "irgendwas" zu machen, es müßte reichen, die Lautstärke (an der Hardware direkt, z.B.) zu ändern, damit man das "Bridge-Device" per autocreate bekommt. Darauf denn das passende Template, dann wieder Lautstärke  und man sollte den Speaker automatisch bekommen. Nix händisch...

Jedenfalls habe ich den Zwischenstand (bzw. das, was ich davon verstanden zu haben glaube) eben mal wieder eingecheckt...
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

87insane

Zitatmit seltsamen Effekten am
Kannst du die beschreiben? Habe alles mögliche im Einsatz und gerade bei diesen "komischen" Dingen, kann ich sicher mal ein paar alte Threads rauß ziehen - alle hielten mich für bekloppt! Aber hatte auch alles mit oder ohne Hilfe, irgendwann gefunden.
Es muss kein sh sein. Es könnte ja was besseres aus fhem ebene sein. Du bist selber doch auch kreativ :) Bin ich deinen Weg gegangen und wollte "durch die templates inspirieren", aua aua :-P

ZitatGrundsätzlich sollte es reichen, nach dem Löschen "irgendwas" zu machen, es müßte reichen, die Lautstärke (an der Hardware direkt, z.B.) zu ändern, damit man das "Bridge-Device" per autocreate bekommt. Darauf denn das passende Template, dann wieder Lautstärke  und man sollte den Speaker automatisch bekommen. Nix händisch...
Gerät löschen und einfach die Bridge eben neu starten. Ist am einfachsten...Ist das gleiche wie announce in diesem Moment.

TomLee

Gibts für npm update einen extra Parameter, das man mit sudo npm update -g sonos2mqtt auch die Pre-Release Version bekommt oder geht das nicht ?

Beta-User

ZitatGerät löschen und einfach die Bridge eben neu starten. Ist am einfachsten...Ist das gleiche wie announce in diesem Moment.
Das kann man machen, wenn man meint, alle Readings haben zu müssen, bevor man das attrTemplate anwendet.

Zur allg. Info aber noch ein paar Anmerkungen dazu:
Wenn man eine bridgeRegexp hinzufügt oder ändert, wird readingList gelöscht (hatten wir schon) und auch alle Readings. Ergo ist das Device eh "kaputt". Was man für das attrTemplate hier braucht, ist das "sonos", wie Otto ja schon ausgeführt hatte. Entweder man nutzt das Dialogfeld, oder man hat halt "irgendeinen" readingList-Eintrag, aus dem das extrahiert werden kann. Dafür sollte ein simples "lauter" oder "leiser" genügen, man braucht nicht "die große Wumme"...
Erst wenn das erste (Bridge-) Device "fertig" ist, macht es ggf. Sinn, den Dienst neu zu starten, weil man eventuell dann erst wieder alle Infos dazu gepublisht werden. Wer's braucht und nicht warten will, weiß also jetzt, wann es wirklich Sinn macht irgendwas neu zu starten... (Je nach der Funktionalität des Client (=sonos2mqtt) reicht es auch, den MQTT-Server (=FHEM) eine Zeitlang auszuschalten, aber wer will das schon?).

Zitat von: 87insane am 03 Juni 2020, 22:54:54
Kannst du die beschreiben?
Ist hier OT, bitte ggf. in diesen Thread einsteigen:
https://forum.fhem.de/index.php/topic,111576.0.html
Auch das hier scheint damit zusammenzuhängen, das devStateIcon bzw. das Symbol wird nicht angezeigt:
https://forum.fhem.de/index.php/topic,111779.msg1060238.html#msg1060238

Zitat
Es muss kein sh sein. Es könnte ja was besseres aus fhem ebene sein. Du bist selber doch auch kreativ :) Bin ich deinen Weg gegangen und wollte "durch die templates inspirieren", aua aua :-P
Nochmal: Admin-Tasks gehören nach meiner persönlichen Überzeugung nicht in den Rechtebereich des users fhem. Ende der Überlegung und Kreativität. Wenn der Dienst sich via MQTT-Command neu starten läßt (wie shelly/Tasmota), von mir aus; das ist aber von der Berechtigungs-Seite her was anderes!
Wenn du das anders siehst, ist das ok, und auch manche Entwickler bieten ja Module an, z.B. OS-updates über FHEM anzuschucken. Aber ich halte das für pinzipiell falsch und werde diese Art von Option nicht in Code einbauen, den ich zu verantworten habe.
Das war mit "Basta!" gemeint.
(Im Übrigen ist es so, dass hoffentlich auch gar kein Bedarf für Neustarts besteht und wenn, man sich an den Entwickler wendet, damit der das Problem beseitigt und wir nicht erklären müssen, wie man Symptombekämpfung betreibt...!)
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

87insane

#89
Jo ich schaue mal was man noch so machen kann. Aber hat noch keine Premisse.
Hab gesehen das du beim Entwickler 2 Updates erreichen konntest. Gut gut! Hattest du auch auf das Reading mute hingewiesen?
Sehe gerade er hatte auf meine Mail reagiert. Geil.

Sogar schon drin...
https://www.npmjs.com/package/sonos2mqtt/v/3.0.6-beta.2

https://github.com/svrooij/sonos2mqtt/issues