Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

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

Vorheriges Thema - Nächstes Thema

christian.71

Hallo zusammen,

ich weiß nicht, ob es anderen auch schon aufgefallen ist, aber seitdem meine Sonos One und Sonos Arc auf die Version 14.19.1 geupdated wurden, werden keine Readings beim Template sonos2mqtt_speaker mehr aktualisiert (z. B. transportState bei SonosOne oder Volume beim Sonos Arc). Ist das ein Problem von der Firmware von Sonos oder vom Modul Sonos2mqtt?

Otto123

Ist das Sonos S2? Ich habe noch eine Version 11.6.1
Wo das Problem liegt kann ich so schwer sagen, dazu müsste dazu wissen ob lediglich etwas anderes gesendet wir?
Kannst Du im MQTT2 Server mal die raw Events anschauen, ob überhaupt was von den Boxen kommt?

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

christian.71

Ja, das ist die Sonos S2. Dann hast du ja lange kein Update gemacht.  ;D
Ich habe mir mal den Traffic im MQTT2 Server angeschaut, da kommt schon nichts rein von Sonos.

Otto123

Alles aktuell, aber nicht bereit die Play5 wegzuschmeißen. Deswegen bleib ich wohl auf S1.

Ich glaube noch nicht dran, dass es ein Versionsproblem ist. Wie hast Du den nodejs sonos2mqtt eingebunden? Funktioniert der nicht mehr? Findet der keine Speaker mehr?
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

christian.71

Bis vor kurzem hat auch noch alles funktioniert. Ich benutze die Sonos Steuerung über MQTT schon eine ganze Weile. Befehle mit set funktionieren auch noch. Nur bei den Readings kommt nix. Ich habe gerade auch noch mal nodejs geupdatet und ein fhem Update durchgeführt. Leider ohne Erfolg.  :-\

Otto123

sind die Readings in der Bridge oder in neuen Device gelandet?
Hast Du mal ein list SonosBridge ;)
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

binford6000

Moinsen,
also bei meinen S2 Playern (P1, One, 2x Symfonisk + Beam) mit der neusten S2 Version sieht alles gut aus.
Events und Readings kommen wie gewohnt rein.

VG Sebastian

christian.71

@Otto Mit der Bridge war ein guter Hinweis. Nachdem ich nun mal ein announcementall und ein notifyall beim Bridge Device durchgeführt habe, kommen auch wieder die Readings.  :)  keine Ahnung wieso, aber es geht nun wieder alles, so wie es soll. Danke für die Unterstützung.

50watt

#1253
@Otto: Nimmst du Änderungswünsche für 99_sonos2mqttUtils.pm entgegen?
Ich habe hier in der SonosApp die Radiostationen manuell (mit der Stream URL der Radiostation) hinzugefügt, um der TuneIn Werbung am Beginn der Wiedergabe zu entgehen (In der Sonos App -> TuneIn -> Meine Radiosender -> rechts oben auf "..." -> "Neuen Radiosender hinzufügen").
Diese Radiostationen erscheinen im Device SonosBridge" im Reading "Favorites", haben dann als "TrackUri" "x-rincon-mp3radio" (und nicht "x-sonosapi-stream").
Das führt dazu, dass im Device "SonosBridge" das userReading "favlist" leer bleibt.

Folgende Änderung in 99_sonos2mqttUtils.pm behebt das.
Zusätzlich wird die Erkennung für das userReading "Input" für "Radio" angepasst, damit die "manuell hinzugefügten Radiostationen" auch das userReading "Input" auf "Radio" setzen.


Index: 99_sonos2mqttUtils.pm
===================================================================
--- 99_sonos2mqttUtils.pm (revision 26966)
+++ 99_sonos2mqttUtils.pm (working copy)
@@ -343,7 +343,7 @@
    my $currentTrack_TrackUri = ReadingsVal($name,'currentTrack_TrackUri','');
    return $currentTrack_TrackUri =~ 'x-rincon-stream'
       ? 'LineIn': $currentTrack_TrackUri =~ 'spdif'
-      ? 'TV'    : ReadingsVal($name,'enqueuedMetadata_UpnpClass','') eq 'object.item.audioItem.audioBroadcast'
+      ? 'TV'    : ((ReadingsVal($name,'enqueuedMetadata_UpnpClass','') eq 'object.item.audioItem.audioBroadcast')||($currentTrack_TrackUri =~ 'x-rincon-mp3radio'))
       ? 'Radio' : 'Playlist'
   }
}
@@ -365,7 +365,7 @@
      my $dec = encode($enc, decode_entities($_->{'Title'}));
      $dec =~ s/\s/./g;
      if ($reading eq 'Favorites') {
-     if ( $_->{'TrackUri'} =~ /x-sonosapi-stream/) {
+     if (( $_->{'TrackUri'} =~ /x-sonosapi-stream/)||( $_->{'TrackUri'} =~ /x-rincon-mp3radio/)) {
       push @out,$dec
    }
} else {push @out,$dec}


Liebe Grüße 50watt
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

Otto123

#1254
Hallo 50watt,

ich schau es mir an und arbeite das ein. Bin auch noch nicht dazu gekommen https://forum.fhem.de/index.php/topic,111711.msg1247194.html#msg1247194
Dies ist ja irgendwie die gleiche Baustelle ;)

Danke für Deine Zuarbeit.

Edit: Ich habe das mal so eingecheckt.

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

50watt

Guten Abend Otto123,
Danke für dein rasches Handeln.
Die Version im SVN funktioniert nicht:
346       ? 'TV'    : ReadingsVal($name,'enqueuedMetadata_UpnpClass','') eq 'object.item.audioItem.audioBroadcast' or $currentTrack_TrackUri =~ 'x-rincon-mp3radio'

So funktioniert es:
346              ? 'TV'    : ((ReadingsVal($name,'enqueuedMetadata_UpnpClass','') eq 'object.item.audioItem.audioBroadcast') or ($currentTrack_TrackUri =~ 'x-rincon-mp3radio'))

Würdest du das nochmals ansehen und aktualisieren?
Liebe Grüße
Dieter
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

Otto123

Hallo Dieter,

ich habe es mit einem Klammernpaar weniger eingecheckt. Kannst Du nochmal testen? Bei mir geht das so.

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

50watt

#1257
Lieber Otto,
vielen Dank für die so rasche Antwort. Es funktioniert nicht.
Ich habe
{ Svn_GetFile("contrib/AttrTemplate/99_sonos2mqttUtils.pm", "FHEM/99_sonos2mqttUtils.pm", sub(){ CommandReload(undef, "99_sonos2mqttUtils") }) }
ausgeführt, das fhem log geprüft, und
shutdown restart
ausgeführt. Beim Starten eines Radio Senders wird im sonos2mqtt_speaker das Reading "Input" auf "1" gesetzt und nicht, wie erwünscht, auf "Radio".

Bitte aktualisiere 99_sonos2mqttUtils.pm nochmals ;-)

Liebe Grüße 50watt
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

Otto123

Ja sorry - ich bin sparsam aber nicht fehlerfrei ;)
Man muss den ganzen Ausdruck klammern, aber die Teilausdrücke braucht man in dem Fall mMn nicht klammern.
Jetzt sollte es passen und auch für x-sonosapi-radio funktionieren.
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

50watt

Lieber Otto123,
für mich funktioniert die neue Version von 99_sonos2mqttUtils.pm nun.
Vielen Dank - was für ein Service!
Liebe Grüße
Dieter
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x