FHEM Forum

FHEM - Anwendungen => Multimedia => Thema gestartet von: stenny am 21 Mai 2018, 11:39:58

Titel: Sonos im Docker - targetSpeakDir auf Server
Beitrag von: stenny am 21 Mai 2018, 11:39:58
Hallo

Ich ziehe momentan mit meinem fhem auf Docker um. Grundsätzlich habe ich fast alles am laufen ausser der Speakfunktion.
Wie kann /muss ich nun das Attribut targetSpeakDir anpassen? Meine Freigabe ist nicht in dem fhem Docker.

Gruß
Carsten
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: pole23 am 21 Mai 2018, 14:34:21
Ich habe bei mir Sonos in einem eigenen Docker laufen. Dort ist auch der Sambaserver drauf. Im FHEM gebe ich dann einfach die IP von dem Dockerserver an.
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: stenny am 21 Mai 2018, 14:37:44
Hallo

Hast du im selben docker den Samba laufen wo auch fhem drin läuft?
Bei mir sind es einzelnen Docker....

im targetSpeakDir gibt man ja nur einen lokalen Pfad an - und eigentlich will ich nichts mounten oder so
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Reinerlein am 21 Mai 2018, 19:34:03
Hallo Carsten,

targetSpeakDir gibt den Pfad an, der vom Sonos-Modul-SubProzess aus (nicht zwingend identisch mit Fhem) beschreibbar erreichbar sein muss.
Es kann z.B. auch ein UNC-Pfad eines "ausserhalb" stehenden (bezogen auf den Docker-Container) NAS-Geräts sein. Verstanden werden alle Angaben, die Perl so als Dateiname akzeptiert...

Grüße
Reinerlein
Titel: Sonos im Docker - targetSpeakDir auf Server
Beitrag von: stenny am 21 Mai 2018, 19:40:02
Zitat von: Reinerlein am 21 Mai 2018, 19:34:03
Hallo Carsten,

targetSpeakDir gibt den Pfad an, der vom Sonos-Modul-SubProzess aus (nicht zwingend identisch mit Fhem) beschreibbar erreichbar sein muss.
Es kann z.B. auch ein UNC-Pfad eines "ausserhalb" stehenden (bezogen auf den Docker-Container) NAS-Geräts sein. Verstanden werden alle Angaben, die Perl so als Dateiname akzeptiert...

Grüße
Reinerlein
Wenn ich dich richtig verstehe kann ich dort als anstatt/opt/fhem/Sonos auch \\192.168.x.y\SonosSpeak angeben?

Gruß
Carsten


Gesendet von iPhone mit Tapatalk
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Reinerlein am 21 Mai 2018, 19:57:08
Hi Carsten,

ja, so ist es zumindest gedacht :)

Grüße
Reinerlein
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: stenny am 21 Mai 2018, 21:12:24
Zitat von: Reinerlein am 21 Mai 2018, 19:57:08
Hi Carsten,

ja, so ist es zumindest gedacht :)

Grüße
Reinerlein

Hallo Reinerlein

Also das gedachte klappt leider nicht....

Habe jetzt im Sonos

targetSpeakDir                    \\192.168.11.49\SonosSpeak
targetSpeakFileTimestamp   1
targetSpeakURL                   \\192.168.11.49\SonosSpeak

eingetragen.

Vorhandene mp3 Dateien lassen sich abspielen. Bei ste Sonos_Wohnzimmer Speak 40 de Test erhalte ich im Log

2018.05.21 21:10:25 3: SONOS1: Load Google generated MP3 (1. Element) from "http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=%20Test" to "\\192.168.11.49\SonosSpeak/RINCON_B8E93772059401400_MR_Speak_20180521-211025.mp31"
2018.05.21 21:10:26 3: SONOS1: Combine loaded chunks into "\\192.168.11.49\SonosSpeak/RINCON_B8E93772059401400_MR_Speak_20180521-211025.mp3"
Use of uninitialized value in concatenation (.) or string at ./FHEM/00_SONOS.pm line 4833, <$client> line 10.
binmode() on closed filehandle MPFILE at ./FHEM/00_SONOS.pm line 4840, <$client> line 10.
print() on closed filehandle MPFILE at ./FHEM/00_SONOS.pm line 4841, <$client> line 10.
2018.05.21 21:10:26 2: SONOS1: Beim Setzen der MP3-Informationen (ID3TagV2) ist ein Fehler aufgetreten: Can't call method "config" on an undefined value at ./FHEM/00_SONOS.pm line 4137, <$client> line 10.

2018.05.21 21:10:26 3: SONOS1: Start temporary playing of "\\192.168.11.49\SonosSpeak/RINCON_B8E93772059401400_MR_Speak_20180521-211025.mp3"
2018.05.21 21:10:26 3: SONOS1: SleepTimer berechnet die Laufzeit des Titels selber, da keine Wartezeit uebermittelt wurde!
2018.05.21 21:10:26 1: SONOS1: Da keine Endzeit ermittelt werden konnte, wird kein Restoring durchgeführt werden!
2018.05.21 21:10:26 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Wohnzimmer".
2018.05.21 21:10:26 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Wohnzimmer".


Hast du dazu vielleicht eine idee

Gruß Carsten
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Reinerlein am 21 Mai 2018, 22:02:37
Hi Carsten,

es sieht nach fehlenden Schreibrechten aus...
Hast du das gecheckt?

Da muss die Freigabe jetzt nicht nur freien lesenden Zugriff haben (also für Gäste), sondern auch schreibenden...

Grüße
Reinerlein
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: stenny am 21 Mai 2018, 22:12:25
Zitat von: Reinerlein am 21 Mai 2018, 22:02:37
Hi Carsten,

es sieht nach fehlenden Schreibrechten aus...
Hast du das gecheckt?

Da muss die Freigabe jetzt nicht nur freien lesenden Zugriff haben (also für Gäste), sondern auch schreibenden...

Grüße
Reinerlein

Hallo Reinerlein

Ja Schreibrechte sind vorhanden.
Hatte zum testen auf dem Rechner ein extra fhem installiert - ausserhalb des Docker.
Von da geht die Sprachausgabe direkt mit dem selben vorgesehenen Samba freigabe.
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Reinerlein am 21 Mai 2018, 22:39:34
Hi Carsten,

dann musst du vielleicht mal aus dem Docker-Container heraus versuchen die IP zu erreichen. Vielleicht blockiert bei dir Docker da etwas...

Auch vielleicht mal testweise versuchen den Sambashare in dem Container zu mounten, um eine Portproblematik auszuschließen...

Grüße
Reinerlein
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: stenny am 21 Mai 2018, 22:45:46
Zitat von: Reinerlein am 21 Mai 2018, 22:39:34
Hi Carsten,

dann musst du vielleicht mal aus dem Docker-Container heraus versuchen die IP zu erreichen. Vielleicht blockiert bei dir Docker da etwas...

Auch vielleicht mal testweise versuchen den Sambashare in dem Container zu mounten, um eine Portproblematik auszuschließen...

Grüße
Reinerlein
Hallo reinerlein

Wie gesagt stelle ich gerade auf docker um, das da einige Probleme auftreten ist/war zu erwarten.
Das Mounten in den docker werde ich dann mal testen - aber erst die nächsten Tage, geht morgen wieder (zu) früh los.....

Danke erstmal


Gruß
Carsten



Gesendet von iPhone mit Tapatalk
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: FunkOdyssey am 22 Mai 2018, 00:06:26
Ich habe damals lange an der Samba-Config (command) gegüftelt. Die Pfade waren bei mir nie ein Problem.


����samba:
��������container_name: samba
��������restart: unless-stopped
��������ports:
����������� - "139:139"
����������� - "445:445"
��������image: dperson/samba
��������volumes:
�������������- ./data/SonosSpeak:/mnt/SonosSpeak
�������������- /etc/localtime:/etc/localtime:ro
��������command: samba.sh -S -u "fhem;fhempass" -s "SonosSpeak;/mnt/SonosSpeak;no;no;yes"


(Muss noch eingerückt werden. Ging gerade am Smartphone nicht anders.)
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: sluggyly am 13 Juni 2019, 21:05:00
Auch wenn das ganze nun ein wenig her ist, möchte ich dazu sagen, dass ich das Speak-Verzeichnis zusätzlich zum SMB-Container auch in den Sonos-Container gemounted habe. Dann hat es funktioniert.
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: FunkOdyssey am 13 Juni 2019, 21:19:41
So ist es.
In beiden Containern mounten.
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Otto123 am 13 Juni 2019, 22:03:59
Zitat von: stenny am 21 Mai 2018, 19:40:02
Wenn ich dich richtig verstehe kann ich dort als anstatt/opt/fhem/Sonos auch \\192.168.x.y\SonosSpeak angeben?
Hi,

es wäre sogar grundlegend falsch einen lokalen Pfad anzugeben!!!

Es ist eine Freigabe die von allen Seiten beschreibbar sein muss! Und Sonos kann nur smb Version 1! Also der Samba/Windows/SMB/CIFS Server muss für Sonos smb1 unterstützen! Alle aktuellen System nehmen die Unterstützung für smb1 aus dem Programm!

Gruß Otto
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: der-Lolo am 23 Februar 2020, 17:14:24
Ausgegraben...
Ich suche mal wieder nach einer Lösung - ich bin mit meinem iMac auf Catalina umgestiegen...
Catalina zickt rum wenn auf der Synology Disk Station SMB1 läuft.
Für Sonos brauche ich aber SMB1...

Jetzt war meine Idee einen Docker Container zu benutzen um mein mp3 Verzeichnis für Sonos via SMB1 bereit zu stellen.
SMB1 würde ich dann auf der Syno DS deaktivieren sodass Catalina nicht zickt...

Hat jemand eine solche Konfiguration am laufen - oder einen besseren vorschlag..?

Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Otto123 am 23 Februar 2020, 18:01:12
Ich versteh es nicht ganz.

Du brauchst einen SMB Server irgendwo, der bietet SMB1 und SMB3 wegen Sonos.
Du greifst von FHEM auf diesen Samba mit SMB3 zu.
Sonos greift auf diesen Server mit SMB1 zu.

Gruß Otto
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: der-Lolo am 23 Februar 2020, 19:07:32
Mac OS Catalina bricht die Verbindung immer wieder ab wenn SMB1 aktiviert ist...
Deswegen würde ich gerne SMB1 auf der Synology Disk Station deaktivieren...

Ich brauche aber SMB1 für meine "Sonos-mp3-Freigabe"
Ich suche also nach einer Lösung um diesen einen Ordner der Disk Station via SMB1 bereit zu stellen.

Habe es gerade mit einem virtuellem DSM versucht - aber ich kann keinen Ordner vom DSM ins virtuelleDSM mappen.

Die mp3s doppelt vorzuhalten halte ich auch für blöde...
Sonos macht sich in letzter Zeit echt unbeliebt...
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Otto123 am 23 Februar 2020, 19:10:15
Du sollst in Catlina nicht SMB1 aktivieren, du sollst in Catlina eine SMB3 Verbindung aufbauen.
Das funktioniert wirklich nicht? Kann ich mir nicht vorstellen  ???

Zeig mal Deine Samba config auf Syno und dein Mount Befehl (fstab) auf Catalina.

Sonos ist in guter Gesellschaft mit AVM und sicher 1000 anderen die das Problem SMB1 einfach ignorieren.
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: der-Lolo am 23 Februar 2020, 19:16:03
Wenn ich auf der Syno SMB1 aktiv habe zicken die Verbindungen in Catalina. Das Netz ist voll von Meldungen...

Wenn ich SMB1 entferne arbeiten die einhängepunkte für Catalina super, wie auch alle im Netz bestätigen...

Wenn ich SMB1 ausschalte habe ich keine mp3s mehr für Sonos.

Ich dachte nun daran via Docker den mp3 Ordner mit SMB1 freizugeben sodass ich alle anderen via SMB2/3 in Catalina einhängen kann.

Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Otto123 am 23 Februar 2020, 19:20:02
Warum sollte eine ordentliche SMB3 Verbindung auf einen Server der auch SMB1 anbietet nicht gehen? Aber ich habe keine catalina und keine Syno und ich sehe Deine Info zum Mount  nicht.

Ich wüsste nicht wie man sonst das Problem lösen sollte - Du müsstest zwei Samba Dienste auf den gleichen Pfad zugreifen lassen?

Ja das ist wahrscheinlich deine Idee mit Docker ?
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: der-Lolo am 23 Februar 2020, 19:34:12
Ja, das war meine Idee - eine fstab im Mac finde ich nicht.

Warum SMB unter Catalina nicht ordentlich funktioniert wenn der Server auch SMB1 bereit stellt weiß ich auch nicht.

Ich scheitere aber auch daran einen Container zu finden der einen Ordner nimmt und via SMB1 bereitstellt...


Vielleicht ist heute aber auch einfach nicht mein Tag!


Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Otto123 am 23 Februar 2020, 19:41:37
Zwei Ideen:
einfach im Terminal mal eine Verbindung wie im echten Linux machen? Nach dem Schema?
sudo mkdir /media/daten
sudo mount -t cifs -o username=UserName,password=Passwort //ServerName/Freigabe /media/daten
Oder mit fstab? Meines Wissen geht das ...
Sonos kann doch sicher über irgendeinen Weg auf die Musikbibliohek auf einem Mac zugreifen auch wenn der kein SMB1 mehr anbietet.
Das versucht? targetSpeakURL mus dann irgendwas nach Mac Konventionen sein.
Aber hier redet der Mac fast Blinde ;)
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: der-Lolo am 23 Februar 2020, 19:59:45
Michael@iMac27-5K ~ % cd Desktop
Michael@iMac27-5K Desktop % mkdir Test
Michael@iMac27-5K Desktop % sudo mount -t cifs -o username=Michael,password=***** //Eichenheim/Medien Users/Michael/Desktop/Test
mount: realpath /Users/Michael/Desktop/Users: No such file or directory
Michael@iMac27-5K Desktop % sudo mount -t cifs -o username=Michael,password=***** //Eichenheim/Medien /Users/Michael/Desktop/Test
mount: exec /Library/Filesystems/cifs.fs/Contents/Resources/mount_cifs for /Users/Michael/Desktop/Test: No such file or directory
mount: /Users/Michael/Desktop/Test failed with 72
Michael@iMac27-5K Desktop %

Michael@iMac27-5K Desktop % sudo mount -t cifs -o username=Michael,password=***** //192.168.1.5/Medien /Users/Michael/Desktop/Test 
mount: exec /Library/Filesystems/cifs.fs/Contents/Resources/mount_cifs for /Users/Michael/Desktop/Test: No such file or directory
mount: /Users/Michael/Desktop/Test failed with 72
Michael@iMac27-5K Desktop %



Ich geb auf für heute - Tausend Dank für Deine mühe Otto123!
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Otto123 am 23 Februar 2020, 20:10:22
pwd würde Dir sagen wo Du wirklich stehst :)

Und auf der Syno würde Dir
testparm -v | grep protocolsagen welche protokolle unterstützt werden.

Aber das sagen die Dir auch später :)

Schönen Abend noch
Otto
Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: der-Lolo am 23 Februar 2020, 20:31:54
Michael@iMac27-5K ~ % cd Desktop
Michael@iMac27-5K Desktop % pwd
/Users/Michael/Desktop
Michael@iMac27-5K Desktop %

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

client ipc max protocol = default
client ipc min protocol = default
client max protocol = SMB3_00
client min protocol = CORE
server max protocol = SMB3
server min protocol = SMB2


Die Freigaben hab ich mal weg gelassen...

Ich hatte mir das so vorgestellt -> ich übergebe an Docker einen Ordner der Syno (mp3s), Docker stellt mir diesen Ordner unter einer anderen IP als SMB1 Freigabe zur verfügung -> mit Sonos nutze ich diese Freigabe.
Über SMB3 der Syno mounte ich mir die Ordner der Syno die ich brauche unter Catalina...



Titel: Antw:Sonos im Docker - targetSpeakDir auf Server
Beitrag von: Otto123 am 23 Februar 2020, 20:44:26
zu deinem Versuch aus #23
Du machst einen Pfad in deinem Users Directory /Users/Michael/Desktop
Dann machst Du den mount Befehl als sudo (geht bei dieser direkten Art nur mit sudo) sudo findet aber dann den von Dir als User angelegten Pfad gar nicht. Rechteproblem?

also mach den Test an andere Stelle, anlegen des mount Pfades und der mount Befehl bei als sudo.
Prüfe vorher ob es die Orte gibt
ls -lha /mnt
ls -lha /media

Der Server macht wie Du zeigst gar kein SMB1.
Der mount Befehl ohne weitere Parameter wie von mir vorgeschlagen sollte die höchste SMB version mit dem Server aushandeln -> SMB3

Ich hoffe nicht, dass SMB1 auf der Syno aktivieren bedeutet, das alle anderen SMB Version abgeschaltet werden. Das wäre dann der Fehler :)

Ich bin nach wie vor der Meinung, das auf ein Samba Share von einem Client mit SMB1 und vom anderen Client mit SMB3 zugegriffen werden kann.
Edit:Ich kann das sogar praktisch belegen:
Die 222 ist eine Sonos Beam, die 186 ein Raspberry und die 183 ist ein Windows PC
root@raspib3:/home/pi# smbstatus -b

Samba version 4.2.14-Debian
PID     Username      Group         Machine            Protocol Version
------------------------------------------------------------------------------
4685      nobody        nogroup       192.168.56.186 (ipv4:192.168.56.186:47732) SMB3_00
2768      nobody        nogroup       192.168.56.222 (ipv4:192.168.56.222:43516) NT1
4500      nobody        nogroup       192.168.56.183 (ipv4:192.168.56.183:58732) SMB3_00


Man könnte auch versuchen auf der syno zwei Shares auf das gleiche Directory anzulegen und bei einem SMB3 zu erzwingen. Parameter
smb encrypt = required
https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html