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.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) 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.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) 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.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

m8ichael

Hallo zusammen,

Zitat von: Ralli am 24 Februar 2025, 12:29:57Das 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.


Ja, das funktioniert auch bei mir. Allerdings mit der kleinen Einschränkung, dass bei verbundenen Geräten nur das "Hauptgerät" die Sprachausgabe abspielt. Die anderen Geräte bleiben während der Ausgabe einfach stumm. Könnt ihr das bei euch reproduzieren?

Gruß
Michael

ch.eick

#1451
Moin,
ich bin wieder sch...e im Suchen und kann nach dem RPI4 auf RPI5 Umzug die Definition für die TTS Freigabe nicht mehr finden.
Ich verwende das TTS mit cache cache, jedoch bekomme ich eine Meldung, dass der Zugriff vom Sonos zum FHEM Server nicht erlaubt ist.
Sonos2mqtt ist im docker container.

Man musste doch irgendwie smb configurieren, aber wie ging das mit TTS cache cache?
Muss da smb im fhem docker container aktiviert werden?
Vom Browser aus kann die mp3 abgespielt werden.
Ich habe auch ein allowfrom mit der IP der Sonos Box definiert, was sich nach dem Umzug nicht geändert hat.

Sorry, ich finde die Doko im Wiki einfach nicht :-(

VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Otto123

In Wiki einfach nach sonos2mqtt suchen. Es gibt zwei Artikel dazu.
Smb braucht es nicht, es läuft über http
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

ch.eick

Zitat von: Otto123 am 25 April 2025, 18:53:13In Wiki einfach nach sonos2mqtt suchen. Es gibt zwei Artikel dazu.
Smb braucht es nicht, es läuft über http
Okay,
welches Zauberwort brauche ich dann, damit die Sonos Box Zugriff bekommt?
Im Browser kann man die mp3 abrufen.
Und die anderen WEB Devices sind ja auch so geblieben wie sie waren, da steht auch die IP der Sonos Box drin.

Ich weiß nicht wo ich da jetzt in den Devices suchen soll.

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Otto123

Also hier ist die Beschreibung https://wiki.fhem.de/wiki/Sonos2mqtt#Text2Speech_Variante_einrichten
Der Zauber liegt denke ich in diesen Sätzen:
ZitatFür die Funktion ist wichtig, dass das Sonos System den Host im Link zur Datei richtig auflösen kann. Deshalb wird der Hostname und Port des Servers im Reading host des TTS Device als Name oder IP Adresse abgelegt!
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