Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [gelöst] Auf Alexa Routinen in Js "allgemein" reagieren

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    10
    1
    239

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.8k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    770

[gelöst] Auf Alexa Routinen in Js "allgemein" reagieren

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
33 Beiträge 4 Kommentatoren 1.2k Aufrufe 4 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von Ben1983
    #1

    Hallo,

    ich habe einige Routinen, auf welche ich gerne in einem JS Skript entsprechend reagieren möchte.

    Jetzt ist die Frage, ob es eine Möglichkeit gibt, nicht direkt die einzelnen Speak variablen der Geräte verlinkenm zu müssen, sondern zu erkennen, von welchem Gerät die Routine gekommen ist und auch genau dort wieder die sprachausgabe aus zu geben.

    GaspodeG 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo,

      ich habe einige Routinen, auf welche ich gerne in einem JS Skript entsprechend reagieren möchte.

      Jetzt ist die Frage, ob es eine Möglichkeit gibt, nicht direkt die einzelnen Speak variablen der Geräte verlinkenm zu müssen, sondern zu erkennen, von welchem Gerät die Routine gekommen ist und auch genau dort wieder die sprachausgabe aus zu geben.

      GaspodeG Offline
      GaspodeG Offline
      Gaspode
      schrieb am zuletzt editiert von
      #2

      @ben1983
      Kleines Beispiel:

      on('alexa2.0.History.json', function (json) {
          let jsonObj  = JSON.parse(json.state.val); 
          let summary  = jsonObj.summary;
          let deviceID = jsonObj.serialNumber;
      
          setState("alexa2.0.Echo-Devices." + deviceID + ".Commands.speak", "Du hast gerade " + summary + "zu mir gesagt.");
      });
      
      
      
      Ben1983B 2 Antworten Letzte Antwort
      0
      • GaspodeG Gaspode

        @ben1983
        Kleines Beispiel:

        on('alexa2.0.History.json', function (json) {
            let jsonObj  = JSON.parse(json.state.val); 
            let summary  = jsonObj.summary;
            let deviceID = jsonObj.serialNumber;
        
            setState("alexa2.0.Echo-Devices." + deviceID + ".Commands.speak", "Du hast gerade " + summary + "zu mir gesagt.");
        });
        
        
        
        Ben1983B Offline
        Ben1983B Offline
        Ben1983
        schrieb am zuletzt editiert von
        #3

        @alexi Danke versuche ich mal.

        1 Antwort Letzte Antwort
        0
        • GaspodeG Gaspode

          @ben1983
          Kleines Beispiel:

          on('alexa2.0.History.json', function (json) {
              let jsonObj  = JSON.parse(json.state.val); 
              let summary  = jsonObj.summary;
              let deviceID = jsonObj.serialNumber;
          
              setState("alexa2.0.Echo-Devices." + deviceID + ".Commands.speak", "Du hast gerade " + summary + "zu mir gesagt.");
          });
          
          
          
          Ben1983B Offline
          Ben1983B Offline
          Ben1983
          schrieb am zuletzt editiert von
          #4

          @alexi Kann man auch direkt routinen abfragen?

          GaspodeG 1 Antwort Letzte Antwort
          0
          • Ben1983B Ben1983

            @alexi Kann man auch direkt routinen abfragen?

            GaspodeG Offline
            GaspodeG Offline
            Gaspode
            schrieb am zuletzt editiert von
            #5

            @ben1983 said in Auf Alexa Routinen in Js "allgemein" reagieren:

            Kann man auch direkt routinen abfragen?

            Du kannst mit einfachem Textvergleich den gesprochenen Text vergleichen, so mache ich das zumindest.

            on('alexa2.0.History.json', function (json) {
                let jsonObj  = JSON.parse(json.state.val); 
                let summary  = jsonObj.summary;
                let deviceID = jsonObj.serialNumber;
            
                if (summary == "das ist ein test") {
                    setState("alexa2.0.Echo-Devices." + deviceID + ".Commands.speak", "Du hast gerade " + summary + "zu mir gesagt.");
                }
            });
            

            Würde also auf die Routine "das ist ein test" reagieren.
            Mit

            log (summary);
            

            kannst du testen, was im Script bei einer Spracheingabe ankommt.

            Ben1983B 2 Antworten Letzte Antwort
            0
            • GaspodeG Gaspode

              @ben1983 said in Auf Alexa Routinen in Js "allgemein" reagieren:

              Kann man auch direkt routinen abfragen?

              Du kannst mit einfachem Textvergleich den gesprochenen Text vergleichen, so mache ich das zumindest.

              on('alexa2.0.History.json', function (json) {
                  let jsonObj  = JSON.parse(json.state.val); 
                  let summary  = jsonObj.summary;
                  let deviceID = jsonObj.serialNumber;
              
                  if (summary == "das ist ein test") {
                      setState("alexa2.0.Echo-Devices." + deviceID + ".Commands.speak", "Du hast gerade " + summary + "zu mir gesagt.");
                  }
              });
              

              Würde also auf die Routine "das ist ein test" reagieren.
              Mit

              log (summary);
              

              kannst du testen, was im Script bei einer Spracheingabe ankommt.

              Ben1983B Offline
              Ben1983B Offline
              Ben1983
              schrieb am zuletzt editiert von
              #6

              @alexi OK. Dachte man könnte vielleicht direkt auf Routinen IDS abfragen oder so, denn befinden Text sagt Alexa vielleicht erst von Dich aus sowas wie „das weiß ich nicht“ oder so.

              1 Antwort Letzte Antwort
              0
              • GaspodeG Gaspode

                @ben1983 said in Auf Alexa Routinen in Js "allgemein" reagieren:

                Kann man auch direkt routinen abfragen?

                Du kannst mit einfachem Textvergleich den gesprochenen Text vergleichen, so mache ich das zumindest.

                on('alexa2.0.History.json', function (json) {
                    let jsonObj  = JSON.parse(json.state.val); 
                    let summary  = jsonObj.summary;
                    let deviceID = jsonObj.serialNumber;
                
                    if (summary == "das ist ein test") {
                        setState("alexa2.0.Echo-Devices." + deviceID + ".Commands.speak", "Du hast gerade " + summary + "zu mir gesagt.");
                    }
                });
                

                Würde also auf die Routine "das ist ein test" reagieren.
                Mit

                log (summary);
                

                kannst du testen, was im Script bei einer Spracheingabe ankommt.

                Ben1983B Offline
                Ben1983B Offline
                Ben1983
                schrieb am zuletzt editiert von Ben1983
                #7

                @alexi Direkt in Node Red kann man ein virtuelles Gerät von Alexa anlegen.
                Dem Kann ich über die Routinen dann bspw. jeweils eine id senden. (Habe es mit einer Virtuellen Lampe gelöst, der ich 0-100% vorgebe.
                Somit wären die Routinen völlig losgelöst vom Text in der Sofware handlebar.

                Geht sowas bei IO Broker auch?

                Am besten wäre, wenn man in der Alexa Schnittstelle für die Routinen eine ID bekommt und welches Gerät diese verursacht hat.
                Alternativ eben ein Virtuelles Gerät, aber auch hiermüsste man bestenfalls wissen, von wem das kommt,
                denn stößt man bspw. routinen über die App an, dann steht dies leider nicht in der History. und eben auch kein Text.

                GaspodeG 1 Antwort Letzte Antwort
                0
                • Ben1983B Ben1983

                  @alexi Direkt in Node Red kann man ein virtuelles Gerät von Alexa anlegen.
                  Dem Kann ich über die Routinen dann bspw. jeweils eine id senden. (Habe es mit einer Virtuellen Lampe gelöst, der ich 0-100% vorgebe.
                  Somit wären die Routinen völlig losgelöst vom Text in der Sofware handlebar.

                  Geht sowas bei IO Broker auch?

                  Am besten wäre, wenn man in der Alexa Schnittstelle für die Routinen eine ID bekommt und welches Gerät diese verursacht hat.
                  Alternativ eben ein Virtuelles Gerät, aber auch hiermüsste man bestenfalls wissen, von wem das kommt,
                  denn stößt man bspw. routinen über die App an, dann steht dies leider nicht in der History. und eben auch kein Text.

                  GaspodeG Offline
                  GaspodeG Offline
                  Gaspode
                  schrieb am zuletzt editiert von
                  #8

                  @ben1983
                  Ich verstehe ehrlich nicht so recht, was du vorhast ...
                  Ich nutze das so:

                  • Routine mit Trigger Sprache in der Alexa App anlegen
                    Diese Routine kann dann auch schon Aktionen (ohne ioBroker) erledigen, muss sie aber nicht.
                  • Nach obigem Beispiel den Text des Sprachtriggers abfragen und dort beliebige Aktionen und Sprachausgaben machen
                    Dabei kann man jetzt abhängig vom Gerätename (jsonObj.name) z.B. die Heizung raufregeln und abhängig von die aktuelle Raumtemperatur auf dem Echo mit der ID jsonObj.serialNumber sagen lassen.

                  Evtl. kannst du mal ein Beispiel geben, was du konkret vorhast bzw. schon umgesetzt hast.

                  Ben1983B 1 Antwort Letzte Antwort
                  0
                  • GaspodeG Gaspode

                    @ben1983
                    Ich verstehe ehrlich nicht so recht, was du vorhast ...
                    Ich nutze das so:

                    • Routine mit Trigger Sprache in der Alexa App anlegen
                      Diese Routine kann dann auch schon Aktionen (ohne ioBroker) erledigen, muss sie aber nicht.
                    • Nach obigem Beispiel den Text des Sprachtriggers abfragen und dort beliebige Aktionen und Sprachausgaben machen
                      Dabei kann man jetzt abhängig vom Gerätename (jsonObj.name) z.B. die Heizung raufregeln und abhängig von die aktuelle Raumtemperatur auf dem Echo mit der ID jsonObj.serialNumber sagen lassen.

                    Evtl. kannst du mal ein Beispiel geben, was du konkret vorhast bzw. schon umgesetzt hast.

                    Ben1983B Offline
                    Ben1983B Offline
                    Ben1983
                    schrieb am zuletzt editiert von
                    #9

                    @alexi Ja da hast Du recht.
                    Wenn ich allerdings in IO Broker den Text abfrage, dann kann ich diesen in der Alexa App nie mehr ändern.
                    Vielleicht passt mir ein Wort nicht, oder man möchte es doch mal mit einem anderen Satz erledigen.

                    Wenn man hier einfach eine Routinen ID in IO broker abfragen könnte, dann wäre man freier und müsste nicht den Text genauso, wie er in der routine ist abfragen.

                    Das ist meine intention.

                    A 1 Antwort Letzte Antwort
                    0
                    • Ben1983B Ben1983

                      @alexi Ja da hast Du recht.
                      Wenn ich allerdings in IO Broker den Text abfrage, dann kann ich diesen in der Alexa App nie mehr ändern.
                      Vielleicht passt mir ein Wort nicht, oder man möchte es doch mal mit einem anderen Satz erledigen.

                      Wenn man hier einfach eine Routinen ID in IO broker abfragen könnte, dann wäre man freier und müsste nicht den Text genauso, wie er in der routine ist abfragen.

                      Das ist meine intention.

                      A Offline
                      A Offline
                      Ahnungsbefreit
                      schrieb am zuletzt editiert von
                      #10

                      @ben1983 Du kannst auch auf Routinen triggern. Jede Routine hat eine fixe ID und aus der Objekt ID des Triggers kannst Du Dir die Serial Number des Alexa-Devices holen. Ich nutze das in Blockly, lege "Dummy" Routinen in Alexa an und scripte dann die Ausführung.

                      Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

                      GaspodeG 1 Antwort Letzte Antwort
                      0
                      • A Ahnungsbefreit

                        @ben1983 Du kannst auch auf Routinen triggern. Jede Routine hat eine fixe ID und aus der Objekt ID des Triggers kannst Du Dir die Serial Number des Alexa-Devices holen. Ich nutze das in Blockly, lege "Dummy" Routinen in Alexa an und scripte dann die Ausführung.

                        GaspodeG Offline
                        GaspodeG Offline
                        Gaspode
                        schrieb am zuletzt editiert von Gaspode
                        #11

                        @ahnungsbefreit
                        Generisch würde das in JS so gehen:

                        on(/alexa2.0.Echo-Devices.*.Routines.*/, function (obj) {
                            log("--->"+obj.id);
                        });
                        

                        Aus der ID kann man dann die Serial Number gewinnen und die kryptische Routinen-ID.
                        Die kann man natürlich auswerten, aber dann müsste man ja mit der ID jeder Routine, die man behandeln will, vergleichen.

                        Oder legst du dir für jede Routine und Gerät einen eigenen Trigger an?

                        A 1 Antwort Letzte Antwort
                        0
                        • GaspodeG Gaspode

                          @ahnungsbefreit
                          Generisch würde das in JS so gehen:

                          on(/alexa2.0.Echo-Devices.*.Routines.*/, function (obj) {
                              log("--->"+obj.id);
                          });
                          

                          Aus der ID kann man dann die Serial Number gewinnen und die kryptische Routinen-ID.
                          Die kann man natürlich auswerten, aber dann müsste man ja mit der ID jeder Routine, die man behandeln will, vergleichen.

                          Oder legst du dir für jede Routine und Gerät einen eigenen Trigger an?

                          A Offline
                          A Offline
                          Ahnungsbefreit
                          schrieb am zuletzt editiert von
                          #12

                          @alexi die Routine hat auf jedem Device die gleiche ID, deswegen ersetzt Du den zweiten Stern gegen die ID der Routine, auf die Du triggern willst

                          Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

                          GaspodeG Ben1983B 2 Antworten Letzte Antwort
                          0
                          • A Ahnungsbefreit

                            @alexi die Routine hat auf jedem Device die gleiche ID, deswegen ersetzt Du den zweiten Stern gegen die ID der Routine, auf die Du triggern willst

                            GaspodeG Offline
                            GaspodeG Offline
                            Gaspode
                            schrieb am zuletzt editiert von
                            #13

                            @ahnungsbefreit
                            Ja, das würde gehen. Mir persönlich ist aber der Weg über die History lieber, da muss ich mich nicht mit den kryptischen Routine-Namen rumschlagen. In meinem Fall hätte ich außerdem etwa 70 Trigger, die ich anlegen müsste. Da ist mir der Textvergleich innehalb des Registry Triggers sympatischer.
                            Aber evtl. hat @Ben1983 ja damit eine Lösung, die für ihn passt.

                            A 1 Antwort Letzte Antwort
                            0
                            • GaspodeG Gaspode

                              @ahnungsbefreit
                              Ja, das würde gehen. Mir persönlich ist aber der Weg über die History lieber, da muss ich mich nicht mit den kryptischen Routine-Namen rumschlagen. In meinem Fall hätte ich außerdem etwa 70 Trigger, die ich anlegen müsste. Da ist mir der Textvergleich innehalb des Registry Triggers sympatischer.
                              Aber evtl. hat @Ben1983 ja damit eine Lösung, die für ihn passt.

                              A Offline
                              A Offline
                              Ahnungsbefreit
                              schrieb am zuletzt editiert von
                              #14

                              @alexi ich habe auch erst über den Text-Vergleich mit History gearbeitet aber bei mir zumindest hat das nicht immer funktioniert, manchmal wurde in der History das Device erst zu spät aktualisiert und dann kommt die Antwort am falschen Device raus. Ich meine mich übrigens zu erinnern, dass auch der Entwickler des Alexa2 Adapters den Weg über Routinen empfohlen hat und von History abrät. Aber wenn es funktioniert, warum nicht?

                              Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

                              Ben1983B 1 Antwort Letzte Antwort
                              0
                              • GaspodeG Offline
                                GaspodeG Offline
                                Gaspode
                                schrieb am zuletzt editiert von
                                #15

                                @ahnungsbefreit said in Auf Alexa Routinen in Js "allgemein" reagieren:

                                History das Device erst zu spät aktualisiert und dann kommt die Antwort am falschen Device raus.

                                Hast du da die States history.summary und history.serialNumber ausgewertet? Ich nehme ja den state history.json, der beides (und zusätzlich noch den Device-Namen) beinhaltet. Hatte noch nie den Fall, dass im Trigger ein Attribut nicht aktuell war.

                                A 1 Antwort Letzte Antwort
                                0
                                • GaspodeG Gaspode

                                  @ahnungsbefreit said in Auf Alexa Routinen in Js "allgemein" reagieren:

                                  History das Device erst zu spät aktualisiert und dann kommt die Antwort am falschen Device raus.

                                  Hast du da die States history.summary und history.serialNumber ausgewertet? Ich nehme ja den state history.json, der beides (und zusätzlich noch den Device-Namen) beinhaltet. Hatte noch nie den Fall, dass im Trigger ein Attribut nicht aktuell war.

                                  A Offline
                                  A Offline
                                  Ahnungsbefreit
                                  schrieb am zuletzt editiert von
                                  #16

                                  @alexi Ja, vielleicht lag's daran.

                                  Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

                                  1 Antwort Letzte Antwort
                                  0
                                  • A Ahnungsbefreit

                                    @alexi die Routine hat auf jedem Device die gleiche ID, deswegen ersetzt Du den zweiten Stern gegen die ID der Routine, auf die Du triggern willst

                                    Ben1983B Offline
                                    Ben1983B Offline
                                    Ben1983
                                    schrieb am zuletzt editiert von
                                    #17

                                    @ahnungsbefreit ich werde es mal die Tage versuchen.
                                    Gibts denn auch noch ne Möglichkeit Text auf einem Mobilen Gerät wieder geben zu können?
                                    Also bspw. Handy Alexa App. Die Stadt ja nicht als device im iobroker

                                    A 1 Antwort Letzte Antwort
                                    0
                                    • A Ahnungsbefreit

                                      @alexi ich habe auch erst über den Text-Vergleich mit History gearbeitet aber bei mir zumindest hat das nicht immer funktioniert, manchmal wurde in der History das Device erst zu spät aktualisiert und dann kommt die Antwort am falschen Device raus. Ich meine mich übrigens zu erinnern, dass auch der Entwickler des Alexa2 Adapters den Weg über Routinen empfohlen hat und von History abrät. Aber wenn es funktioniert, warum nicht?

                                      Ben1983B Offline
                                      Ben1983B Offline
                                      Ben1983
                                      schrieb am zuletzt editiert von
                                      #18

                                      @ahnungsbefreit bekommt Man aus dem verlinkten Objekt nicht das Objekt der Routine?
                                      Wie bekommt man nun das Device raus?

                                      A GaspodeG 2 Antworten Letzte Antwort
                                      0
                                      • Ben1983B Ben1983

                                        @ahnungsbefreit ich werde es mal die Tage versuchen.
                                        Gibts denn auch noch ne Möglichkeit Text auf einem Mobilen Gerät wieder geben zu können?
                                        Also bspw. Handy Alexa App. Die Stadt ja nicht als device im iobroker

                                        A Offline
                                        A Offline
                                        Ahnungsbefreit
                                        schrieb am zuletzt editiert von
                                        #19

                                        @ben1983 Nur die Devices, die Du auch in den Objekten siehst.

                                        Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

                                        1 Antwort Letzte Antwort
                                        0
                                        • Ben1983B Ben1983

                                          @ahnungsbefreit bekommt Man aus dem verlinkten Objekt nicht das Objekt der Routine?
                                          Wie bekommt man nun das Device raus?

                                          A Offline
                                          A Offline
                                          Ahnungsbefreit
                                          schrieb am zuletzt editiert von
                                          #20

                                          @ben1983 sagte: Wie bekommt man nun das Device raus?

                                          Wenn Du auf eine bestimmte Routine triggerst, dann sieht die Objekt ID so aus:

                                          alexa2.0.Echo-Devices.<deviceSerNo>.Routines.<RoutineID>
                                          

                                          Wenn Du diese Liste auseinandernimmst, kannst Du daraus die OID für die Ausgabe ermitteln. In Blockly sieht das dann z.B. so aus:

                                          65e9541e-a2f1-4a34-a1f4-e255df3decc9-image.png

                                          Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

                                          1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          308

                                          Online

                                          32.9k

                                          Benutzer

                                          83.0k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe