Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Alexa Sprachausgabe nicht starten, wenn .

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Alexa Sprachausgabe nicht starten, wenn .

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

      Hallo,

      gibt es über Blockly die Möglichkeit, eine Alexa Sprachausgabe nicht zu starten, wenn bereits eine Andere läuft?

      Hintergrund ist folgender:

      Ich lasse mir von Alexa sagen, wenn ein Fenster im Winter eine bestimmte Zeit offen ist.
      Dafür habe ich für jedes Fenster im Haus ein Blockly Skript erstellt.

      Wenn ich mehrere Fenster zeitgleich öffne, kommen auch die Meldungen von Alexa relativ zeitgleich.

      Hierbei wird dann die aktuelle Sprachausgabe mit der Nächsten gestoppt. Das ist ziemlich nervig.

      Kann man ein Blockly so gestalten, dass das Script vorher prüft, ob bereits eine andere Sprachausgabe läuft?

      • Wen ja, starte Sprachausgabe, wenn aktuelle beendet wurde
      • Wenn nein, starte Sprachausgabe sofort.

      Ist das möglich?
      Wenn ja, wie?

      1 Reply Last reply Reply Quote 0
      • -Alex- 0
        -Alex- 0 last edited by

        wenn Du verschiedene Scripte dafür nutzt, ist das nicht so einfach, da Du dann nicht den aktuellen Status abfragen kannst.
        Aber Du könntest über den Alexa Adapter unter History den Wert "CreationTime" nutzen und abfragen, ob dort eine Ausgabe innerhalb von einer bestimmten Zeit schon abgesetzt wurde. Wenn ja, dann mit der Sprachausgabe warten oder, wie Du meist, was besser ist, keine Sprachausgabe.
        oder du könntest eben die Scripte alle in eines packen und dann einfach den Hacken bei "steuern falls läuft" setzen. kannst ja mal probieren, ob das auch geht bei verschieden Scripten, habe ich noch nicht ausprobiert und ob das bei "speak" überhaupt geht. Probier einfach mal..

        VG

        StM47 1 Reply Last reply Reply Quote 0
        • StM47
          StM47 @-Alex- 0 last edited by

          @Alex-0

          Die Skripte alle in Eines zu packen würde nur bedingt zum Erfolg führen, weil ich Ja noch duzende andere Skripte am Laufen habe, welche bei der Sprachausgabe dazwischen funken könnten.

          Die Nutzung von CreationTime klingt hingegen sehr vielversprechend. Schaue ich mir heute Abend mal an.

          Danke für den Tip!

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

            So, habe mal etwas zusammengeschustert.

            Ich habe das Blockly erst mal nur ganz pauschal erstellt.

            Ich habe keine Ahnung, ob man die Komponenten so kombinieren kann und ob das Ganze funktioniert. Man kann das auch schlecht testen.

            Was meint ihr?

            Bildschirmfoto 2020-01-18 um 20.18.30.png

            Falls die aktuelle Zeit größer ist, als die CreationTime -1 , dann steuere irgend ein Objekt mit wahr.
            (oder starte die Sprachausgabe mit Alexa)

            Wenn die aktuelle Zeit nicht größer ist, als die CreationTime -1, dann starte ein Timeaut mit 30 Sek und steuere dann irgend ein Objekt mit wahr. (oder starte die Sprachausgabe mit Alexa)

            -Alex- 0 1 Reply Last reply Reply Quote 0
            • -Alex- 0
              -Alex- 0 @StM47 last edited by

              @StM47
              ich denke, der Wert ist viel zu klein.

              mach mal
              e131d85e-1ffa-40e4-bd67-9a66c2603952-image.png

              das wird in eine Zahl umgewandelt, müsstest ein Wert von > 1000 eingeben um mal als Ergebnis "false" zu bekommen.

              StM47 1 Reply Last reply Reply Quote 0
              • StM47
                StM47 @-Alex- 0 last edited by StM47

                @Alex-0

                Ich habe einen Datenpunkt erstellt und das Skript ein bisschen umgebaut und für den Test mit Intervall getriggert.

                Bildschirmfoto 2020-01-19 um 03.23.25.png

                Ist die aktuelle Zeit größer als der aktuelle Wert von creationTime, wird der DP auf true gesetzt.
                Ist die aktuelle Zeit kleiner als der aktuelle Wert von creationTime, wird der DP auf false gesetzt.

                Und es funktioniert. Hiermit kann ich jetzt weiter arbeiten.

                Ich danke dir für deine Hilfe.

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

                  Und es geht noch einfacher.
                  Manchmal denkt man einfach viel zu kompliziert.

                  Mit folgendem Skript setze meinen Datenpunkt "Abfrage Ansage aktiv" auf true, sobald eine Sprachausgabe über Alexa gestartet wurde. Dieser stellt sich nach 10 Sekunden automatisch wieder zurück auf false. Wenn längere Ansagen geplant sind, dann timeout dementsprechend anpassen.

                  Bildschirmfoto 2020-01-19 um 04.03.17.png

                  Jetzt muss ich in meinen anderen Skripten einfach nur noch den DP "Abfrage Ansage aktiv" abfragen.
                  Wenn dieser auf false steht, kann Alexa direkt losquatschen. Wenn auf true. dann die Ansage ebenfalls mit einem timeout verzögern.

                  Fertig!

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  571
                  Online

                  31.9k
                  Users

                  80.3k
                  Topics

                  1.3m
                  Posts

                  blockly
                  2
                  7
                  420
                  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