NEWS
[unGelöst] Sonos Mp3 Sound abspielen
-
Ich habe den langen Thread hier im Forum zum MP3 Sound files durchgeackert und bekomme es einfach nicht hin ein Soundfile zu spielen.
wenn ich mit
setState("sayit.0.tts.text",'/sayit.0/tts.userfiles/doorbell.mp3');
auf meinem Sonos Lautsprecher ausgeben will, dann wird das File zwar abgespielt, aber gleichzeitig wird das Volumen auf 0 gestellt.
-
Ich mache das so:
sendTo('sonos', 'send', '40;http://10.1.2.3:8082/sayit.1/tts.userfiles/klingel.mp3');
Die 40 ist die Lautstärke, die IP musst Du mit der Adresse vom ioBroker ersetzen.
Gruß,
Rudi
-
Danke für die Rückmeldung!
Wahrscheinlich eine dumme Frage,
1. Benutzt Du nur diesen einen Befehl oder noch einen weiteren?
2. Wie kannst Du mit dem Befehl den Sonos Lautsprecher auswählen?
Ich sehe nur 'sonos'.
Ich habe folgenden Code versucht.
sendTo('sonos.0', 'send', '40;http://192.168.1.124:8082/sayit.1/tts.userfiles/doorbell.mp3');
Jetzt erhalte ich aber ein gleichzeitige Aussage von einem früheren Text2speech Sound und dem doorbell.mp3.
Es scheint, dass ich noch irgendeinen Text2speech File im Cache habe.
-
1. ja, nur diesen Befehl
2. hab nur einen …
-
Danke und Ok.
Der Workarround wäre für jeden Songs Lautsprecher einen eigenen Adapter zu installieren.
Ziemlicher Krampf, das wäre dann wohl ein Change Request.
Ich habe das Cache Problem noch mit einem zusätzliche Befehl gelöst.
setState("sayit.0.tts.mp3",''); // Sound Cache löschen sendTo('sonos.0', 'send', '70;http://192.168.1.124:8082/sayit.0/tts.userfiles/doorbell.mp3');
-
Leider funktioniert die Installation eines zweiten Sonos Adapters nicht.
Damit gibt es keine direkte Lösung für Anwender, die mehr als einen Sonos Lautsprecher haben.
Außerdem scheint meine Kommandosequenz oben irgendetwas in dem Sonos Adapter durcheinander zu bringen.
Ich sehe den Effekt, dass die Lautstärke der Sonos Box unerklärlicherweise auf Null gesetzt wird.
Meine Lautsprecher sind die Sonos Playbar und Play1.
Der einzige Workaround, der geht, ist einen Favoriten in der Sonos App einzurichten, diesem Favoriten einen Soundfile zu zuordnen und dann das Soundfile über die Favoriten Abspielfunktion des Sonos Adapters abzuspielen.
Ziemlich umständlich und hinten durch die Brust ins Auge.
-
Leider funktioniert die Installation eines zweiten Sonos Adapters nicht.
Damit gibt es keine direkte Lösung für Anwender, die mehr als einen Sonos Lautsprecher haben.
Meine Lautsprecher sind die Sonos Playbar und Play1. `
Der zweite Adapter funktioniert, aber die Playbar funktioniert nicht. Hatte zuerst das gleiche Problem.Zwei unterschiedliche Play1 kann man mit 2 Instanzen ansprechen.
EDIT: Die tts-Datei wird sogar in der Sonos-App angezeigt jedoch nicht abgespielt.
-
Die Korrekte Lösung sieht so aus:
setState(sonos.0.root.192_168_0_241.tts, http://192.168.0.3:8082/web/klingel1.mp3)
Damit lässt sich jede Sonos Box einzeln ansprechen.
-
Ich muss hier auch noch mal forschen. (Befinde mich bei Sonos aber auch gerade in der geschlossenen Beta, vielleicht ist die Software hier auch noch nicht rund).
Wenn TTS auf die Playbar in einer Gruppe (3.1/5.1) gesendet wird, wird Group-Volume auf 0 gesetzt, weshalb man die TTS-Ansage dann wohl nicht hört.
Eine manuelle Änderung von level.volume wird wiederum auch in group.volume nachgezogen.
-
Moin Jungs und Mädels,
ich habe es nun über das Script versucht, habe aber wohl noch irgendwo einen Denkfehler drinne.
~~![](</s><URL url=)https://abload.de/img/unbenannt14sp5h.jpg" />
Habe meine Klingel über Blockly als Auslöser gesetzt.
Um dann folgendes Script auszulösen:
setState("sayit.0.tts.mp3",''); // Sound Cache löschen sendTo('sonos.0', 'send', '70;http://192.168.1.2:8082/sayit.0/tts.userfiles/caracal2.mp3');
Die "192.168.1.2" ist die IP meines Raspberry und unter "/opt/iobroker/iobroker-data/files/sayit.0/tts.userfiles" liegt die caracal2.mp3
Was mache ich falsch, jemand einen Tip für mich?~~
-
Ich habe schon Stunden (Tage) investiert, um eine Lösung zu bekommen, die Sound und Text bei Sonos mischt (natürlich nicht gleichzeitig, sondern hintereinander).
Leider bekomme ich das nicht stabil hin und die Randbedingungen dafür sind mir nicht klar.
Bei Sound gibt es ja noch nicht einmal eine verbindliche Dokumentation. Vielleicht ist dem Entwickler bewusst, dass es nicht funktioniert.
Es gibt immer Mal wieder Situationen, in denen mein Testsetup funktioniert.
Aber wenn ich die Einstellung dann "produktiv" schaltet, dann kommt es zu Ausfällen.
Die Symptome sind dann immer.
1. die Lautstärke ist auf 0 gesetzt.
2. die Playlist wird immer länger und alle "Befehle" werden angehängt und nicht mehr gespielt.
Nur mit der manuellen Löschung der Playlist mit Hilfe der Sonos App kann dann dieser Zustand verlassen werden.
Was funktioniert, ist die Aussage auf einen direkt angeschlossenen Lautsprecher.
Das hatte ich auch mal im Einsatz. Hat sich aber bei mir nicht richtig bewährt, weil mein Raspberry an einer Stelle installiert ist, an der der Sound nur bedingt wahrnehmbar ist.
Ich habe mittlerweile aufgegeben.
Jetzt benutze Telegram als verlässliches Benachrichtigungsmedium (natürlich ohne Sound).
Es könnte auch damit zusammenhängt, dass ich drei Sonos Lautsprecher habe und dazu noch unterschiedliche Typen (Playbar und zwei Play1). Man hört im Forum immer wieder, dass Leute, die keine Probleme habe, nur einen Sonos Lautsprecher haben.
PS: Ich verwende nur Javascript.
-
dublette
-
Moin Jungs und Mädels,
ich habe es nun über das Script versucht, habe aber wohl noch irgendwo einen Denkfehler drinne.
~~![](</s><URL url=)https://abload.de/img/unbenannt14sp5h.jpg" />
Habe meine Klingel über Blockly als Auslöser gesetzt.
Um dann folgendes Script auszulösen:
setState("sayit.0.tts.mp3",''); // Sound Cache löschen sendTo('sonos.0', 'send', '70;http://192.168.1.2:8082/sayit.0/tts.userfiles/caracal2.mp3');
Die "192.168.1.2" ist die IP meines Raspberry und unter "/opt/iobroker/iobroker-data/files/sayit.0/tts.userfiles" liegt die caracal2.mp3
Was mache ich falsch, jemand einen Tip für mich?~~ ` ~~hast du denn schon CeeJeys Variante probiert?
setState(sonos.0.root.192_168_0_241.tts, http://192.168.0.3:8082/web/klingel1.mp3) ````~~
-
Kann mir jemand erklären, welche zwei IP-Adressen ich dort einsetzen muss? Die vom Raspberry leuchtet mir ein, aber warum eine zweite IP-Adresse?
-
@Jey Cee:Die Korrekte Lösung sieht so aus:
setState(sonos.0.root.192_168_0_241.tts, http://192.168.0.3:8082/web/klingel1.mp3)
Damit lässt sich jede Sonos Box einzeln ansprechen. `
Ich habe jetzt genau das mal gemacht. Ändert leider nichts daran, dass die jeweils angesprochene Box gemuted wird. Lautstärkebefehle werden ignoriert. Zudem wird die Lautstärke quasi dauerhaft auf 0 gesetzt. Ich kann weder per Sonos App noch per Objekte die Lautstärke anheben. Wird immer sofort wieder auf 0 gesetzt. Erst das ausschalten des Sonos Adapters korrigiert das
-
Ich habe fast das gleiche Problem, wer kann mir Helfen?
//var vol ="sayit.0.tts.volume"; function esklingelt() { var idSonosfav = getState("sonos.0.root.192_168_181_41.favorites_set").val; //speichern des aktuellen Senders var idSonosplay = getState ("sonos.0.root.192_168_181_41.state_simple").val; //Status des Speakers if (idSonosplay) { //Wenn Radio läuft sendTo('sonos', 'send', '15;http://192.168.181.35:8082/state/sayit.0.tts.mp3'); //Mp3 Ausgabe mit Lautstärke 60 setState ("sonos.0.root.192_168_181_41.favorites_set", idSonosfav); //nach 10 Sekunden gespeicherten Favoriten Sender wieder stellen setStateDelayed ("sonos.0.root.192_168_181_41.state_simple", idSonosplay, 7000); //nach 10 Sekunden wieder starten } else { //Wenn Radio nicht läuft sendTo('sonos', 'send', '15;http://192.168.181.35:8082/state/sayit.0.tts.mp3'); //Mp3 Ausgabe mit Lautstärke 60 } } setState("sayit.0.tts.mp3",'es klingelt'); // Sound Cache löschen on({id: "hm-rpc.1.NEQ0955114.1.PRESS_SHORT"/*HM-Sen-DB-PCB NEQ0955114:1.PRESS_SHORT*/, change: "any"}, esklingelt); //bei kurzem Tastendruck "esklingelt" aufrufen
bei mir werden die Boxen gemutet, es kommt die mp3 file auf allen Boxen.
-
Ich habe das gleiche Problem, und wenn nicht gemutet, dann wird das file in der Playlist hinten angereist, was ja keinen Sinn ergibt….
Gesendet von meinem WAS-TL10 mit Tapatalk
-
Ich habe mich fast ein Jahr versucht Workarounds für den fehlerhaften Sonos Adapter zu finden.
Außerdem habe ich Fehler im Issuetracker gemeldet, auf die nicht reagiert wurde.
Ich habe den Eindruck, dass der Sonos Adapter nicht mehr gepflegt wird.
Leider erlauben meine Kenntnisse es nicht, hier etwas zu ändern.
Ich benutze deshalb seit einem Monat das node-Sonos-http-api.
https://github.com/jishi/node-sonos-http-api
Von ioBroker spreche ich das API über http get Aufrufe an. Bisher habe ich keine Probleme damit.
-
Ich habe etwas gefunden. Der Adapter scheint die einzelnen TTS in einer Queue zu speichern, wenn diese zu oft kommen. < 30 sek.
sonos.0 2018-12-16 17:50:18.670 debug redis pmessage io.sonos.0.* io.sonos.0.root.192_168_6_83.queue {"val":"undefined - sayit.0.tts.mp3, undefined - sayit.0.tts.mp3, undefined - sayit.0.tts.mp3, undefined - sayit.0.tts.mp3, undefined -….
sonos.0 2018-12-16 17:50:18.664 debug queue for http://192.168.6.83:1400: undefined - sayit.0.tts.mp3, undefined - sayit.0.tts.mp3, undefined - sayit.0.tts.mp3, undefined - sayit.0.tts.mp3, undefined - sayit.0.tts.mp3, undefined - sayit.0
sonos.0 2018-12-16 17:50:18.429 debug player.tts= volume=39 currentTrack.uri=http://192.168.120.248:8082/state/sayit.0.tts.mp3 tts.playbackState=STOPPED
und dann in Redis abgelegt zu werden. Aber offensichtlich nicht mehr weiter abgearbeitet.
-
Ach ja, dabei scheint auch die Lautstärke auf "0" zu gehen.