NEWS
Telegram - Alexa Routine Triggern via Button
-
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); }); -
Routinen kann man nur "aktivieren" aber nicht auslösen, soweit ich weiß. Mit Playlisten kenne ich mich leider nicht aus.
-
Routinen kann man nur "aktivieren" aber nicht auslösen, soweit ich weiß. Mit Playlisten kenne ich mich leider nicht aus.
@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.
-
@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.
@LJSven
Das geht nicht, du mußt einfach alles rauswerfen was du nicht willst. Vereinfachtes Beispiel, nicht getestet und im Forum geschriebencallback: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); }); -
@LJSven
Das geht nicht, du mußt einfach alles rauswerfen was du nicht willst. Vereinfachtes Beispiel, nicht getestet und im Forum geschriebencallback: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); });@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 geschriebencallback: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') { -
@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 geschriebencallback: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') {
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
