Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dafra
    antwortet
    ... was mir auch noch aufgefallen ist: Wenn die Verbindung zum Sonos mal unterbrochen war (Sonos stromlos oder Netzwerkverbindung gekappt), bekommt man den Stream nicht mehr über "Play" ans laufen.

    Ich kann allerdings nicht beurteilen ob das ein Bug im Broker ist oder ob das das normale Sonos Verhalten ist.

    Gruß, Daniel

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    Ok, dann muss ich meinen Raspi doch noch neu aufsetzen

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Dem Broker ist es prinzipiell egal, das entsprechende Plugin für Smarthome ist in der jetzigen Betaversion v1.0b5 noch kompatibel, möchte ich jedoch noch zum Release umstellen. Dann geht's nur noch mit SmarthomeNG.

    Gruss,

    Stefan
    Zuletzt geändert von pfischi; 25.01.2017, 11:52.

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    Für die 1.0 brauch ich dann aber smarthomeNG? Oder geht die dann noch mit dem "alten" smarthome.py?

    Grüße
    Thorsten

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    dafra

    Schön das es langsam rund und stabil wird. Das Verhalten vom Amazon-Prime-Music-Service schaue ich mir an. Die Formulierung für die Option 'local_google_tts' war tatsächlich murks, war anscheinend doch schon zu spät Ich war faul und habe deine Formulierung mal übernommen

    Zum weiteren Vorgehen: ich lasse die aktuelle Version noch bis zum WE laufen. Sollten keine weiteren Fehler auftauchen (wie immer gerne auch hier posten) mache ich daraus die Version v1.0. Ich werde gleich danach ein Minimal-Widget hinterherschieben und am eigentlichen Widget weiterarbeiten. Das verlinkte Widget werde ich auch als Basis nehmen.

    Grüsse,

    Stefan

    Einen Kommentar schreiben:


  • bruepe
    antwortet
    Ok, dann warten wir mal auf die v1.0
    das hier ist schon ganz geil: https://github.com/ddtlabs/smartvisu...ots/sonos1.png

    Einen Kommentar schreiben:


  • dafra
    antwortet
    Ich habe für mich eine Minimalversion von Stefans Widget abgeleitet, siehe Post #584. Ansonsten wollte Stefan das Widget für V1.0 ja aktualisieren, da warte ich erst mal was kommt .

    Gruß, Daniel

    Einen Kommentar schreiben:


  • bruepe
    antwortet
    Gibt es eigentlich noch weitere Widgets für das Sonos Plugin?

    Einen Kommentar schreiben:


  • dafra
    antwortet
    Hallo Stefan,

    ich habe meine bisherige Installation (incl. Konfiguration) runtergeschmissen und durch 1.05b ersetzt. Ich muss sagen: Ich bin einfach begeistert! Das Setup und die gesamte Konfiguration ist absolut einfach geworden, so muss ein Programm sein. Ein dickes Lob an dieser Stelle!

    Ich habe etwas herumgespielt und es hat soweit alles stabil funktioniert. Das einzige was mir aufgefallen war, dass im (Amazon) Prime-Radio keine Titel und Interpreten angezeigt werden und eine (TTS-) Unterbrechung zum nächsten Titel springt. Entsprechender Log hängt im Anhang. Ich werde die nächsten Tage noch etwas weiter rumprobieren und eventuelle Auffälligkeiten melden.

    Ein Punkt, der unter Jammern auf hohem Niveau läuft, ist noch der Hilfetext zum Parameter local_google_tts in der Konfig. Ich glaube, ich weiß was du damit sagen möchtest - vermutlich etwas in der Art:
    Code:
    The google text-to-speech functionality streams the mp3s from Google directly to the sonos speaker. In case the parameter local_google_tts is set to true, the corresponding mp3 will be cached locally instead, so connection to Google is only necessary in case of uncached TTS phrases. This speeds up the TTS execution and reduces internet traffic.
    Viele Grüße,

    Daniel
    Angehängte Dateien
    Zuletzt geändert von dafra; 24.01.2017, 21:06. Grund: "instead" eingefügt

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    dafra , gamn

    Danke für euer tolles Feedback. Ich habe die dev-Versionv1.0b5 online gestellt. Ich habe die Konfiguration massiv entschlackt. Ich habe ein paar Parameter rausgeworfen und ein paar umbenannt. Ich hoffe es ist jetzt einigermaßen selbsterklärend.
    Durch die Umstellug muss die Konfiguration nochmal angepasst werden.

    TTS ist jetzt standardmäßig aktiv und ohne Webservice nutzbar. Möchte man die Dateien lokal speichern, ist der Webservice notwendig, der aber nun sehr einfach zu konfigurieren ist. So wird jetzt die IP in den meisten Fälle automatisch erkannt.

    gamn
    Warum bei dir die Loop nochmal aufgetreten ist, kann ich noch nicht genau sagen, ich habe aber nochmal eine kleine Anpassung vorgenommen. Bei mir läuft das System jetzt mal ein paar Tage und werde versuchen, das Problem nachzustellen.

    --> DOWNLOAD <--

    Gruss,

    Stefan
    Zuletzt geändert von pfischi; 23.01.2017, 21:06.

    Einen Kommentar schreiben:


  • gamn
    antwortet
    Genau,

    heute frisch installiert.

    Gruß,

    Gunther

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    gamn

    Du nutzt Version 1.0b4?

    Gruss,

    Stefan

    Einen Kommentar schreiben:


  • gamn
    antwortet
    Hi,

    ich habe gerade nochmal getestet und hatte dabei doch wieder eine Endlosschleife:

    debug output vom broker logfile:
    Code:
    2017-01-23 15:27:16,597 DEBUG Thread-608 forwarding play_snippet command to coordinator with uid rincon_000e58500e5e01400 -- sonos_speaker.py:play_snippet:1275
    2017-01-23 15:27:16,598 DEBUG Thread-608 Speech: Taking snapshot -- sonos_speaker.py:play_snippet:1288
    
    2017-01-23 15:27:17,074 DEBUG Thread-608 Speech: Playing URI http://192.168.178.61:12900/ZGVfX0hhbGxvIFNjaGF0eiwgaWNoIGtvbW1lIGdlcm5lIGVpbi BTdMO8Y2sgU3RvbGxlbiBlc3Nlbi4gS3Vzcw==.mp3 -- sonos_speaker.py:play_snippet:1293
    
    2017-01-23 15:27:17,212 DEBUG Thread-609 Webservice: delivering file '/var/www/sonos-broker/ZGVfX0hhbGxvIFNjaGF0eiwgaWNoIGtvbW1lIGdlcm5lIGVpbi BTdMO8Y2sgU3RvbGxlbiBlc3Nlbi4gS3Vzcw==.mp3' to client ip 192.168.178.22:35499. -- sonos_service.py:do_GET:81
    
    2017-01-23 15:27:17,288 DEBUG Thread-610 Webservice: delivering file '/var/www/sonos-broker/ZGVfX0hhbGxvIFNjaGF0eiwgaWNoIGtvbW1lIGdlcm5lIGVpbi BTdMO8Y2sgU3RvbGxlbiBlc3Nlbi4gS3Vzcw==.mp3' to client ip 192.168.178.22:35501. -- sonos_service.py:do_GET:81
    
    2017-01-23 15:27:26,127 DEBUG Thread-611 Webservice: delivering file '/var/www/sonos-broker/ZGVfX0hhbGxvIFNjaGF0eiwgaWNoIGtvbW1lIGdlcm5lIGVpbi BTdMO8Y2sgU3RvbGxlbiBlc3Nlbi4gS3Vzcw==.mp3' to client ip 192.168.178.22:35521. -- sonos_service.py:do_GET:81
    
    2017-01-23 15:27:28,985 DEBUG Thread-2 Done waiting -- sonos_service.py:get_speakers_periodically:169
    
    2017-01-23 15:27:29,988 DEBUG Thread-2 active threads: 26 -- sonos_service.py:get_speakers_periodically:163
    
    2017-01-23 15:27:29,990 INFO Thread-2 scan devices ... -- sonos_service.py:get_speakers_periodically:164
    
    2017-01-23 15:27:30,567 DEBUG Thread-2 Start wait -- sonos_service.py:get_speakers_periodically:167
    
    2017-01-23 15:27:33,977 DEBUG Thread-612 Webservice: delivering file '/var/www/sonos-broker/ZGVfX0hhbGxvIFNjaGF0eiwgaWNoIGtvbW1lIGdlcm5lIGVpbi BTdMO8Y2sgU3RvbGxlbiBlc3Nlbi4gS3Vzcw==.mp3' to client ip 192.168.178.22:35545. -- sonos_service.py:do_GET:81
    
    2017-01-23 15:27:41,817 DEBUG Thread-613 Webservice: delivering file '/var/www/sonos-broker/ZGVfX0hhbGxvIFNjaGF0eiwgaWNoIGtvbW1lIGdlcm5lIGVpbi BTdMO8Y2sgU3RvbGxlbiBlc3Nlbi4gS3Vzcw==.mp3' to client ip 192.168.178.22:35564. -- sonos_service.py:do_GET:81
    
    2017-01-23 15:27:50,217 DEBUG Thread-614 Webservice: delivering file '/var/www/sonos-broker/ZGVfX0hhbGxvIFNjaGF0eiwgaWNoIGtvbW1lIGdlcm5lIGVpbi BTdMO8Y2sgU3RvbGxlbiBlc3Nlbi4gS3Vzcw==.mp3' to client ip 192.168.178.22:35587. -- sonos_service.py:do_GET:81
    
    2017-01-23 15:27:59,067 DEBUG Thread-615 Webservice: delivering file '/var/www/sonos-broker/ZGVfX0hhbGxvIFNjaGF0eiwgaWNoIGtvbW1lIGdlcm5lIGVpbi BTdMO8Y2sgU3RvbGxlbiBlc3Nlbi4gS3Vzcw==.mp3' to client ip 192.168.178.22:35609. -- sonos_service.py:do_GET:81

    Traceback von sonos-cmd:

    Code:
    ^CTraceback (most recent call last):
    
    File "/usr/local/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 384, in _make_request
    
    httplib_response = conn.getresponse(buffering=True)
    
    TypeError: getresponse() got an unexpected keyword argument 'buffering'
    
    
    During handling of the above exception, another exception occurred:
    
    
    Traceback (most recent call last):
    
    File "/usr/local/bin/sonos-cmd", line 1811, in &lt;module&gt;
    
    broker_cmd.cmdloop()
    
    File "/usr/local/lib/python3.5/cmd.py", line 138, in cmdloop
    
    stop = self.onecmd(line)
    
    File "/usr/local/lib/python3.5/cmd.py", line 217, in onecmd
    
    return func(arg)
    
    File "/usr/local/bin/sonos-cmd", line 187, in do_speaker
    
    speaker.cmdloop()
    
    File "/usr/local/lib/python3.5/cmd.py", line 138, in cmdloop
    
    stop = self.onecmd(line)
    
    File "/usr/local/lib/python3.5/cmd.py", line 217, in onecmd
    
    return func(arg)
    
    File "/usr/local/bin/sonos-cmd", line 918, in do_play_tts
    
    self.commands.play_tts(self.uid, tts, volume, language, fade_in, group_command)
    
    File "/usr/local/bin/sonos-cmd", line 1637, in play_tts
    
    'language': language
    
    File "/usr/local/bin/sonos-cmd", line 1106, in send
    
    headers=self.headers)
    
    File "/usr/local/lib/python3.5/site-packages/requests/api.py", line 110, in post
    
    return request('post', url, data=data, json=json, **kwargs)
    
    File "/usr/local/lib/python3.5/site-packages/requests/api.py", line 56, in request
    
    return session.request(method=method, url=url, **kwargs)
    
    File "/usr/local/lib/python3.5/site-packages/requests/sessions.py", line 488, in request
    
    resp = self.send(prep, **send_kwargs)
    
    File "/usr/local/lib/python3.5/site-packages/requests/sessions.py", line 609, in send
    
    r = adapter.send(request, **kwargs)
    
    File "/usr/local/lib/python3.5/site-packages/requests/adapters.py", line 423, in send
    
    timeout=timeout
    
    File "/usr/local/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 594, in urlopen
    
    chunked=chunked)
    
    File "/usr/local/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 387, in _make_request
    
    httplib_response = conn.getresponse()
    
    File "/usr/local/lib/python3.5/http/client.py", line 1197, in getresponse
    
    response.begin()
    
    File "/usr/local/lib/python3.5/http/client.py", line 297, in begin
    
    version, status, reason = self._read_status()
    
    File "/usr/local/lib/python3.5/http/client.py", line 258, in _read_status
    
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
    
    File "/usr/local/lib/python3.5/socket.py", line 575, in readinto
    
    return self._sock.recv_into(b)
    ​​​​​​​Gruß Gunther

    Einen Kommentar schreiben:


  • gamn
    antwortet
    Hi Stefan,

    erstmal ein dickes Lob für dieses Projekt.
    Bei mir läuft die aktuelle Version des Brokers jetzt, die TTS Funktion habe ich über sonos-cmd getestet.
    Als kleiner Stolperstein hat sich für mich einer der Kommentare in der /etc/default/sonos-broker dargestellt. Ohne den webservice funktionierte die Wiedergabe von TTS nicht (vermutlich muss das so :-) ). Mit aktiviertem webservice UND angegebenem web-root Pfad gehts dann auch :-)
    In der /etc/default/sonos-broker steht der default-pfad für den Web-root path ist /var/www, daher dachte ich, dass man den nicht noch explizit angeben muss.

    Sofern ich den nicht angegeben hatte erschien dann im logfile:

    ERROR MainThread No server root-path set. Web server functionality disabled. -- sonos-broker:__init__:228

    Das Resultat war, via sonos-cmd sieht es so aus als würde play_tts funktionieren, fade_in findet statt, dann hört man halt nix (weil der webservice nicht rennt und nicht auf die mp3s zugegriffen werden kann) und nach einiger Zeit spielt die Musik weiter.

    Gruß,

    Gunther

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    So,

    ich bin gerade an der weiteren Feinjustierung des Brokers und würde gerne nochmal ein Feedback abfragen

    1. Ich würde gerne für die play_snippet und play_tts Funktionalität nur noch den eingebauten Webservice des Brokers nutzen wollen. Da ich die Verbindung auf den Broker-Port eh für POST-Requetsts aufmachen muss (für den Command-and-Control-Server) kann ich auch gleich diesen Port für GET-Requests von den Lautsprechern nutzen. Dadurch entfällt die teilweise verwirrende Zweiteilung der Konfiguration und die Einrichtung für unerfahrene Benutzer wird wesentlich einfacher. So ist es auch einfacher, die lokale IP des Brokers automatisch ermitteln zu lassen und für die Anfragen play_tts und play_snippet zu nutzen.

    2. Ich führe (wieder) den Streaming-Modus für play_tts ein. Das ist durch eine interne Umstellung wieder problemlos möglich. Ich würde diese Einstellung gerne als default nehmen. Auch hier: Vereinfachung für unerfahrene Benutzer.

    Mit diesen Umstellungen könnte man eigentlich play_tts out-of-the-box mit ausliefern.

    Vor den ganzen Änderung habe ich nch den Hotfix für die Endless-Loop beim Abspielen von play_tts hochgeladen (dicken Dank fürs Testen @dafra).

    --> KLICK MICH <--


    Grüsse,

    Stefan

    Einen Kommentar schreiben:

Lädt...
X