NEWS
Sonos Adapter 2.0.0 Text to speech keine Funktion
-
-
@skokarl sagte in Sonos Adapter 2.0.0 Text to speech keine Funktion:
Perfekt, danke! Da habe ich jetzt was zum Behirnen
-
@metaxa
es lohnt sich....glaub mir -
Da geht`s mir wie Metaxa.
Habe zuerst wieder auf 1.7.7 zurückgestellt, dann den verlinkten Thread quergelesen.
Die Installation hat nach dem Eröffnungspost ja noch gut geklappt - aber dann....Ich bin ja bereit eine Zusammenfassung für die Doku zu schreiben, aber ...
- ich weiß gar nicht wie man danach fortfährt.
- @BBTown hat super Beiträge gebracht, aber bis dahin komme ich gar nicht erst
- und die wichtigste Frage: Wird da jemand vielleicht etwas von in den Adapter einbinden, damit es wieder für jeden einfach ist?
- An dem Adapter ist anscheinend schon länger nichts mehr passiert.
Wenn da nichts mehr vorgesehen ist (seltsamerweise wird mir die nicht mehr unterstützte GUI weiter angeboten) würde ich versuchen das ganze nachzustellen - zu verstehen - und dann eine Doku schreiben.
Hilft mir jemand dabei?
EDIT:
Habe mit die Githubseite der api mal näher angesehen.
Bei TTS geht es ja wohl hauptsächlich um zwei Befehle:/[Room name]/say/[phrase][/[language_code]][/[announce volume]] /sayall/[phrase][/[language_code]][/[announce volume]]
Das sollte hinzubekommen sein.
Aber wie bekomme ich die API dazu dauerhaft zu laufen? -
die API ??, hab ich das richtig verstanden ?
Hab ich doch in meinem vorletzten Beitrag hier verlinkt.
-
@skokarl sagte in Sonos Adapter 2.0.0 Text to speech keine Funktion:
die API ??, hab ich das richtig verstanden ?
Wahrscheinlich nicht
Ja den verlinkten Thread meine ich.
Da steht "putty offen lassen" das kann ja nicht die Lösung sein. -
@Homoran
och, mein lieber Homoran.....das ist mein Thread..... liest Du nicht weiter ?
Das war der erste Stand als ich noch als Linux Newbie nicht wusste wie ich das in den Autostart kriege.Les mal weiter, nen paar Tage später hatte ich die Lösung.
-
@skokarl sagte in Sonos Adapter 2.0.0 Text to speech keine Funktion:
@Homoran
och, mein lieber Homoran.....das ist mein Thread..... liest Du nicht weiter ?
Das war der erste Stand als ich noch als Linux Newbie nicht wusste wie ich das in den Autostart kriege.Les mal weiter, nen paar Tage später hatte ich die Lösung.
Ich schrob doch: habe quergelesen
Dann gehe ich da nochmal rein
-
gute Idee ....
-
@Homoran , da hat sokarl schon sehr viel Arbeit reingesteckt und funkt auch tadellos.
Ist halt außerhalb vom ioBroker und wird logischer Weise in keinster Weise von BackItUp mitgesichert. Aber, dank der Vorarbeit von skokarl kann ich meine IKEA(Sonos) jetzt auch mit TTS ansteuern. Leider fehlen mir da paar Steuermöglichkeiten via http.
LG, mxa
-
@metaxa sagte in Sonos Adapter 2.0.0 Text to speech keine Funktion:
da hat sokarl schon sehr viel Arbeit reingesteckt und funkt auch tadellos.
Das glaube ich gerne! (man sieht auch schön, wie er sich da immer weiter reinarbeitet!)
Aber ich stelle mich mal dumm an und versuche es mit den Augen eines Dummusers zu sehen, wie ich das für die Doku immer versuche.
Es sind zwar "nur" 88 Beiträge, aber der "simple User" der gewohnt ist einen Adapter zu installieren, da etwas schnell einzuhämmern und schon läufts, drfte damit etwas überfordert sein.@metaxa sagte in Sonos Adapter 2.0.0 Text to speech keine Funktion:
Aber, dank der Vorarbeit von skokarl kann ich meine IKEA(Sonos) jetzt auch mit TTS ansteuern.
Die Vorarbeit ist wirklich toll, ich teste da jetzt mal alles auf meiner Testinstallation, auf der produktiven habe ich nur kurz die API installiert und dann gestestet - war wirklich vielversprechend.
Ich habe auch schon einiges aus dem Thread "geklaut" um eine Doku dafür auf möglichst wenig Schritte kondensiert zu erstellen.https://github.com/Homoran/iobroker.sonos_api/blob/master/README.md
Ich möchte im Sinne der User diese Doku so kurz und prägnant wie möglich halten, zumindest den Teil der ersten Installation bis hin zur Nutzung der Basic-TTS Befehle.
Danach kann ja noch ein Expertenteil kommen.
Wenn Da noch was fehlt, oder zu viel BlaBla oder zu technisch formuliertes drinsteht bitte ich um Kommentare
Bilder sind noch nicht drin, werde ich wahrscheinlich mit der Testinstallation erzeugen.
-
@Homoran
Die Doku hat mir echt geholfen.
Mit dem iobroker-Sonos-Adapter funktioniert bei mir TTS nicht.Ich habe festgestellt, wenn man mit Schleifen in Kombination mit Requests und deren Results oder Timeouts arbeitet, dann ist Blockly nicht nutzbar, da alle Skript-Variablen global für das gesamte Skript angelegt werden. Mit Callbacks läuft man dann schnell in die Situation, dass die sich überschreiben.
Ich habe noch eine Prüfung auf mute eingebaut, da sonst kein Ton raus kommt, wenn das Gerät gerade stumm geschaltet ist.
Wegen der Probleme mit Blockly hab ich es mit JS gelöst:
var klangbefehl; var timeout; // Einzelnen Sonos-Raum verarbeiten function handleRoom(room) { var url = [getState("0_userdata.0.sonos_server").val,room,'/state'].join(''); console.log(url); try { require("request")(url, function (error, response, result) { console.debug(result); var muted = false; if (result.indexOf('\"mute\":true') >= 0) { muted = true; muteOrUnmuteRoom(room, false); } url = [getState("0_userdata.0.sonos_server").val,room,klangbefehl].join(''); console.log(url); try { require("request")(url, function (error, response, result) { console.log(result); }).on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } if (muted) { setTimeout(function () { muteOrUnmuteRoom(room, true); }, timeout); } }).on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } console.log("request: " + url); } // Sonos stumm oder laut schalten function muteOrUnmuteRoom(room, doMute) { var url = String(getState("0_userdata.0.sonos_server").val) + String(room); if (doMute) { url += '/mute'; } else { url += '/unmute'; } console.log(url); try { require("request")(url, function (error, response, result) { console.debug(result); }).on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } } on({id: new RegExp('hm-rpc\\.1\\.0026DA49A82A4C\\.1\\.PRESS_LONG' + "|" + 'hm-rpc\\.1\\.0026DA49A82A4C\\.1\\.PRESS_SHORT' + "|" + '0_userdata.0.klingel.klingeltest'), change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("0_userdata.0.klingel.clipOrTts").val == "clip") { klangbefehl = ['/clip/',getState("0_userdata.0.klingel.clip").val,'/',getState("0_userdata.0.klingel.lautstaerke_0_bis_100").val].join(''); } else { klangbefehl = ['/say/',getState("0_userdata.0.klingel.ansagetext").val,'/de/',getState("0_userdata.0.klingel.lautstaerke_0_bis_100").val].join(''); } timeout = Number(getState("0_userdata.0.klingel.playTimeout").val) * 1000; var rooms = ['Flur', 'Küche', 'Wohnzimmer']; //var rooms = ['Küche']; if (getState("0_userdata.0.klingel.klingeln_garten").val == true) { rooms.push('Garten'); } if (getState("0_userdata.0.klingel.klingeln_garage").val == true) { rooms.push('Garage'); } for (var room_index in rooms) { var room = rooms[room_index]; handleRoom(room); } });