Hauptmenü

Sonos Speak Docker

Begonnen von Kassard, 23 Februar 2020, 21:36:54

Vorheriges Thema - Nächstes Thema

ch.eick

Zitat von: Otto123 am 09 November 2020, 09:58:57
natürlich als Verzeichnis  :-X
targetSpeakDir
Das ist der Pfad wo das Modul Sonos hinschreibt (schreiben können muss)
Im Gegensatz zu targetSpeakURL
Das ist die Adresse (URL, SMB Share \\Server\name) wo der Sonos Lautsprecher lesen können muss!Also als erstes schauen, ob eine mp3 im Pfad landet, von dem Modul Sonos erzeugt!
Testen ob sich die mp3 abspielen lässt (lokal auf einem PC oder so)
Von mir aus die Serverfreigabe als Pfad in der SonosApp als Musikbibliothek einbinden - NUR um zu testen ob der Sonoslautsprecher dort zugreifen kann!

Hmm, ich habe eine URL angegeben, weil das Fileshare im Docker Container nicht gemountet ist.
Ein MP3 wurde dort abgelegt, aber es wird nicht abgespielt. Ich schau mir mal den Zugang an, meine Vermutung ist jetzt, dass ich ein Login machen muss, was ja nicht sein soll.

Vielen Dank für die Hilfe
    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

ch.eick

Zitat von: FunkOdyssey am 09 November 2020, 09:55:12
Ich hätte dir gerne meine funktionierende Version meines FHEM/Sonos und Samba-Container inkl. der FHEM-Konfiguration zugeschickt.
Ich weiß, dass das problemlos funktioniert hat. Aber ich bin mittlerweile auf sonos2mqtt umgestiegen und habe die alte Variante vor wenigen Tagen gelöscht.

Ich kann mich an Probleme mit IPV6 erinnern, da hierdurch die MP3-Generierung durch Google enorm verzögert wurde.
Und ich weiß noch, dass man unbedingt SMB1 für den Samba-Container auswählen musste.
Dann sollte ich mir doch mal das sonos2mqtt anschauen.
Hast Du da eine .yml für Docker?
Im Moment läuft es ja noch im fhem Container mit :-(
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

#17
Ob das "nicht mountet" geht (geht sowas in Linux? :-[ ) weiß ich nicht. Wenn da eine mp3 abgelegt wurde - scheint es ja zu gehen - wie auch immer.
Sonos braucht mW auf das Samba Share einen "anonymen" SMB1 Zugang! Bei der Musikbibliothek kannst Du einen Account angeben - Sonos Speak 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

kjmEjfu

Migriere derzeit zu Home Assistant

DrBasch

Hallo! Ich hole den Thread nochmal hoch, da ich ebenfalls die vergangenen Tage damit verbracht habe das Sonos-Modul, FHEM und Samba in Container zu packen und einen ähnlich "Leidensweg" durchschritten habe.  :-\

Auch das Log-Posting von freakadings ähnelte meinen Logs frappierend.

Ich konnte die Sonos-Boxen zwar steuern (Play, Stop, etc) aber nach einem "set Sonos_XYZ Speak 30 de ..." herrschte gespenstische Stille. Mein Sonos-Device war quasi "inselbegabt"...

Ich habe lange meine üblichen "Problemzonen" - Zugriffsrechte, missing dependencies, iptables, etc. -  im Verdacht gehabt und quasi nur dort nach Fehlern gesucht.

Letztlich haben mich aber die Hinweise von FunkOdyssey und Otto bzgl. SMB-Protokollversion 1 auf die richtige Spur gebracht. Vielen Dank  :D

Ich musste die smb.conf meines Samba-Containers (https://hub.docker.com/r/dperson/samba) anpassen, genauer: die settings "client min protocol" bzw. "server min protocol" auf "NT1" umstellen.
Damit lief dann endlich die Sprachausgabe.

smb.conf:
[global]
...
   # Security
   client ipc max protocol = SMB3
   client ipc min protocol = SMB2_10
   client max protocol = SMB3
   client min protocol = NT1
   server max protocol = SMB3
   server min protocol = NT1
...
[sonos4fhem]
   comment = Audio-Files for Sonos-TTS
   path = /mnt/sonos4fhem
   browsable = yes
   guest ok = yes
   read only = no


Gruß,
Steffen

slupus

Habe eine Weile gebraucht, bis ich es zum Laufen bekommen habe. Für alle, die ebenfalls suchen, hier meine Config.
Pfade, IP, Mount müssen angepasst werden.

docker-compose.yml (Samba Container Doku: https://github.com/dperson/samba)

services:
  samba:
    container_name: samba
    ports:
      - "137:137/udp"
      - "138:138/udp"
      - "139:139/tcp"
      - "445:445/tcp"
    volumes:
      - /opt/docker/samba:/SonosSpeak
    image: dperson/samba
    restart: unless-stopped
    environment:
      - TZ=Europe/Berlin
    command: -s "SonosSpeak;/SonosSpeak;yes;no;yes" -g "client min protocol = NT1" -g "server min protocol = NT1"
   
  fhem:
    container_name: fhem
    restart: always
    volumes:
      - /opt/docker/fhem:/opt/fhem
      - /opt/docker/post-start.sh:/post-start.sh
    environment:
      - 'APT_PKGS=cifs-utils'
      - TZ=Europe/Berlin
    image: ghcr.io/fhem/fhem-experimental:dev
    network_mode: host
    ports:
      - "8083:8083"
    cap_add:
      - SYS_ADMIN
      - DAC_READ_SEARCH


post-start.sh

mount -t cifs //192.168.xxx.xx/SonosSpeak /opt/fhem/cache/SonosSpeak -o uid=6061,gid=6061


Sonos in FHEM

defmod Sonos SONOS localhost:4712
attr Sonos targetSpeakDir /opt/fhem/cache/SonosSpeak
attr Sonos targetSpeakMP3FileDir /opt/fhem/cache/SonosSpeak
attr Sonos targetSpeakURL \\192.168.xxx.xxx\SonosSpeak