NEWS
Bei Betätigung eines HM Tasters abspielen eines bestimmten MP3s per sayit+sonos möglich?
-
Im Admin (iobroker) findest du ganz oben ein Reiter mit Skripte
-
Aaaaah jetzt hab ichs.
Den Reiter hatte ich total übersehen … :roll:
Danke für den Hinweis.
Ich habe jetzt das Script von Jey Cee testweise kopiert und die IP Adresse bzw. die HM ID angepasst. Die Datei maus.mp3 hab ich nach
C:\Program Files\ioBroker\iobroker-data\files\sayit.0\tts.userfiles kopiert.
Wenn ich http://192.168.xxx.xxx:8082/sayit.0/tts ... s/maus.mp3 im Browser aufrufe, dann kommt das "Speichern Unter..." Fenster. Ich gehe davon aus, dass das bestätigt, dass die Eingabe so richtig ist oder ?
Wenn ich auf den entsprechenden Taster drücke wird das Script laut Log auch ausgeführt, wenn ich das richtig interpretiere:
sonos-0 2016-02-16 18:07:03 info Restore state: volume - 60, mute: false, uri: http://192.168.xxx.xxx:8082/sayit.0/tts ... s/gong.mp3
sonos-0 2016-02-16 18:07:00 info Play on sonos[RINCON_000E5828E4E601400]: http://192.168.xxx.xxx:8082/sayit.0/tts … s/maus.mp3, Volume: null
javascript-0 2016-02-16 18:07:00 info sendTo "send" to system.adapter.sonos from system.adapter.javascript.0: "http://192.168.xxx.xxx:8082/sayit.0/tts ... s/maus.mp3"
sayit-0 2016-02-16 18:06:52 info Upload announce mp3 files
sayit-0 2016-02-16 18:06:52 info starting. Version 0.3.17 in C:/Program Files/ioBroker/node_modules/iobroker.sayit
host-Cray 2016-02-16 18:06:51 info instance system.adapter.sayit.0 started with pid 4836
Nur leider ist nichts über Sonos zu hören.
Wo liegt hier der Hund begraben ?
-
> sonos-0 2016-02-16 18:07:00 info Play on sonos[RINCON_000E5828E4E601400]: [http://192.168.xxx.xxx:8082/sayit.0/tts](http://192.168.xxx.xxx:8082/sayit.0/tts) … s/maus.mp3, Volume: null
Kann es sein das du bei Volume eine Variable genommen hast? "null" deutet auf eine variable ohne gesetzen wert hin. Das könnte der Grund sein warum du nichts hörst.
P.S.: Wenn du dein script postest ist es einfacher zu helfen.
9364_alexa.png -
Nicht das ich wüsste. Wie hätte ich das gemacht mit der Variable bzw. wo kann ich das überprüfen ? :roll:
Ich habe 1:1 das Script von deinem Post genommen. Deswegen habe ichs auch nicht gepostet.
Ich habe nur die Object ID, die Ip Adresse und das mp3 file abgeändert…
on({id: "hm-rpc.1.MEQ0xxxxxx.6.PRESS_SHORT", val: true}, function(obj) { sendTo('sonos', 'send', 'http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3'); });
-
-
Wenn ich setState (volSayIt, 30); oberhalb einfüge kommt folgende FM im Log:
hm-rpc-2 2016-02-16 22:37:45 info xmlrpc -> listDevices 0 javascript-0 2016-02-16 22:35:07 error at script.js.Script1:1:11 javascript-0 2016-02-16 22:35:07 error script.js.Script1: ReferenceError: volSayIt is not defined javascript-0 2016-02-16 22:35:07 info Start javascript script.js.Script1
In einem anderen Post habe ich folgendes gefunden:
var vol ="sayit.1.tts.volume";
setState (vol,40);
Wenn ich das oberhalb einfüge kommt folgende FM im Log:
sonos-0 2016-02-16 22:38:58 info Restore state: volume - 60, mute: false, uri: http://192.168.222.35:8082/sayit.0/tts.userfiles/gong.mp3 sonos-0 2016-02-16 22:38:55 info Play on sonos[RINCON_000E5828E4E601400]: http://192.168.222.35:8082/sayit.0/tts.userfiles/maus.mp3, Volume: null javascript-0 2016-02-16 22:38:55 info sendTo "send" to system.adapter.sonos from system.adapter.javascript.0: "http://192.168.222.35:8082/sayit.0/tts.userfiles/maus.mp3" javascript-0 2016-02-16 22:38:47 info script.js.Script1: registered 1 subscription and 0 schedules javascript-0 2016-02-16 22:38:47 warn State "sayit.1.tts.volume" not found javascript-0 2016-02-16 22:38:47 info Start javascript script.js.Script1 javascript-0 2016-02-16 22:38:47 info Stop script script.js.Script1 javascript-0 2016-02-16 22:38:45 info script.js.Script1: registered 1 subscription and 0 schedules javascript-0 2016-02-16 22:38:45 warn State "sayit.1.tts.volume" not found javascript-0 2016-02-16 22:38:45 info Start javascript script.js.Script1 javascript-0 2016-02-16 22:38:45 info Stop script script.js.Script1 javascript-0 2016-02-16 22:35:05 error at script.js.Script1:1:11 javascript-0 2016-02-16 22:35:05 error script.js.Script1: ReferenceError: volSayIt is not defined javascript-0 2016-02-16 22:35:05 info Start javascript script.js.Script1
-
Ich habs jetzt heute morgen nach einem Neustart des PCs auf dem iobroker läuft einfach nochmal probiert mit folgendem Skript:
var vol ="sayit.1.tts.volume"; setState (vol,40); on({id: "hm-rpc.1.MEQxxxxxx.6.PRESS_SHORT", val: true}, function(obj) { sendTo('sonos', 'send', 'http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3'); });
Plötzlich habe ich keine FM mehr im Log, sondern das hier:
sonos-0 2016-02-17 09:36:48 info Restore state: volume - 60, mute: false, uri: http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/gong.mp3 sonos-0 2016-02-17 09:36:46 info Play on sonos[RINCON_000E5828E4E601400]: http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3, Volume: null javascript-0 2016-02-17 09:36:46 info sendTo "send" to system.adapter.sonos from system.adapter.javascript.0: "http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3" hm-rpc-2 2016-02-17 09:35:20 info xmlrpc -> listDevices 0
Die Datei maus.mp3 wird nicht abgespielt, aber gong.mp3 wird über die Lausprecher abgespielt ?!?
Wie kann das sein, obwohl in meinem Skript die gong.mp3 Datei gar nicht vorkommt ?
Und wieso wird maus.mp3 nicht abgespielt ?
-
Schätze mal du willst den falschen Datenpunkt beschreiben.
var vol ="sayit.1.tts.volume"; ````versuche mal
var vol ="sayit.0.tts.volume";
-
Hi coyote,
danke für den Hinweis.
Hab ich soeben geändert im Skript auf var vol ="sayit.0.tts.volume";
Leider hat es keine Veränderung gebracht.
Es wird nach wie vor nur der gong.mp3 abgespielt.
maus.mp3 ist nicht zu hören und auch die Log Meldung hat sich nicht verändert.
Hat es eventuell damit zu tun, dass unter "Objekte" beim sayit Volume-Datenpunkt eine rote 80 steht ? Ich kann die 80 aber leider auch nicht verändern …
Was mich auch wundert, dass unter Objekte beim sonos current title Datenpunkt gong.mp3 steht?! Spielt er deswegen immer den Gong ab, obwohl ich den in meinem Skript gar nicht aufrufe ?
Hier der Screenshot:
-
Hast du hier: http://forum.iobroker.de/viewtopic.php?f=20&t=793 mal etwas rumgelesen?
Ich habe letztens auch versucht eine MP3 abzuspielen, hat bei mir auch nicht funktioniert, habe aber auch momentan nicht weiter danach geschaut. Muss ich bei Gelegenheit nochmal probieren.
Die rote 80 ist die aktuelle Lautstärke, die sollte sich aber damit
var vol ="sayit.1.tts.volume"; setState (vol,40);
auf 40 einstellen.
Der Gong ist die Ankündigung, die kannst du im sayit Adapter direkt, an/ab stellen
-
Ja, den Thread hab ich auch schon durch…
Das Problem von mir hat leider keiner dort.
Den Gong hab ich im Sayit Adapter abgedreht.
Das ist ja das merkwürdige, dass er trotzdem abgespielt wird ...
-
Wenn der wert eines objects rot ist wurde die Änderung nicht an das Gerät übertragen oder die Änderung wurde vom Gerät nicht bestätigt. ein Adapter neustart sollte dafür sorgen das der richtige status oder wert zu sehen ist, dann sollte es auch möglich sein einen neuen wert zu übertragen.
Das dürfte der Grund für die Meldung "…Volume: null" im log sein.
Gesendet von meinem Jolla mit Tapatalk
-
Ich habe sogar mehrmals den PC komplett neugestartet, auf dem iobroker läuft. Damit sollte doch eigentlich auch jedes Mal alle Adapter neu geladen werden oder ?
Ich habe jetzt testweise meinen Sonos Zoneplayer stromlos gemacht und siehe da, auf einmal spielt er maus.mp3 ab.
Es scheint jetzt also endlich soweit mal zu funktionieren, ganz normal auf Knopfdruck ein mp3 file abzuspielen
Im Log habe ich allerdings nach wie vor volume null und was jetzt neu dazugekommen ist, ist volume undefined:
sonos-0 2016-02-17 21:45:31 info Restore state: volume - 60, mute: false, uri: hm-rpc-2 2016-02-17 21:45:30 info xmlrpc -> listDevices 0 sonos-0 2016-02-17 21:45:09 info Play on sonos[RINCON_000E5828E4E601400]: http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3, Volume: undefined sonos-0 2016-02-17 21:45:09 info Restore state: volume - 60, mute: false, uri: sonos-0 2016-02-17 21:44:48 info Queue on sonos[RINCON_000E5828E4E601400]: http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3, Volume: null javascript-0 2016-02-17 21:44:48 info sendTo "send" to system.adapter.sonos from system.adapter.javascript.0: "http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3" sonos-0 2016-02-17 21:44:47 info Play on sonos[RINCON_000E5828E4E601400]: http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3, Volume: undefined sonos-0 2016-02-17 21:44:47 info Restore state: volume - 60, mute: false, uri: sonos-0 2016-02-17 21:44:32 info Queue on sonos[RINCON_000E5828E4E601400]: http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3, Volume: null javascript-0 2016-02-17 21:44:32 info sendTo "send" to system.adapter.sonos from system.adapter.javascript.0: "http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3"
Unter Objekte habe ich ebenfalls noch die rote 80 beim sayit Datenpunkt und auch sonst einige rote Werte bei diversen Datenpunkten (siehe Screenshot):
Wie sieht denn bei euch das Log aus nachdem per sayit Adapter ein mp3 file abgespielt wurde ?
Und wie sieht bei euch die Objekte Ansicht aus ? Ist da gar nichts rot ?
Kann ich die volume null bzw. volume undefined Meldung ignorieren, oder habt ihr noch Ideen wo der Fehler liegen könnte ?
-
Es ist zum aus der Haut fahren !!! :evil:
Ich habe heute nachdem auf meinem Testrechner der Abspielen der MP3 soweit funktioniert hat, iobroker nochmal komplett neu auf meinem Server installiert (Hyper-V VM).
Ich habe alles 1:1 wieder genau so installiert wie auf meinem Testrechner.
Selbes Skript, selbe Einstellungen.
Jetzt geht das Abspielen wieder nicht. Weder auf meinem Testrechner, noch auf meinem Server.
Was geht denn hier ab ?
Neustart vom Testrechner bzw. vom Server und stromlos machen vom Sonos Player haben ebenfalls nichts mehr genutzt.
Im Log siehts auch etwas anders aus:
sonos-0 2016-02-18 20:41:11 info Play on sonos[RINCON_000E5828E4E601400]: http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3, Volume: null javascript-0 2016-02-18 20:41:11 info sendTo "send" to system.adapter.sonos from system.adapter.javascript.0: "http://192.168.xxx.xxx:8082/sayit.0/tts.userfiles/maus.mp3"
Was mir auch aufgefallen ist: Wenn ich nebenbei auf meinem Handy oder auf meinem PC die Sonos Controller App laufen habe und ich versuche per Tasterdruck/Skript die Datei maus.mp3 abzuspielen, erscheint folgende FM:
Schön langsam verzweifel ich…
Bitte helft mir den Fehler zu finden.
Gerne auch per Teamviewer oder Skype oder so ...
-
@Jey Cee:
Kannst du mir bitte Screenshots von deinem Log und deiner "Objekte-Ansicht" posten, nachdem du dieses MP3 Skript ausgeführt hast.
Das würde mir schon helfen, damit ich bei der Fehlersuche zumindest etwas eingrenzen kann…
Danke
-
Falls du im Browser http://192.168.xxx.xxx:8082/sayit.0/tts … s/maus.mp3 aufrufst, kannst du was hören?
Übrigens deine 192 IP Adresse kannst du ruhig zeigen, die ist nur von deiner Zuhause erreichbar und ansprechbar.
Stimmt die IP Adresse, die auf dem SONOS siehst (auf dem Bild) mit 192.168.xxx.xxx ?
-
Wenn ich http://192.168.xxx.xxx:8082/sayit.0/tts … s/maus.mp3 im Browser aufrufe, dann kommt das "Speichern Unter..." Fenster.
Sprich ich kann die mp3 Datei dann per Browser herunterladen.
Abgespielt wird hier nichts...
-
@Jey Cee:
Kannst du mir bitte Screenshots von deinem Log und deiner "Objekte-Ansicht" posten, nachdem du dieses MP3 Skript ausgeführt hast.
Das würde mir schon helfen, damit ich bei der Fehlersuche zumindest etwas eingrenzen kann…
Danke `
Wäre wirklich toll wenn du mir das posten könntest…
@Bluefox: Ist das mit dem Download Fenster normal wenn ich den Link von dir in der Adresszeile eingebe ?
Mein Problem ist, dass ich weder im Forum etwas über meine Fehler finde, noch in der Doku genaueres nachlesen kann.
Ich bin daher auf euch angewiesen bei der Fehlersuche...
-
Ich glaube ich habs jetzt hinbekommen.
Das Problem ist anscheinend wenn man abwechselnd von 2 verschiedenen io-broker Installationen (unterschiedliche IP Adressen) versucht per sayit Adapter auf Sonos ein mp3 file abzuspielen, dann mag das Sonos nicht so wirklich.
Spiele ich von iobroker Installation A das file ab, funktioniert es.
Stoppe ich iobroker A und starte iobroker B und versuche das file abzuspielen, erfolgt keine Ausgabe am Sonos.
Erst nach reboot vom Sonos System funktioniert dann die Ausgabe von iobroker B.
Wechsel ich dann wieder auf iobroker A, funktioniert es wieder nicht.
Fazit: Nach jedem Wechsel zwischen den iobroker Installationen ist leider ein Reboot von Sonos notwendig…
Das geht übrigens mit folgendem Kommando:
http://SONOS_IP:1400/reboot
Beste Grüße
5264_5f6da6b8619f8015800b027954eed8bd.png -
Da die Grundfunktion nun endlich gegeben ist (Bei Tastendruck ein MP3 File abspielen) möchte ich das Ganze nun möglichst WAF tauglich gestalten.
Ich habe in einem anderen Thread ein Skript gefunden, welches bei Radiobetrieb und Unterbrechung einer Sayit Ausgabe, nach einer bestimmten Zeit den Radio wieder startet.
Dieses Skript hätte ich wie folgt auf meine Klingelanwendung angepasst:
var vol ="sayit.0.tts.volume"; setState (vol,80); on({id: "hm-rpc.0.LEQxxxxxx.1.PRESS_SHORT"/*Taster_Haustuer_Klingel.PRESS_SHORT*/, val: true}, function(obj) { //Auslöser var idSonosfav = getState("sonos.0.root.192_168_222_17.favorites_set").val; //speichern des aktuellen Senders var idSonosplay = getState ("sonos.0.root.192_168_222_17.state_simple").val; //Status des Speakers if (idSonosplay) { //Wenn Radio läuft sendTo('sonos', 'send', 'http://192.168.222.9:8082/sayit.0/tts.userfiles/maus.mp3'); //Ausgabe setState ("sonos.0.root.192_168_222_17.favorites_set", idSonosfav); //nach 23 Sekunden gespeicherten Favoriten Sender wieder stellen setStateDelayed ("sonos.0.root.192_168_222_17.state_simple", idSonosplay, 23000); //nach 23 Sekunden wieder starten } else { //Wenn Radio nicht läuft sendTo('sonos', 'send', 'http://192.168.222.9:8082/sayit.0/tts.userfiles/maus.mp3'); } });
Folgende 2 Probleme hab ich damit:
Problem 1: Die Lautstärke mit der das MP3 File abgespielt wird ist nicht der vorgegebene Wert 80, sondern der Wert auf dem Sonos aktuell gerade läuft.
Problem 2: Läuft kein Radio und das Skript wird ausgeführt, passt alles.(bis auf die Lautstärke, siehe Problem 1) maus.mp3 wird einmal abgespielt
Läuft Radio auf Sonos und es wird das Skript aufgerufen, dann stoppt die Radiowiedergabe und maus.mp3 wird 2x nacheinandner abgespielt. Nachdem maus.mp3 2x durchgelaufen ist, fängt der Radio nicht wieder von selbst an zu spielen, sprich es bleibt danach ruhig und man muss ihn manuell aufrufen.
Hier die Log Ausgabe bei Problem 2:
sonos.0 2016-02-28 11:17:40 info sonos.0 try to control id sonos.0.root.192_168_222_17.state_simple with {"val":true,"ack":false,"ts":1456654661,"q":0,"from":"system.adapter.javascript.0","lc":1456654661} sonos.0 2016-02-28 11:17:40 info sonos.0 Restore state: volume - 52, mute: false, uri: x-sonosapi-stream:s15580?sid=254&flags=32 sonos.0 2016-02-28 11:17:17 info sonos.0 Play on sonos[RINCON_000E5828E4E601400]: http://192.168.222.9:8082/sayit.0/tts.userfiles/maus.mp3, Volume: null sonos.0 2016-02-28 11:17:17 info sonos.0 try to control id sonos.0.root.192_168_222_17.favorites_set with {"val":"","ack":false,"ts":1456654638,"q":0,"from":"system.adapter.javascript.0","lc":1455819037} javascript.0 2016-02-28 11:17:17 info javascript.0 sendTo "send" to system.adapter.sonos from system.adapter.javascript.0: "http://192.168.222.9:8082/sayit.0/tts.userfiles/maus.mp3"