Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Sonos Adapter 2.0.0 Text to speech keine Funktion

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Sonos Adapter 2.0.0 Text to speech keine Funktion

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      skokarl last edited by

      guck mal hier

      metaxa 1 Reply Last reply Reply Quote 0
      • metaxa
        metaxa @skokarl last edited by

        @skokarl sagte in Sonos Adapter 2.0.0 Text to speech keine Funktion:

        guck mal hier

        Perfekt, danke! Da habe ich jetzt was zum Behirnen 🙂

        S 1 Reply Last reply Reply Quote 0
        • S
          skokarl @metaxa last edited by

          @metaxa
          es lohnt sich....glaub mir 😀

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by Homoran

            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?

            S 1 Reply Last reply Reply Quote 0
            • S
              skokarl @Homoran last edited by

              @Homoran

              die API ??, hab ich das richtig verstanden ?

              Hab ich doch in meinem vorletzten Beitrag hier verlinkt.

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @skokarl last edited by

                @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.

                S 1 Reply Last reply Reply Quote 0
                • S
                  skokarl @Homoran last edited by

                  @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.😬

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @skokarl last edited by

                    @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

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      skokarl @Homoran last edited by

                      @Homoran

                      gute Idee .... 👍

                      1 Reply Last reply Reply Quote 0
                      • metaxa
                        metaxa last edited by

                        @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

                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @metaxa last edited by

                          @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.

                          M 1 Reply Last reply Reply Quote 1
                          • M
                            Maj0r @Homoran last edited by Maj0r

                            @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);
                              }
                            });
                            
                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            505
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            adapter bug
                            12
                            28
                            4273
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo