Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

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

Vorheriges Thema - Nächstes Thema

m8ichael

Hallo Otto,

Zitat von: Otto123 am 16 Februar 2025, 21:09:15Also gerade probiert:
Der Player im Bad spiel Radio (oder einen Musiktitel)
ich mache set alias=Bad speak 25 Hallo
die aktuelle Ausgabe wird mit Hallo unterbrochen und die Musik spielt weiter.

Das funktioniert auch mit sayText ...
Ja, so war das bis neulich auch bei mir. Jetzt kommt halt nur der Text und danach wird die Radiowiedergabe nicht wieder aufgenommen.

Zitat von: Otto123 am 16 Februar 2025, 21:09:15Michael, dein Zitat ist eine Erklärung der Arbeitsweise, keine Anweisung es so zu tun?!

Ich habe ein aktuelles Sonos, allerdings noch Version S1, die neue Version S2 kann und will ich nicht testen.
Vielleicht liegt es daran - ich bin bereits auf S2 und aktuell frickelt SONOS da ziemlich viel dran herum gefühlt alle paar Tage kommt ein Update vom Update vom... Allerdings sehen die Readings bei den einzelnen Playern erst einmal nicht unauffällig aus. So, wie ich gesehen habe, wird ja bei der Wiederaufnahme der ursprünglichen "Sendung" auf eine Status-Abfolge referenziert, richtig? Mag sein, dass hier jetzt ein "play" und "PLAYING" etc. weniger kommt, sodass jetzt genau diese Abfolge nicht mehr triggert. Die direkt Steuerung ist nach wie vor direkt und vor allem auch ohne eine Latenz möglich.

Gruß
Michael

binford6000

ZitatAlso gerade probiert:
Der Player im Bad spiel Radio (oder einen Musiktitel)
ich mache set alias=Bad speak 25 Hallo
die aktuelle Ausgabe wird mit Hallo unterbrochen und die Musik spielt weiter.
Hier auch mit S2. Ich nutze sonos-tts-polly zur Sprachausgabe. Läuft seit Jahren (und trotz SONOS Updates) sehr stabil.

VG Sebastian

m8ichael

Hi,

Zitat von: binford6000 am 19 Februar 2025, 07:28:14
ZitatAlso gerade probiert:
Der Player im Bad spiel Radio (oder einen Musiktitel)
ich mache set alias=Bad speak 25 Hallo
die aktuelle Ausgabe wird mit Hallo unterbrochen und die Musik spielt weiter.
Hier auch mit S2. Ich nutze sonos-tts-polly zur Sprachausgabe. Läuft seit Jahren (und trotz SONOS Updates) sehr stabil.

VG Sebastian

Es liegt hier bei mir ganz offenbar daran, dass das Ende der Sprachausgabe nicht erkannt wird und damit der ursprüngliche Stream nicht wiederaufgenommen wird. Egal, ob ich nun mittels notify oder wie oben beschrieben mit speak die Sprachausgabe starte, die Sprachausgabe erfolgt, danach passiert jedoch nichts mehr. Hat jemand einen Tipp, an welcher Stelle das debugged werden kann?

Gruß
Michael

Ralli

Ich habe schon erfolglos mit den diversen Parametern experimentiert:

https://sonos2mqtt.svrooij.io/control/notifications.html

Ggf. ist es nötig, einen Issue in Github aufzumachen.
Gruß,
Ralli

Proxmox 8.3 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.79.6.20250220) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Otto123

@m8ichael Wie machst Du die Textumwandlung? Mit Text2Speech oder dem Sonos Text to Speech Modul.
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

m8ichael

Hallo Otto,

Zitat von: Otto123 am 23 Februar 2025, 10:12:24@m8ichael Wie machst Du die Textumwandlung? Mit Text2Speech oder dem Sonos Text to Speech Modul.

Bei mir läuft es über das Text2Speech-Modul. Das Modul selbst funktioniert und die generierten mp3-Dateien können vom Sonos-Player gelesen und auch abgespielt werden.

Im Rahmen des Experimentierens ist noch ein zweiter Punkt aufgefallen: Ist es richtig, dass die attrTemplate-Vorlage zum SonosPlayer nicht der in diesem Thread diskutierten Fassung entspricht? Oder ist bei mir irgendwie noch eine alte Fassung im System? Ich habe nämlich einmal testweise einen Sonos-Player in fhem gelöscht, wollte diesen nun wieder neu anlegen und das klappt nicht wirklich. Zwar wird er wieder neu angelegt (RINCON...), aber es erfolgt keine automatische Zuweisung des entsprechenden Templates. Trage ich dann von den anderen Playern die Attribute (angepasst) ein, so kann ich den Player zwar steuern, aber Readings werden nicht wirklich aktualisert. Wo stehe ich da auf dem Schlauch?

Viele Grüße
Michael


m8ichael

Hi Ralli,

Zitat von: Ralli am 23 Februar 2025, 09:57:59Ich habe schon erfolglos mit den diversen Parametern experimentiert:

https://sonos2mqtt.svrooij.io/control/notifications.html

Ggf. ist es nötig, einen Issue in Github aufzumachen.

Ich hatte bisher gar nicht realisiert, dass die notify ein Feature von sonos2mqtt ist. Hmm, dann scheint dort etwas krumm zu sein, oder? Stellt sich nur die Frage, ob da noch etwas passiert, denn das letzte Release ist ja auch nicht ganz taufrisch...  ::)

Gruß
Michael

Otto123

Vorsicht! notify ist eine FHEM Device Typ, aber Stefan hat auch eine Funktion die diesen Namen hat in sein sonos2mqtt Modul gepackt.

Das anlegen der Player passiert durch ein notify n_configSonos - ist das vorhanden?
Eingerichtet wird das beim Einrichten der Bridge mit dem Template sonos2mqtt_bridge_comfort, die Speaker werden mit dem Template sonos2mqtt_speaker angelegt. Notwendig ist weiterhin die 99_sonos2mqttUtils.pm.
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

Ralli

Das Problem mit dem nicht wieder einsetzenden Stream nach einem Sonos-Notify ist (bei mir) gelöst.

Man benötigt die letzte Beta, um dann mit dem Schalter "--experimental" die experimentelle Nutzung einer neueren notify-Methode in sonos2mqtt nutzbar zu machen.

Sollte man sonos2mqtt über die im FHEM-Wiki beschriebene Variante installiert haben, lautet der Aufruf daher zum Beispiel:

pm2 start sonos2mqtt -- --experimental true --mqtt mqtt://benutzer:passwort@mqtt_server:1883

Nutzt man sonos2mqtt im Docker-Container, so ist die Umgebungsvariable entsprechend zu setzen, zum Beispiel:

version: "3.7"
services:
  sonos:
    image: ghcr.io/svrooij/sonos2mqtt:beta
    restart: unless-stopped
    ports:
      - "6329:6329"
    environment:
      - SONOS2MQTT_DEVICE=ip_von_einem_sonos_device_eintragen # Service discovery doesn't work very well inside docker, so start with one device.
      - SONOS2MQTT_MQTT=mqtt://benutzername:passwort@mqtt_server:1883
      - SONOS2MQTT_EXPERIMENTAL=true
      - SONOS_LISTENER_HOST=ip_vom_docker_host_eintragen # Docker host IP

Siehe https://github.com/svrooij/sonos2mqtt/issues/208 .
Gruß,
Ralli

Proxmox 8.3 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.79.6.20250220) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Ralli

#1449
Zitat von: valvak am 09 November 2023, 10:09:21Dieser EMQX Broker scheint nicht mit FHEM zu funktionieren.

Ist zwar schon etwas älter, wollte das aber einmal ausprobieren und hier nun "richtig" stellen: EMQX klappt mit FHEM und mit dem sonos2mqtt-Docker-Container einwandfrei. Das schöne an EMQX ist die Web-Oberfläche für die Administration sowie von der Funktionalität her die Möglichkeit, einen MQTT-Cluster zu bauen - wer's braucht.

https://github.com/emqx/emqx

Folgende Konfigurationen und Definitionen funktionieren:

Docker compose für EMQX als eigenständigen Service bzw. Broker:
version: "3.7"
services:
  emqx:
    container_name: emqx-mqtt
    environment:
      - "EMQX_NODE_NAME=emqx@localhost"
    image: emqx/emqx
    restart: unless-stopped
#    network_mode: host
    ports:
      - "1883:1883"
      - "18083:18083"
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    volumes:
        - /volume1/docker/emqx/data:/opt/emqx/data. # Pfad vor dem Doppelpunkt anpassen
        - /volume1/docker/emqx/logs:/opt/emqx/log.  # Pfad vor dem Doppelpunkt anpassen

In EMQX zwei Benutzer z.B. sonos2mqtt und fhem jeweils mit Passwort fhem anlegen und in der acl.conf entsprechend zuweisen:
{allow, {username, "sonos2mqtt"}, all, ["sonos/#"]}.
{allow, {username, "fhem"}, all, ["+/#", "#"]}.
(Diese Zuweisung bedeutet, dass der Benutzer sonos2mqtt (nur) auf das Topic sonos und Unter-Topics komplett lesen und schreiben darf, der Benutzer fhem darf auf alle Topics und Unter-Topics lesend und schreibend zugreifen)

Docker-compose für sonos2mqtt wie im vorherigen Beitrag (oben drüber) nutzen und benutzername:passwort sowie mqtt_server entsprechend abändern.

EMQX-Broker in FHEM definieren:
defmod MQTT2_Client_EMQX MQTT2_CLIENT mqtt_server:1883
attr MQTT2_Client_EMQX clientId FHEM
attr MQTT2_Client_EMQX subscriptions sonos/#
attr MQTT2_Client_EMQX username fhem

Mit "set MQTT2_Client_EMQX password fhem" das Passwort für den Broker-Benutzer setzen.

Die Einrichtung der Bridge wie bekannt.
Gruß,
Ralli

Proxmox 8.3 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.79.6.20250220) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa