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.
-
@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); });
-
@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') {
-