Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] Echo Sprachausgabe prüfen und ggfs. wiederholen

    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

    [Gelöst] Echo Sprachausgabe prüfen und ggfs. wiederholen

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

      Hallo,
      manchmal kommt es ja vor, dass ein Echo Device eine Sprachausgabe, die per Speak oder ssml ausgelöst wurde, "verschluckt". Kann man diese Situation irgendwie erkennen? Wenn das möglich wäre, könnte man sich ja ein Script schreiben, dass dann einfach nochmal versucht, die Sprachausgabe zu machen.
      Hat jemand einenTipp?
      Danke und Gruß
      Alexi

      padrino 1 Reply Last reply Reply Quote 0
      • padrino
        padrino Most Active @Gaspode last edited by padrino

        @alexi
        Das Problem habe ich hier auch.
        Gefühlt passiert es häufiger, wenn der Adapter mehrere Wertänderungen (wie Sprachbefehle) innerhalb sehr kurzer Zeit verarbeiten muss - wie gesagt, gefühlt, einen Beweis habe ich (noch) nicht. 😌
        Bisher habe ich da auch noch nix umgesetzt, aber, wenn ich mich nicht irre, wird die History nicht aktualisiert, wenn der Echo nicht gesprochen hat.
        Das kannste evtl. mal beobachten und vielleicht damit arbeiten. 😊

        Gaspode 2 Replies Last reply Reply Quote 0
        • Gaspode
          Gaspode @padrino last edited by

          @padrino
          Danke für deine Antwort. Daraufhin habe ich jetzt ein wenig rumprobiert und zumindest beim Verwenden von Speak wird die History bei erfolgter Sprachausgabe aktualisiert. Schade, dass das nicht auch bei ssml der Fall ist, denn ich nutze im Moment ausschließlich ssml.
          Ich habe es jetzt auf die Schnelle auch nicht hinbekommen, einen Negativ-Test zu machen, d.h. bis jetzt ging beim Test jeder Speak Befehl durch (war ja klar) und die History wurde aktualisiert.
          Ich werde jatzt mal ein Script auf Speak umstellen und die History entsprechend überwachen. Mal sehen, ob dabei was rauskommt. Danke nochmal für den Hinweis auf die History.

          padrino 1 Reply Last reply Reply Quote 0
          • Gaspode
            Gaspode @padrino last edited by Gaspode

            @padrino
            Danke nochmal für den Hinweis auf die History. Mit speak klappt das damit tatsächlich, hier ein kleines Beispielscript zum Testen:

            let echoDeviceRoot = 'alexa2.0.Echo-Devices.';
            let echoSpeakStarted = [];
            let echoCheckTime = 6000;
            
            function echoSpeak(serialNumber, text) {
                setState(echoDeviceRoot+serialNumber+".Commands.speak", text);
                echoSpeakStarted[serialNumber] = true;
                setTimeout(function(serial, txt){
                    if(echoSpeakStarted[serial]) {
                        echoSpeakStarted[serial]=false;
                        setState(echoDeviceRoot+serial+".Commands.speak", txt);
                        log ("Sprachausgabe von "+serial+" wurde wiederholt.");
                    }
                    else {
                        log ("Sprachausgabe von "+serial+" war OK.");
                    }
                }, echoCheckTime, serialNumber, text);
            }
            
            on('alexa2.0.History.json', function (json) {
                let jsonObj = JSON.parse(json.state.val);
                if (jsonObj.summary=="") { 
                    echoSpeakStarted[jsonObj.serialNumber] = false;
                    log ("Sprachausgabe von "+jsonObj.serialNumber+" erfolgt. Keine Wiederholung nötig.");
                }
            });
            
            echoSpeak('XYXYXYXYXYXYXYXY', 'Test!');  // Seriennummer des Echo Devices und Text, der gesprochen werden soll. 
            

            Das Erkennen, ob eine Sprachausgabe erfolgt ist, geht bestimmt auch noch etwas selektiver, aber so klappt es auf jeden Fall schon mal.

            Wenn man die Funktion echoSpeak in mehreren Scripten verwenden möchte, könnte man die in ein global Script packen, dann müsste echoSpeakStarted aber als State implementiert werden.

            1 Reply Last reply Reply Quote 0
            • padrino
              padrino Most Active @Gaspode last edited by

              @alexi sagte in [Gelöst] Echo Sprachausgabe prüfen und ggfs. wiederholen:

              beim Verwenden von Speak wird die History bei erfolgter Sprachausgabe aktualisiert. Schade, dass das nicht auch bei ssml der Fall ist,

              Hm, da fällt mir ein, evtl. sollten wir da mal @apollon77 fragen, ob das an Amazon liegt, oder ob vielleicht der Adapter etwas verpeilt. 🤓

              apollon77 1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 @padrino last edited by

                @padrino der Adapter macht da nix bzw filtert nix. Scheinbar gilt das eine als hättest du „alexa sprich mir nach ....“ gesagt was ein Kommando ist und das ssml ist was anderes

                1 Reply Last reply Reply Quote 2
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                931
                Online

                31.9k
                Users

                80.1k
                Topics

                1.3m
                Posts

                3
                6
                311
                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