Ich habe gestern einen Sonos Play:1 bekommen und wollte den natürlich direkt in FHEM einbauen. Also hab' ich mir das Wiki und die Commandref angesehen und bin folgendermaßen vorgegangen:
Anmerkung: ich verwende Ubuntu 16.04.4 Server auf einem NUC6CAYH
Zunächst habe ich die benötigten Module LWP::Simple, LWP::UserAgent, SOAP::Lite, HTTP::Request und XML::Parser::Lite installiert. Ich habe natürlich nicht weit genug gelesen und mit cpan statt apt-get install installiert. Hier kam bei SOAP eine Meldung, daß er keinen Apache findet (ist auch nicht installiert), die endlos über den Bildschirm lief. Also hab' ich mit CTRL-C abgebrochen und die Installation lief weiter.
Seitdem ist FHEM deutlich langsamer geworden (lt. Protokoll brauchen komplexe Schaltvorgänge jetzt 2 Sekunden statt vorher unter einer Sekunde). Könnte das an der abgebrochenen Installation liegen ? Ich hatte auch den Eindruck, daß cpan die Pakete neu kompiliert (bin nicht sooo der Linux Experte...), vielleicht ging da etwas schief.
Auf jeden Fall konnte ich danach mein SONOS Device anlegen:
define Sonos SONOS
attr Sonos targetSpeakDir /mnt/SonosSpeak
attr Sonos targetSpeakFileHashCache 1
attr Sonos targetSpeakURL \\192.168.220.242\SonosSpeak
Das Verzeichnis habe ich mit
sudo mkdir /mnt/SonosSpeak
sudo chmod 777 /mnt/SonosSpeak/
angelegt und die Datei /etc/samba/smb.conf um folgenden Eintrag ergänzt
[SonosSpeak]
comment = Audio-Files for SonosPlayer to Speak
read only = false
path = /mnt/SonosSpeak
guest ok = yes
Nach dem Neustart von Samba war das Verzeichnis von meinem Windows System ohne Angabe eines Passwortes erreichbar.
Jetzt wollte ich die Play:1 natürlich testen (Wiedergabe per Android App funktioniert problemlos) und habe im SONOSPLAYER (hier:Sonos_Esszimmer)
set Sonos_Esszimmer speak 10 de Test
eingegeben. Leider konnte ich weder etwas hören noch wurde im Verzeichnis eine mp3-Datei angelegt. Und obwohl vorher die Informationen zu meiner Sonos-Landschaft problemlos abgerufen werden konnten, kommt jetzt permanent die Fehlermeldung
2018.05.25 10:07:57 0: SONOS0: Can't bind Port 4711: Bind failed: Address already in use at ./FHEM/00_SONOS.pm line 9870.
Ich hoffe mir kann jemand weiterhelfen, denn aktuell habe ich ein langsames System, in dem Sonos nicht funktioniert ...
ich habe gerade gesehen, dass die Datei nicht im Verzeichnis /mnt/SonosSpeak sondern in /opt/fhem gespeichert wurde ...
Hi,
der Sonos-SubProzess muss nach Attribut-Änderungen neu gestartet werden.
Dazu einfach am Sonos-Device das Disable-Attribut setzen, und nach ein paar Sekunden einfach wieder löschen.
Da du eine Fehlermeldung bzgl. des Ports hast, solltest du vielleicht mal Fhem beenden (vorher die Config sichern), und auf der Linux-Konsole mit
ps aux | grep perl
nachsehen, ob auch alle Perl-Prozesse bzgl. Fhem und Sonos-Modul tot sind.
Wenn nein, dann mit
sudo kill -9 <PID>
die jeweiligen Prozesse noch töten...
Wenn ja, dann einfach Fhem wieder anstarten...
Grüße
Reinerlein
Nach dem Neustart meines Ubuntu Servers hat es funktioniert :)
Ich werd' ihn aber trotzdem sauber neu aufsetzen, da ich die Befürchtung habe irgend etwas in meiner Perl Installation zerschossen zu haben ...