Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

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

Vorheriges Thema - Nächstes Thema

Otto123

Zitat von: m8ichael am 06 Juli 2023, 16:25:06nach einem Reboot des Geräts
Hast Du denn einen Autostart für pm2 eingerichtet? Vermutung, du konfigurierst alles mit user a, der Start beim reboot erfolgt mit user b. User a hat eine funktionierende Konfiguration, user b hat gar keine und startet "leer".
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... wobei ich auf der Benutzerebene "pi" ...


Was steht denn in der dump.pm2 ? Ist da s2m mit einem Eintrag vorhanden ?

Im Homeverzeichnis:

nano .pm2/dump.pm2

aski71

Hallo, danke für das spannende Modul, das ich gerade erstmalig eingerichtet habe.
Es scheint grundsätzlich alles funktioniert zu haben und SonosBridge zeigt "connected".
Allerdings wurden bei mir keine Lautsprecher-Devices eingerichtet und ich finde gerade auch nirgendwo was, wie das nun geht.
Autocreate scheint nicht stattgefunden zu haben.
Was muss ich tun?

Otto123

Eigentlich steht hier alles
ZitatEs gibt jetzt zwei Wiki Artikel für die Einrichtung und die Ergebnisse aus diesem Thread:
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Sonos2Mqtt
https://wiki.fhem.de/wiki/Sonos2mqtt
Die "Lautsprecher" werden automatisch erzeugt.
Zeig bitte ein list von deinem MQTT2 Server und von deiner 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

aski71

Zitat von: Otto123 am 12 September 2023, 12:32:57Eigentlich steht hier alles
ZitatEs gibt jetzt zwei Wiki Artikel für die Einrichtung und die Ergebnisse aus diesem Thread:
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Sonos2Mqtt
https://wiki.fhem.de/wiki/Sonos2mqtt
Die "Lautsprecher" werden automatisch erzeugt.
Zeig bitte ein list von deinem MQTT2 Server und von deiner SonosBridge

Eigentlich bin ich genau nach dem vorgegangen, was da eigentlich steht.  ;)
Da gibt's aber auch den ein oder anderen Link, der nur zu 404 führt. Zum Beispiel diesen hier:
https://svrooij.io/sonos2mqtt/getting-started.html

Internals:
   FUUID      6500229b-f33f-2248-8ad8-32a8f5fae86977f2
   NAME       SonosBridge
   NR         592
   STATE      connected
   TYPE       MQTT2_DEVICE
   READINGS:
     2023-09-12 10:34:53   attrTemplateVersion 20210303
     2023-09-12 10:45:11   state           CheckSubscription
Attributes:
   alias      SonosBridge
   bridgeRegexp sonos/(RINCON_[A-Z0-9]+)[:/].* "$1"
   devStateIcon 0:10px-kreis-rot 1:10px-kreis-gelb 2:10px-kreis-gruen
   devicetopic sonos
   getList    Favorites:noArg Favorites {sonos2mqtt($NAME,$EVENT)}
Reply:Favorites,Radios,Playlists Reply {sonos2mqtt($NAME,$EVENT)}
listalarms:noArg Alarms {sonos2mqtt($NAME,$EVENT)}
   icon       mqtt_bridge_2
   model      sonos2mqtt_bridge
   readingList sonos/status/[^/]+/renderingcontrol:.* {}
homeassistant/music_player/RINCON_([0-9A-Z]+)/sonos/config:.* { $TOPIC =~ m,(RINCON_[0-9A-Z]+),; { "config_$1"=>$EVENT }}
sonos/RINCON_([0-9A-Z]+)/Favorites:.* Favorites
sonos/RINCON_([0-9A-Z]+)/Reply:.* Reply
sonos/alarms:.* Alarms
sonos/connected:.* connected
sonos/status/[^/]+/avtransport:.* {}
   room       MQTT2_DEVICE
   setList    CheckSubscription:noArg $DEVICETOPIC/cmd/check-subscriptions
PauseAll:noArg $DEVICETOPIC/cmd/pauseall
announcementall:textField {sonos2mqtt($NAME,$EVENT)}
notifyall:textField {sonos2mqtt($NAME,$EVENT)}
setalarm:textField $DEVICETOPIC/cmd/setalarm
speak:textField {sonos2mqtt($NAME,$EVENT)}
   stateFormat connected
   userReadings favlist:Favorites.* {sonos2mqtt_ur($name,'favlist')},
grouplist:Favorites.* {sonos2mqtt_ur($name,'grouplist')}

Was meinst Du mit einem list von vom MQTT2 Server? Davon lese ich nichts. Nur vom sonos2mqtt Server.

aski71

Ich bin inzwischen weiter gekommen und habe festgestellt: Ich hatte einen mosquitto am Laufen, aber kein MQTT2_CLIENT device.
Das wäre für MQTT Neulinge ein guter Hinweis in der Doku, dass man einen MQTT2_SERVER oder MQTT2_CLIENT einrichten muss.

Jetzt hab ich das und: autocreate hat funktioniert.

Was ich jetzt aber sehe ist, dass mein Sonos Arc offensichtlich nicht richtig erkannt wird.
Da gibt es nur einen Play Button und kein Symbol. Was kann das sein?

aski71

#1326
Habe mit einigem Herumspielen nun auch Arc scheinbar richtig am Start.

Jetzt doch noch eine Frage: Wie erkenne ich, wenn ein Lautsprecher nicht am Strom angeschlossen ist?

Ich kriege über CheckSubscription nichts zurück. Egal, ob der betreffende Lautsprecher am Strom ist oder nicht.
Auch nach Zeit nicht.

Otto123

Zitat von: aski71 am 12 September 2023, 14:02:38Da gibt's aber auch den ein oder anderen Link, der nur zu 404 führt.
Das schaue ich mir an, ja ist halt ein Problem wenn sich der verlinkte Artikel ändert. Sorry  ;D
Zitat von: aski71 am 12 September 2023, 15:50:09Das wäre für MQTT Neulinge ein guter Hinweis in der Doku, dass man einen MQTT2_SERVER oder MQTT2_CLIENT einrichten muss.
Wiki ist für alle :) ich habe das alles für m(eine) Umgebung durchgespielt und beschrieben. Wäre toll wenn Du die Beschreibung im Wiki ergänzt.
Zitat von: aski71 am 12 September 2023, 18:20:43Jetzt doch noch eine Frage: Wie erkenne ich, wenn ein Lautsprecher nicht am Strom angeschlossen ist?
Das bekommst Du über dieses Konstrukt so nicht direkt mit. Ideen dazu:
  • Du hast die IPAdress als Reading - Du kannst mit einem PRESENCE Device (ja geht nicht direkt in der DEF) den Status ermitteln.
  • userReadings mit Perlfunktion zur Abfrage analog Presence.
  • Du schaltest den Strom eh über FHEM? Dann hast Du da den Status.
Zitat von: aski71 am 12 September 2023, 18:20:43Ich kriege über CheckSubscription nichts zurück.
Das fragt das externe sonos2mqtt Modul ab, einen konkreten Status zu einem Lautsprecher liefert das aber nicht.
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

aski71

Zitat von: Otto123 am 12 September 2023, 20:28:22
Zitat von: aski71 am 12 September 2023, 15:50:09Das wäre für MQTT Neulinge ein guter Hinweis in der Doku, dass man einen MQTT2_SERVER oder MQTT2_CLIENT einrichten muss.
Wiki ist für alle :) ich habe das alles für m(eine) Umgebung durchgespielt und beschrieben. Wäre toll wenn Du die Beschreibung im Wiki ergänzt.

Kann ich das so einfach? Wie geht das denn? Hab ich noch nie gemacht.

Zitat von: Otto123 am 12 September 2023, 20:28:22
Zitat von: aski71 am 12 September 2023, 18:20:43Jetzt doch noch eine Frage: Wie erkenne ich, wenn ein Lautsprecher nicht am Strom angeschlossen ist?
Das bekommst Du über dieses Konstrukt so nicht direkt mit. Ideen dazu:
  • Du hast die IPAdress als Reading - Du kannst mit einem PRESENCE Device (ja geht nicht direkt in der DEF) den Status ermitteln.
  • userReadings mit Perlfunktion zur Abfrage analog Presence.
  • Du schaltest den Strom eh über FHEM? Dann hast Du da den Status.

Ah, ok. Schade. Im alten Modul wurde ja die Presence oder Absence je Lautsprecher angezeigt. Dachte, das ginge hier auch irgendwie.
Dann muss ich mir dafür wohl was anderes bauen.
Mein Einsatzfall war ja hier folgender: Ich hab mir ein recht komplexes Script gebaut, das regelbasiert Lautsprecher in anderen Räumen einem Master zugeschaltet werden, wenn dort der Bewegungsmelder getriggert wird, oder das Licht angeht. Wenn dazu erst die Steckdose angehen muss, dauert es ja noch eine Weile, bis der Lautsprecher tatsächlich bereit ist, Befehle entgegen zu nehmen. Das war im alten Modul praktisch, weil ich quasi auf das Event reagiert habe, dass der Lautsprecher online gegangen ist. Das funktioniert leider weder mit IP Presence noch mit Einschalten der Steckdose gut ...

Zitat von: Otto123 am 12 September 2023, 20:28:22
Zitat von: aski71 am 12 September 2023, 18:20:43Ich kriege über CheckSubscription nichts zurück.
Das fragt das externe sonos2mqtt Modul ab, einen konkreten Status zu einem Lautsprecher liefert das aber nicht.

Ich hatte aus diesem Satz im Wiki abgeleitet, dass CheckSubscription mir die presence/absence von Lautsprechern mitteilt, oder irgendwo ein entsprechendes Reading erzeugt oder ein Event auslöst:
ZitatWerden Player temporär abgeschaltet, merkt das der Server nach einer Zeit selbst, oder man forciert dies mit einem CheckSubscription an der Bridge.
Was ist mit diesem Satz tatsächlich gemeint?


Otto123

Fürs Wiki kannst Du einen Account beantragen und dann kann es losgehen. https://wiki.fhem.de/wiki/FHEMWiki:Support
Zitat von: aski71 am 12 September 2023, 23:00:34Was ist mit diesem Satz tatsächlich gemeint?
Siehe hier check-subscription https://sonos2mqtt.svrooij.io/global-commands.html#commands
Zitat von: aski71 am 12 September 2023, 23:00:34weil ich quasi auf das Event reagiert habe, dass der Lautsprecher online gegangen ist.
Dazu habe ich derzeit nicht wirklich eine konkrete, zuverlässige Idee. Am ehesten, dass man einen bestimmten Port auf Erreichbarkeit testet und damit sicher weiß jetzt ist er da. Ich habe da sowas als function im PRESENCE rennen. Ist nicht so toll, weil es blocking läuft.
sub ServiceMonitor {
    my ($host, $port)    = @_;
    return qx( if nc -z -w 1 $host $port 2>/dev/null;then printf 1; else printf 0; fi; );
}
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

ZitatJetzt doch noch eine Frage: Wie erkenne ich, wenn ein Lautsprecher nicht am Strom angeschlossen ist?

Da gibt es ein issue zu:
https://github.com/svrooij/sonos2mqtt/issues/131


aski71

Zitat von: Otto123 am 13 September 2023, 00:04:35Fürs Wiki kannst Du einen Account beantragen und dann kann es losgehen. https://wiki.fhem.de/wiki/FHEMWiki:Support
Zitat von: aski71 am 12 September 2023, 23:00:34Was ist mit diesem Satz tatsächlich gemeint?
Siehe hier check-subscription https://sonos2mqtt.svrooij.io/global-commands.html#commands
Zitat von: aski71 am 12 September 2023, 23:00:34weil ich quasi auf das Event reagiert habe, dass der Lautsprecher online gegangen ist.
Dazu habe ich derzeit nicht wirklich eine konkrete, zuverlässige Idee. Am ehesten, dass man einen bestimmten Port auf Erreichbarkeit testet und damit sicher weiß jetzt ist er da. Ich habe da sowas als function im PRESENCE rennen. Ist nicht so toll, weil es blocking läuft.
sub ServiceMonitor {
    my ($host, $port)    = @_;
    return qx( if nc -z -w 1 $host $port 2>/dev/null;then printf 1; else printf 0; fi; );
}

Darf ich fragen, warum Du nicht nur auf die IP Presence gehst, die mit der PRESENCE ja non-blocking ist?
Wird der Port erst zu einem späteren Zeitpunkt verfügbar nach dem Einschalten?

Otto123

Zitat von: aski71 am 12 September 2023, 23:00:34Das funktioniert leider weder mit IP Presence noch
Ich habe das Problem gar nicht, meine Sonos Boxen sind immer an. ;) Du hast gesagt es geht nicht gut?
Zitat von: aski71 am 16 September 2023, 13:32:12die mit der PRESENCE ja non-blocking ist?
Bist Du da sicher? Ich bin nicht auf dem aktuellen Stand, ich weiß dass es da einen Fork gab und JoWiemann Anfang des Jahres das Modul übernommen hat. SVN sagt, da ist noch nichts passiert:
73_PRESENCE.pm 20782 2019-12-19 10:51:06Z markusbloch
ZitatWird der Port erst zu einem späteren Zeitpunkt verfügbar nach dem Einschalten?
Ist ja eigentlich immer so: erst wird Netzwerk aktiv (ping geht) dann starten Dienste ...
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

andre07

Kann es sein das keine Player angelegt werden wenn noch das andere Modul im System ist.Player werden bei mir keine erzeugt.

Otto123

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