Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. Skripten / Logik
  4. JavaScript
  5. Telegram - Alexa Routine Triggern via Button

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    151

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.4k

Telegram - Alexa Routine Triggern via Button

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
6 Beiträge 2 Kommentatoren 458 Aufrufe 2 Watching
  • Ä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.
  • L Offline
    L Offline
    LJSven
    schrieb am zuletzt editiert von LJSven
    #1

    Ich möchte mir gern ein Script bauen, was es ermöglicht via "inline_keyboard" verschiedene Routinen (in meinem Fall Playlisten) aufzurufen. Bei meinem jetzigen Script ist das Problem, daß auch alle anderen Button Aktion mit diesem Script verknüpft werden ich diverse Warnings im Log habe. Wie kann ich das Script umbauen, daß es nur auf diese Funktionen reagiert

    // DEVICE definieren (ID)
    var echodevice = "alexa2.0.Echo-Devices.51944f43bf8245b5702f";
    
    //Routine definieren - callback_date ist ID der Routine
    var Playlists = [
      [{text: "Wo ist Kartoffelbrei?", callback_data: "5d32-4f5d-935a-b0530a5ef300"}],
      [{text: "Conni kommt in den Kindergarten", callback_data: "f7a9-41d8-9481-f8a2dd6a89e9"}],
    //[{text: "Conni kommt in den Kindergarten", callback_data: "f7a9-41d8-9481-f8a2dd6a89e9"}],
      [{text: "Die allerschönensten Kinderlieder", callback_data: "d9a2-4627-9b25-94699617e187"}]
      ];
    //Test
    sendTo('telegram', {
      user: "Sven",
      text: "Was möchtest du im Wohnzimmer abspielen?",
      reply_markup: {
        inline_keyboard: Playlists,
        resize_keyboard:   false, 
        one_time_keyboard: true
      }
    });
    on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) {
        command = obj.state.val.substring(obj.state.val.indexOf(']')+1);
        var completeID = echodevice+".Routines."+command;
        setState(completeID, true);
    });
    
    1 Antwort Letzte Antwort
    0
    • T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von
      #2

      Routinen kann man nur "aktivieren" aber nicht auslösen, soweit ich weiß. Mit Playlisten kenne ich mich leider nicht aus.

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      L 1 Antwort Letzte Antwort
      0
      • T ticaki

        Routinen kann man nur "aktivieren" aber nicht auslösen, soweit ich weiß. Mit Playlisten kenne ich mich leider nicht aus.

        L Offline
        L Offline
        LJSven
        schrieb am zuletzt editiert von
        #3

        @ticaki sagte in Telegram - Alexa Routine Triggern via Button:

        Routinen kann man nur "aktivieren" aber nicht auslösen, soweit ich weiß. Mit Playlisten kenne ich mich leider nicht aus.

        @ticaki Auslösen ist auch okay - technisch funktioniert es ja - ich brauche nur eine Abfrage, daß dieser Part

        on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) {
        

        nur ausgelöst wird, wenn auch dieses Menü aktiv oder offen ist.

        T 1 Antwort Letzte Antwort
        0
        • L LJSven

          @ticaki sagte in Telegram - Alexa Routine Triggern via Button:

          Routinen kann man nur "aktivieren" aber nicht auslösen, soweit ich weiß. Mit Playlisten kenne ich mich leider nicht aus.

          @ticaki Auslösen ist auch okay - technisch funktioniert es ja - ich brauche nur eine Abfrage, daß dieser Part

          on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) {
          

          nur ausgelöst wird, wenn auch dieses Menü aktiv oder offen ist.

          T Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von
          #4

          @LJSven
          Das geht nicht, du mußt einfach alles rauswerfen was du nicht willst. Vereinfachtes Beispiel, nicht getestet und im Forum geschrieben

          callback:data: "§$playlist§$meine tolle playliste"
          
          on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) {
              command = obj.state.val.substring(obj.state.val.indexOf(']')+1);
              command = command.split('§$');
              if (!Array.isArray(command) || command.length < 2 || command[0] != 'playlist') return; // raus aus der funktion
              command = command[1]
              var completeID = echodevice+".Routines."+command;
              setState(completeID, true);
          });
          

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          L 1 Antwort Letzte Antwort
          0
          • T ticaki

            @LJSven
            Das geht nicht, du mußt einfach alles rauswerfen was du nicht willst. Vereinfachtes Beispiel, nicht getestet und im Forum geschrieben

            callback:data: "§$playlist§$meine tolle playliste"
            
            on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) {
                command = obj.state.val.substring(obj.state.val.indexOf(']')+1);
                command = command.split('§$');
                if (!Array.isArray(command) || command.length < 2 || command[0] != 'playlist') return; // raus aus der funktion
                command = command[1]
                var completeID = echodevice+".Routines."+command;
                setState(completeID, true);
            });
            
            L Offline
            L Offline
            LJSven
            schrieb am zuletzt editiert von
            #5

            @ticaki sagte in Telegram - Alexa Routine Triggern via Button:

            @LJSven
            Das geht nicht, du mußt einfach alles rauswerfen was du nicht willst. Vereinfachtes Beispiel, nicht getestet und im Forum geschrieben

            callback:data: "§$playlist§$meine tolle playliste"
            
            on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) {
                command = obj.state.val.substring(obj.state.val.indexOf(']')+1);
                command = command.split('§$');
                if (!Array.isArray(command) || command.length < 2 || command[0] != 'playlist') return; // raus aus der funktion
                command = command[1]
                var completeID = echodevice+".Routines."+command;
                setState(completeID, true);
            });
            

            Fast - diese Zeil muss wie folgt sein

            if (!Array.isArray(command) || command.length < 2 || command[1] != 'playlist') {
                    
            
            T 1 Antwort Letzte Antwort
            0
            • L LJSven

              @ticaki sagte in Telegram - Alexa Routine Triggern via Button:

              @LJSven
              Das geht nicht, du mußt einfach alles rauswerfen was du nicht willst. Vereinfachtes Beispiel, nicht getestet und im Forum geschrieben

              callback:data: "§$playlist§$meine tolle playliste"
              
              on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) {
                  command = obj.state.val.substring(obj.state.val.indexOf(']')+1);
                  command = command.split('§$');
                  if (!Array.isArray(command) || command.length < 2 || command[0] != 'playlist') return; // raus aus der funktion
                  command = command[1]
                  var completeID = echodevice+".Routines."+command;
                  setState(completeID, true);
              });
              

              Fast - diese Zeil muss wie folgt sein

              if (!Array.isArray(command) || command.length < 2 || command[1] != 'playlist') {
                      
              
              T Nicht stören
              T Nicht stören
              ticaki
              schrieb am zuletzt editiert von
              #6

              @LJSven
              dann muß

              command = command[1]
              // so sein
              command = command[2]
              

              war aber dicht dran :grin:

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              723

              Online

              32.5k

              Benutzer

              81.7k

              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