dafra
Den Fehler habe ich gefunden. Es handelt sich um einen Endlos-Timeout, den ich noch nicht abfange. Wird gefixt.
Gruss,
Stefan
Ankündigung
Einklappen
Keine Ankündigung bisher.
Sonos Anbindung
Einklappen
X
-
Ok, hier nochmal ein frischer log mit der oben angehängten Konfig. Bei 2017-01-20 23:27:28,459 stand der log, als ich den Befehl aus dem sonos-cmd losgefeuert habe.
Musik lief, mit dem Absetzen des TTS Befehls ist der Broker aus meiner Sicht gecrasht: Das TTS-MP3 sollte wohl abgespielt werden (Titelanzeige im Widget wechselt auf (kryptischen) MP3 Namen, Logo weg,...), aber es ist nichts zu hören, die Musik kommt dauerhaft nicht mehr hoch, das sonos-cmd reagiert nicht mehr auf Eingaben:Code:sonos-cmd Connecting to Sonos broker ... done! Welcome to Sonos Broker console! =>> update =>> speaker 1 rincon_b8e937eb649001400 =>> play_tts tts (max 100 chars) []:test snippet volume (-1-100) [-1]:20 fade in (0|1) [0]:0 language (en|de|es|fr|it) [de]:de group command (0|1) [0]:0 play_tts hallo?
Code:192.168.32.3 - - [20/Jan/2017 23:41:28] "POST / HTTP/1.1" 200 - 2017-01-20 23:41:28,320 DEBUG Thread-78 Server response -- status: True -- response: -- sonos_service.py:do_POST:107 ^C2017-01-20 23:41:43,519 DEBUG MainThread Shutting down Sonos Broker ... -- sonos-broker:stop:244 2017-01-20 23:41:43,520 DEBUG MainThread unsubscribing from sonos speakers ... -- sonos-broker:stop:245 ^C2017-01-20 23:41:48,863 DEBUG MainThread Shutting down Sonos Broker ... -- sonos-broker:stop:244 2017-01-20 23:41:48,864 DEBUG MainThread unsubscribing from sonos speakers ... -- sonos-broker:stop:245 Exception ignored in: <module 'threading' from '/usr/lib/python3.5/threading.py'> Traceback (most recent call last): File "/usr/lib/python3.5/threading.py", line 1288, in _shutdown t.join() File "/usr/lib/python3.5/threading.py", line 1054, in join self._wait_for_tstate_lock() File "/usr/lib/python3.5/threading.py", line 1070, in _wait_for_tstate_lock elif lock.acquire(block, timeout): File "/usr/local/bin/sonos-broker", line 249, in stop exit() File "/usr/lib/python3.5/_sitebuiltins.py", line 26, in __call__ raise SystemExit(code) SystemExit: None 2017-01-20 23:41:48,875 INFO MainThread Starting new HTTP connection (1): 192.168.33.34 -- connectionpool.py:_new_conn:208 2017-01-20 23:41:48,880 DEBUG MainThread "UNSUBSCRIBE /AlarmClock/Event HTTP/1.1" 200 None -- connectionpool.py:_make_request:388 2017-01-20 23:41:48,884 INFO MainThread Unsubscribed from http://192.168.33.34:1400/AlarmClock/Event, sid: uuid:RINCON_B8E937EB649001400_sub0000003642 -- events.py:unsubscribe:583 2017-01-20 23:41:48,892 INFO MainThread Starting new HTTP connection (1): 192.168.33.34 -- connectionpool.py:_new_conn:208 2017-01-20 23:41:48,896 DEBUG MainThread "UNSUBSCRIBE /MediaRenderer/RenderingControl/Event HTTP/1.1" 200 None -- connectionpool.py:_make_request:388 2017-01-20 23:41:48,898 INFO MainThread Unsubscribed from http://192.168.33.34:1400/MediaRenderer/RenderingControl/Event, sid: uuid:RINCON_B8E937EB649001400_sub0000003641 -- events.py:unsubscribe:583 2017-01-20 23:41:48,905 INFO MainThread Starting new HTTP connection (1): 192.168.33.34 -- connectionpool.py:_new_conn:208 2017-01-20 23:41:48,910 DEBUG MainThread "UNSUBSCRIBE /MediaRenderer/AVTransport/Event HTTP/1.1" 200 None -- connectionpool.py:_make_request:388 2017-01-20 23:41:48,913 INFO MainThread Unsubscribed from http://192.168.33.34:1400/MediaRenderer/AVTransport/Event, sid: uuid:RINCON_B8E937EB649001400_sub0000003640 -- events.py:unsubscribe:583 2017-01-20 23:41:48,918 INFO MainThread Starting new HTTP connection (1): 192.168.33.34 -- connectionpool.py:_new_conn:208 2017-01-20 23:41:48,922 DEBUG MainThread "UNSUBSCRIBE /ZoneGroupTopology/Event HTTP/1.1" 200 None -- connectionpool.py:_make_request:388 2017-01-20 23:41:48,924 INFO MainThread Unsubscribed from http://192.168.33.34:1400/ZoneGroupTopology/Event, sid: uuid:RINCON_B8E937EB649001400_sub0000003639 -- events.py:unsubscribe:583
Angehängte Dateien
Einen Kommentar schreiben:
-
Also im Log sehe ich keinen Crash
Nur für mich nochmal zur Verständnis: mit welchen Einstellungen bzw. Vorgehen funktioniert TTS bei dir?
Eine Möglichkeit nach der internen Umstellung wäre auch, das Abspeichern der Dateien komplett wegzulassen und den Stream direkt von Google abzuspielen. Nachteil: bisher werden ja Ansagen gespeichert und wiederverwendet ohne jedesmal Google abzufragen. Und es gibt glaube ich eine Beschränkung für die Anfragen. Vorteil wäre, ich könnte auf den ganzen Server-Overheat verzichten, der Code wird einfacher und TTS könnte eigentlich per default an sein. Ich tendiere fast zu 2.
Auch wenn es aus Coding Sicht nicht einfacher wird: Gehen auch beide Lösungen parallel? Default mäßig ist der Online-TTS aktiv, wenn man entsprechend konfiguriert, der "offline" TTS?
Gruß, DanielAngehängte Dateien
Einen Kommentar schreiben:
-
Also im Log sehe ich keinen Crash. Nur für mich nochmal zur Verständnis: mit welchen Einstellungen bzw. Vorgehen funktioniert TTS bei dir?
Eine Möglichkeit nach der internen Umstellung wäre auch, das Abspeichern der Dateien komplett wegzulassen und den Stream direkt von Google abzuspielen. Nachteil: bisher werden ja Ansagen gespeichert und wiederverwendet ohne jedesmal Google abzufragen. Und es gibt glaube ich eine Beschränkung für die Anfragen. Vorteil wäre, ich könnte auf den ganzen Server-Overheat verzichten, der Code wird einfacher und TTS könnte eigentlich per default an sein. Ich tendiere fast zu 2.
Gruss,
StefanZuletzt geändert von pfischi; 20.01.2017, 22:48.
Einen Kommentar schreiben:
-
Sollte dein Logfile den Crash beinhalten? Eigentlich sieht das vollkommen normal aus. Noch eine Frage: die mitgelieferte Config ist diejenige, die die Probleme bei dir verursacht hatte
Code:Kueche.track_uri = x-rincon-mp3radio://192.168.32.3:12900/ZGVfX3Rlc3QgMQ==.mp3
Alle Kommentare aus der TTS-Sektion rauszulöschen war übrigens ähnlich erfolgreich (was das chrashen des Systems anging). Müsste im Resulat dann so ausgesehen haben:
Code:[google_tts] enabled = true save_path = /var/www server_url = http://<IP meines Systems>:12900 quota = 200
Gruß, DanielZuletzt geändert von dafra; 20.01.2017, 22:33.
Einen Kommentar schreiben:
-
dafra
Sollte dein Logfile den Crash beinhalten? Eigentlich sieht das vollkommen normal aus. Noch eine Frage: die mitgelieferte Config ist diejenige, die die Probleme bei dir verursacht hatte?
Die Vorschläge für die Werte in der Konfiguration setze ich um. Ich werde in der Doku und in der Config-Datei selber nochmal klar alle Default-Werte als Kommentar hinzufügen. Bei der IP-Adresse wirds schon etwas schwieriger. Das hatte ich tatsächlich mal drin, hat aber bei einigen zu falschen IP-Adressen geführt, gerade bei mehreren Interfaces. Mal schauen ob ich da was besseres finde.
Die Abstürze sind natürlich unschön, spontan habe ich eine Stelle gefunden, die nicht ganz sauber den Fehlerfall abfängt. Ich werde meine Installation mal ein wenig stressen
Gruss,Zuletzt geändert von pfischi; 20.01.2017, 22:21.
Einen Kommentar schreiben:
-
Hallo Stefan,
dein Tempo ist echt beeindruckend. Die gute Nachricht vorweg: TTS funktioniert jetzt :-) Ich habe verschiedene Szenarien probiert, bislang ist mir nichts aufgefallen. Die Tests habe ich aus dem CLI heraus gemacht, d.h. das smarthomeNG plugin scheint auch zu funktionieren.
Allerdings musste ich etwas kämpfen, bis es tat. Der Grund war eine fehlerhafte Konfiguration im /etc/default/sonos-broker. Dadurch waren die abzuspielenden TTS-MP3s nicht erreichbar. Dabei ist der Broker bei jedem Versuch ein TTS zu starten gecrasht. Schlimmer noch: wenn der Befehl über das Plugin abesetzt wird, crasht smarthomeNG gleich mit. Im Anhang mal wie meine Konfig incl. Report (logging startet mit dem Absetzen des TTS Befehls). Es reicht aber auch im vorhandenen Konfig alle TTS relevanten Befehle einzukommentieren...
Ober der Server an Port 12900 funktioniert kann ich nicht sagen, da ich ja über den Apache / Port 80 gegangen bin.
Für die Version 1.0 würde ich mir noch wünschen, dass das Konfig so vorbelegt ist, das man einfach alles einkommentieren kann und dann der TTS out of the box funktioniert (zumindest bei einer halbwegs gewöhnlichen Konfig, aber insbesondere beim Image).
Wirklich sauber wäre es, wenn man, analog zu den Plugins im smarthomeNG, nur einkommentieren muss, wenn es abweichend vom Default ist. Also wenn man TTS will reicht einCode:[google_tts] enabled = true
Auch das (notwendige?) händische Eintragen der IP Adresse finde ich einen Stolperstein. Für den Fall localhost / 127.0.0.1 (oder nichts angegeben) könnte man beim Aufstarten des Brokers die eigene IP ermitteln...
Ich hoffe mal, o.g. Vorschläge sind nicht auf meine Systemkonfig zurückzuführen, sonst wäre es jetzt peinlich...
Gruß, DanielAngehängte Dateien
Einen Kommentar schreiben:
-
dafra
Nochmal danke für deine Test und Anregungen. Das hilft mir ungemein aus der "Betriebsblindheit" rauszukommen
Ich werde die ganzen Punkte abarbeiten und den Broker noch besser machen.
Als erstes hab ich mal den kompletten GoogleTTS-Code entrümpelt und das ganze intern komplett neu verarbeitet. HIER gibts die Testversion v1.0b3. Wäre toll wenn du die nochmal ausprobieren kannst. Bei mir sehr stabil. Der Zustand des Lautsprechers wird korrekt auf den Zustand vor dem Abspielen gesetzt. Bin gepannt, ob sich das Verhalten von GoogleTTS bei dir gebessert hat.
Gruss,
Stefan
Einen Kommentar schreiben:
-
Vielen Dank für deinen Report. Wenn ich zu Hause bin schaue ich mir alles an.
Gruss,
Stefan
Einen Kommentar schreiben:
-
Ich habe noch etwas rumgespielt. Den Sonos-Webserver habe ich deaktiviertCode:[webservice] {....} #enabled = true
Code:[google_tts] # Enable Google-Text-To-Speech. Default: false enabled = true {...} save_path = /var/www/html/sonos
Wenn ich im sonos-cmd ein play_tts absetze, wird die Musik unterbrochen, dann ist nichts zu hören, dann geht die Musik wieder weiter. Die MP3 Datei liegt aber anschließend im spezifizierten Verzeichnis und ist auch von außen, z.B. mit einem Browser, erreichbar. Dann habe ich die URL im Browser kopiert und den Link einem play_snippet vor die Füße geworfen. Gleiches Verhalten. Dann habe ich den Link einem play_url vor die Füße geworfen, was ohne Probleme funktioniert.
Außerdem ist mir aufgefallen, dass nach den play_snippet die musik nicht unbedingt da weiterspielt, wo sie unterbrochen wurde.
Gruß, Daniel
Einen Kommentar schreiben:
-
Nachdem jetzt die Installation, die "normale" Wiedergabe und die Einbindung in Smartvisu geht, habe ich mich jetzt mal an TTS rangemacht. Ist ja echt ne geile Nummer :-)
Da ich bislang das Plugin nicht genutzt habe, schreibe ich an der Stelle einfach mal hin, worüber man als Anfänger so stolpert:
- es ist nicht so ganz klar, welche der Default-Optionen in der /etc/default/sonos-broker angeben werden müssen und welche optional sind. Meine Erwartungshaltung wäre gewesen, dass wenn ich [google_tts] enabled = true setze, das tts dann funktioniert. Ich musste den Debug Modus bemühen um rauszufinden warum das TTS nicht funktioniert... (Pfad nicht angegeben)
- mir ist zwar klar welche items ich für TTS in smarthomeNG definieren muss, aber wie kann ich ein TTS Kommando feuern? Passiert das automatisch, sobald sich das Item sonos_send = play_tts ändert bzw. einen neuen Wert draufgeschrieben bekommt?
=> Punkte für die Doku, für die ich dich an dieser Stelle echt mal loben muss. Die Punkte sind nicht als Kritik zu verstehen, sondern als Versuch Stolpersteine aus dem Weg zu räumen und die Akzeptanz für das Plugin zu erhöhen.
Zum eigentlichen Betha test.
Da mir der zweite Punkt noch nicht ganz klar ist, habe ich TTS im sonos-cmd ausprobiert:
Code::/usr/local/bin# sonos-cmd Connecting to Sonos broker ... done! Welcome to Sonos Broker console! =>> update =>> list speaker(s): ----------- (1) rincon_b8e937eb649001400 [192.168.33.34|Küche|Sonos PLAY:1] =>> speaker 1 rincon_b8e937eb649001400 =>> play_tts tts (max 100 chars) []:test snippet volume (-1-100) [-1]:10 fade in (0|1) [0]:0 language (en|de|es|fr|it) [de]:de group command (0|1) [0]:0
Versuch 2:
Im Prizip wie zuvor, allerdings hat Musik schon gespielt. Musik wurde angehalten, nichts zu hören, Musik wieder da. Kurz darauf (ich habe keine weiteren Befehle im sonos-cmd abgesetzt) Musik wieder weg und wieder da. Ich habe parallel mitgeloggt, log hängt dran. Ich habe versucht, die relevanten Teile rauszuschneiden, d.h. startet in dem moment als ich das kommando play_tts abgesetzt habe.
Beobachtungen:
- mp3s mit Sprache liegen im gewünschen Verzeichnis (/var/www)
- während der pausen wurde in der smartvisu-oberfläche die Titel der TTS-mp3s angezeigt. Und zwar eines nach dem anderen (hatte mehrer Tests mit unterschiedlichen Strings gemach, d.h. mehrere mp3s vorhanden). Das Albumcover war in dieser Zeit invalid.
Gruß, DanielAngehängte Dateien
Einen Kommentar schreiben:
-
Hallo Stefan,
Ich hatte sonos.html in sonos.html.txt umbenannt, da html Dateien wohl verboten sind... Bei mir zeigts die allerdings an. Ich probiere es nochmal als zip.
Gruß, DanielAngehängte Dateien
Einen Kommentar schreiben:
-
Au ja, irgendwas zum Playlist / Sender (Stream) ändern wäre schön
Ich lass mich überraschen,
Daniel
Einen Kommentar schreiben:
Einen Kommentar schreiben: