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

                          465
                          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