NEWS
SayIt -> Sonos: Received file is too short
-
Guten Morgen,
ich wollte nun SayIt mit Sonos intensiv nutzen und stolpere direkt zum Start über ein Problem.
Ich habe derzeit drei SayIT Instanzen:
0 - PC/Browser: funktioniert
1 - alle Sonos Lautsprecher
2 - ein Sonos Lautsprecher
Mit dem Script:
var idSayItSonosAlle = "sayit.1.tts.text"; var idButton = "hm-rpc.0.FEQ0060867.1.STATE"; // Test rote Lampe subscribe({id: idButton, val: true}, function (obj) { var wochentag = getState("Wochentag").val; log('Ansagen, Auslösegrund erkannt: ' + idButton); setState (idSayItSonosAlle, "de;60;Guten Morgen! Ich wünsche ein tolles Wochenende und einen schönen " + wochentag ); });
Erhalte ich schon folgende Fehler:
sayit-1 2015-07-05 10:54:51 info Upload announce mp3 files sayit-1 2015-07-05 10:54:51 info starting. Version 0.3.8 in /opt/iobroker/node_modules/iobroker.sayit host-iobroker 2015-07-05 10:54:51 info instance system.adapter.sayit.1 started with pid 5892 host-iobroker 2015-07-05 10:54:21 info Restart adapter system.adapter.sayit.1 because enabled host-iobroker 2015-07-05 10:54:21 error instance system.adapter.sayit.1 terminated with code 6 (uncaught exception) sonos-0 2015-07-05 10:54:20 info Queue on sonos[RINCON_000E5851A36401400]: http://172.16.130.122:8082/state/sayit.1.tts.mp3, Volume: 60 sonos-0 2015-07-05 10:54:20 info Queue on sonos[RINCON_000E582492A001400]: http://172.16.130.122:8082/state/sayit.1.tts.mp3, Volume: 60 sonos-0 2015-07-05 10:54:20 info Queue on sonos[RINCON_000E58507F7801400]: http://172.16.130.122:8082/state/sayit.1.tts.mp3, Volume: 60 sonos-0 2015-07-05 10:54:20 info Play on sonos[RINCON_000E5851A36401400]: http://172.16.130.122:8082/state/sayit.1.tts.mp3, Volume: 60 sonos-0 2015-07-05 10:54:20 info Play on sonos[RINCON_000E582492A001400]: http://172.16.130.122:8082/state/sayit.1.tts.mp3, Volume: 60 sonos-0 2015-07-05 10:54:20 info Play on sonos[RINCON_000E58507F7801400]: http://172.16.130.122:8082/state/sayit.1.tts.mp3, Volume: 60 TypeError: 2015-07-05 10:54:20 error at Object.oncomplete (fs.js:108:15) TypeError: 2015-07-05 10:54:20 error at /opt/iobroker/node_modules/iobroker.sayit/main.js:262:21 TypeError: 2015-07-05 10:54:20 error at getLength (/opt/iobroker/node_modules/iobroker.sayit/main.js:163:27) TypeError: 2015-07-05 10:54:20 error at /opt/iobroker/node_modules/iobroker.sayit/main.js:263:39 TypeError: 2015-07-05 10:54:20 error at /opt/iobroker/node_modules/iobroker.sayit/main.js:401:21 TypeError: 2015-07-05 10:54:20 error at cacheFile (/opt/iobroker/node_modules/iobroker.sayit/main.js:383:5) TypeError: 2015-07-05 10:54:20 error at sayItSonos (/opt/iobroker/node_modules/iobroker.sayit/main.js:489:5) TypeError: 2015-07-05 10:54:20 error at sayFinished (/opt/iobroker/node_modules/iobroker.sayit/main.js:202:45) TypeError: 2015-07-05 10:54:20 error Cannot read property 'text' of undefined uncaught 2015-07-05 10:54:20 error exception: Cannot read property 'text' of undefined sayit-1 2015-07-05 10:54:20 info sendTo "send" to system.adapter.sonos from system.adapter.sayit.1: "60;http://172.16.130.122:8082/state/sayit.1.tts.mp3" sayit-1 2015-07-05 10:54:20 warn Received file is too short: sayit-1 2015-07-05 10:54:20 warn Cannot read length of file /opt/iobroker/node_modules/iobroker.sayit/say.mp3 sayit-1 2015-07-05 10:54:20 info sendTo "send" to system.adapter.sonos from system.adapter.sayit.1: "60;http://172.16.130.122:8082/state/sayit.1.tts.mp3" sayit-1 2015-07-05 10:54:20 warn Received file is too short: sayit-1 2015-07-05 10:54:20 info saying: Guten Morgen! Ich wünsche ein tolles Wochenende und einen schönen Sonntag javascript-0 2015-07-05 10:54:20 info script.js.Ansagen_auf_Sonos: Ansagen, Auslösegrund erkannt: hm-rpc.0.FEQ0060867.1.STATE javascript-0 2015-07-05 10:54:01 info script.js.Ansagen_auf_Sonos: registered 1 subscription and 0 schedules
EDIT / Nachtrag:
Im sayit Adapterverzeichnis liegt die mp3 Datei mit 0 Byte.
EDIT / Nachtrag 2:
Mit der Instanz 0 (PC Ausgabe) kommt folgende Fehlermeldung:
iobroker 2015-07-05 11:33:40 info host.iobroker Restart adapter system.adapter.sayit.0 because enabled iobroker 2015-07-05 11:33:40 error host.iobroker instance system.adapter.sayit.0 terminated with code 6 (uncaught exception) javascript-0 2015-07-05 11:33:25 info script.js.Ansagen_auf_Sonos: registered 1 subscription and 0 schedules
Ich fürchte ja, dass es irgendwo bei mir liegt, da ein anderes Script mit Instanz 0 ganz normal arbeitet.
-
Mit sayit stehe ich auf dem Kriegsfuss…
sayit-1 2015-07-05 18:12:53 debug Duration "Guten Morgen! Ich wünsche ein tolles Wochenende und einen schönen Sonntag 0 sayit-1 2015-07-05 18:12:53 info saying: Guten Morgen! Ich wünsche ein tolles Wochenende und einen schönen Sonntag inMem 2015-07-05 18:12:53 debug message sayit.1.* sayit.1.tts.text val=de;60;Guten Morgen! Ich wünsche ein tolles Wochenende und einen schönen Sonntag, ack=false, ts=1436112774, from=system.adapter.javascript.0, lc=1436112774
Ich habe heute zig Varianten probiert (Sprache über Amazon Ivona oder Google). Es ist sehr müssig und schwer nachvollziehbar, wann etwas funktioniert und wann nciht. Alles, was ich machen möchte endet jedenfalls in eine 0 Byte mp3 Datei (im Debug sayit-1 Duration = 0).
Die Fehlermeldung oben entsteht z.B. bei folgendem Aufruf:
setState (idSayItSonosAlle, "de;60;Guten Morgen! Ich wünsche ein tolles Wochenende und einen schönen " + wochentag);
-
Lass doch mal das ! weg. Vielleicht kommt sayit damit nicht klar.
Ich habe bei mir einige Ansagen am Laufen.
Ein Beispiel
var idSayIt = "sayit.0.tts.text"; setState (idSayIt, "de;40;Wohnungstür geöffnet");
-
Das Ausrufezeichen hatte ich auch schon probeweise weggelassen. Dann die Umlaute ersetzt.
Die Ansagen über den Browser mit "Wohnungstür" geöffnet läuft schon mehrere Monate bei mir ohne Probleme.
Das Verrückte ist, dass ich kein Muster erkennen kann, wenn was funktioniert oder nicht. Der zusammengebaute String mit +wochende hatte zwischendurch mal funktioniert, dann wieder nicht. Ob es an den Sayit Instanzen 0, 1, 2 liegt und/oder an Sonos.
Habe bewusst Fehlerfälle mit mit Logs gepostet, in der Hoffnung, dass jemand sagen kann, was genau in den konkreten Fällen falsch ist.
Das sich die sayit Instanz 0 (Browser) mit der sayit Instanz 1 (alle Sonos) unterschiedlich von den Fehlermeldungen verhalten ist schon komisch.
Wenn niemand eine Idee hat, muss ich alles löschen und systematisch vorgehen.
-
Im Browser habe ich es nie probiert. Bei mir laufen die Ansagen alle über eine Sonos Play1.
Ich habe dafür ein Problem, wenn während eines Radiostreams eine Ansage kommt. Danach wird Radio nicht fortgesetzt.
-
Das Thema mit dem Radio sollte eigentlich gelöst sein, mit einer kleinen Unstimmigkeit, siehe:
http://forum.iobroker.org/viewtopic.php … t=20#p3841
Da hatte Bluefox einiges gefixt und ich hatte viel getestet.
Bei mir sind mehrere Sonos Lautsprecher und zwei davon als Stereopärchen. Ich glaube, dass eine Sonos Gruppe noch einmal anspruchsvoller ist, als nur ein einzelner Lautsprecher.
Wie dem auch sei… ich hatte gehofft, dass die Kombination aus sayit und Sonos mittlerweile rund läuft, da ich das Thema Sonos auch immer mal wieder im russischen Forum in Tapatalk gesehen habe (Sonos ist das einzige Wort, das ich erkannt habe, bevor ich so eine Meldung auf gelesen gesetzt habe ).
-
Hallo,
bei mir haben die Sonos Fehlausgaben (mehrfache Ansagen, Radio nicht fortgesetzt, keine Ausgabe, zu laut, zu leise) den WAF in den Keller schnellen lassen. Wegen der zufälligen Entdeckung, dass Sayit Ausgaben über den iPad Browser funktionieren, nutze ich Sonos nun nur noch für Musik. Anpassungen der Lautstärke für Ansagen bzw Musik waren nie optimal. Einen eigen Sonos Play 1 nur für Ansagen will ich mir nicht leisten. Ich hab zuviele andere Baustellen.
Wenn jemand eine funktionierende Lösung hat, nur her damit.
Gruß
Pix
Gesendet von meinem iPhone mit Tapatalk
-
Trotz des Workarounds werden auch weiterhin manchmal die Ansagen doppelt gemacht. Eine Logik dahinter habe ich noch nicht entdeckt.
721_size.jpg -
Seit dem Update 0.3.9 kommen trotz Workaround die Ansagen wieder doppelt. Erst in eingestellter Lautstärke und danach leiser (fast wie ein Echo).