¿Puedo configurar una receta IFTTT para que solo se ejecute en un momento específico?
15
Estoy usando una pequeña receta IFTTT que responde automáticamente a los mensajes de texto que recibo a través de Google Voice. Este , para ser precisos.
Solo necesito que se ejecute cuando estoy en el trabajo, así que lo he encendido y apagado manualmente todos los días según sea necesario.
¿Hay alguna manera de hacer que la receta esté activa solo en los horarios establecidos? ¿Por ejemplo, entre las 9 a.m. y las 5 p.m. de lunes a viernes?
Al principio pensé que el canal de fecha y hora sería útil, pero no parece que haya una manera de usarlo para activar recetas existentes o encadenar recetas juntas.
Hice algunas búsquedas en Internet y encontré esta publicación en r / IFTTT haciendo la misma pregunta y sin recibir respuestas.
No lo parece. Tienen la mitad desencadenante de la solución con el canal Fecha y hora . Puede configurar acciones para que se activen en determinados días de la semana en determinados momentos. Así que imagine una receta para encender su receta de Google Voice a las 9 a.m. y otra para apagarla a las 5 p.m.
Sin embargo, el canal IFTTT no tiene acciones para hacer algo como activar o desactivar una receta. Puede considerar contactarlos para preguntarles si pueden agregar estas funciones. Supongo que lo consideraron y pensaron que nadie lo usaría o que sería abusado de alguna manera.
Hay una manera de hacerlo, sin embargo, puede ser un poco complicado y requiere un servidor web Unix con php 5, así que ten cuidado.
Paso 1
Lo primero que debe hacer es agregar el canal del creador. Lo hace de la misma manera que agregaría cualquier otro canal, haciendo clic en "canales" en la parte superior de la página y buscándolo, luego haciendo clic en él y presionando el botón "agregar canal".
Paso 2
Crea un documento php en blanco en tu webhost. Realmente no importa dónde, siempre que pueda acceder con un navegador.
Paso 3
Lo que haces ahora es hacer una receta donde tu gatillo active el canal del creador. Una vez que haya configurado su activador, simplemente haga clic en el canal del creador y luego en "Hacer una solicitud web". Luego escriba la URL web del documento que hicimos en el paso 2 en el campo URL. Cambie el método a GET y deje los otros campos en blanco.
Etapa 4
Ahora haga una receta que se active por una solicitud web. Haga que el nombre del evento sea lo que quiera, siempre que lo recuerde. Haga el "eso" de la receta lo que quiera que haga.
Paso 5
Ahora, agregamos código en ese documento PHP que creamos en el paso 2. Agregue este código, cambiando el tiempo permitido (actualmente 6am), el pase, la zona horaria y la URL donde cambiará la "clave de ejemplo" a su clave (que se encuentra aquí) y {{event}} al evento que nombró en el paso 4.
Si no tiene un servidor web, puede probar un servicio como hook.io
jamesmstone
0
¡No es mío, pero esto funciona muy bien para mí! Vaya a https://platform.ifttt.com/maker y cree un applet y úselo en la sección de código de filtro. El * .skip () es importante para configurar cancelar la acción después del desencadenante. PD no es un codificador!
// Change startTime and stopTime to set the time range when you want
// your service's action (the 'That') to happen:
//
var startTime = moment('03:00 pm', "HH:mm a");
var stopTime = moment('06:00 pm', "HH:mm a");
//
// startTime is the first time when the action can happen
// stopTime is the last time the action can happen... until time
// reaches the next startTime.
//
// Notes:
// - startTime can be later than stopTime. For example, startTime
// can be 10:00pm and stopTime 06:00am. This means actions can
// happen from 10pm of one day until 6am of the next day but
// not between 6am and 10pm of either day.
//
// - startTime cannot be the same as stopTime
//
// - 'Skip' messages are written when the service's action does not
// happen, such as after the stopTime and before the next
// start time.
//
// - If you want to use this code with a service other than
// Gmail.sendYourselfAnEmail, you must change the lines that
// reference Gmail.sendYourselfAnEmail.skip to the skip method
// for your service.
//
// --------------------------
//
// The code converts everything to minutes for comparision purposes
//
var startTimeMinutes = startTime.minutes() + startTime.hours() * 60;
var stopTimeMinutes = stopTime.minutes() + stopTime.hours() * 60;
var triggerTimeMinutes = Meta.triggerTime.minutes() + Meta.triggerTime.hours()* 60;
//
// StartTime = stopTime not allowed.
//
// Set some defaults...
//
var doThat = new Boolean(false);
var whatsup = "'That' has been skipped";
//
// If start time is less than stop time, then the range is assumed to
// be a continuous period during a single day. E.g., 9am-6pm.
//
if ((startTimeMinutes<stopTimeMinutes)
&& (triggerTimeMinutes >= startTimeMinutes
&& triggerTimeMinutes <= stopTimeMinutes))
{
doThat = Boolean(true);
whatsup = "range within a single day";
}
//
// If start time > stop time, then the range is assumed to span
// midnight (12am). E.g. 10pm-6am. This range covers parts of two
// days.
//
else if ((startTimeMinutes>stopTimeMinutes)
&& (triggerTimeMinutes > startTimeMinutes
|| triggerTimeMinutes < stopTimeMinutes))
{
doThat = Boolean(true);
whatsup = "range spans midnight";
}
//
// Out of range...
//
if (doThat == false)
{
AndroidMessages.sendAMessage.skip("Event happened outside time range (" + whatsup +") - time of trigger was "+Meta.triggerTime.format('LT')+", but start time to allow the action is "+ startTime.format('LT') + " and stop time is "+ stopTime.format('LT') + " Debug info: minutes are "+triggerTimeMinutes + " " + startTimeMinutes + " " + stopTimeMinutes);
}
//
// The following code can be uncommented for debugging. It writes
// an entry to the activity log instead of performing the
// action.
//
// else
// {
// IfNotifications.sendNotification.setMessage("Action can happen (" + whatsup +") - time of trigger was "+Meta.triggerTime.format('LT')+", start time is "+ startTime.format('LT') + ", and stop time is "+ stopTime.format('LT') + ". Debug info: Minutes are trigger="+triggerTimeMinutes + ", start=" + startTimeMinutes + ", and stop=" + stopTimeMinutes);
// }
// }
Otra forma de lograrlo, sin recurrir a la creación de un applet manual, es usar Stringify.com como intermediario.
Le permite incluir un nodo "solo si" en sus flujos (Stringify flow = receta IFTTT). Si tienes la suerte, Stringify ya admite lo que quieres activar, pero solo hay un puñado de "cosas" que admiten, en comparación con la gran cantidad de IFTTT.
Puede establecer recetas de "entrada" en IFTTT que activarán un activador de Stringify, y una receta de "salida" que se activará a partir de una acción de Stringify.
Por ejemplo:
La Receta IFTTT # 1 activa el Flujo # 1 cuando salgo de mi wifi de casa
Stringify Flow # 1 solo se ejecuta cuando es de noche y activa la Receta # 2
¡No es mío, pero esto funciona muy bien para mí! Vaya a https://platform.ifttt.com/maker y cree un applet y úselo en la sección de código de filtro. El * .skip () es importante para configurar cancelar la acción después del desencadenante. PD no es un codificador!
// Change startTime and stopTime to set the time range when you want // your service's action (the 'That') to happen: // var startTime = moment('03:00 pm', "HH:mm a"); var stopTime = moment('06:00 pm', "HH:mm a"); // // startTime is the first time when the action can happen // stopTime is the last time the action can happen... until time // reaches the next startTime. // // Notes: // - startTime can be later than stopTime. For example, startTime // can be 10:00pm and stopTime 06:00am. This means actions can // happen from 10pm of one day until 6am of the next day but // not between 6am and 10pm of either day. // // - startTime cannot be the same as stopTime // // - 'Skip' messages are written when the service's action does not // happen, such as after the stopTime and before the next // start time. // // - If you want to use this code with a service other than // Gmail.sendYourselfAnEmail, you must change the lines that // reference Gmail.sendYourselfAnEmail.skip to the skip method // for your service. // // -------------------------- // // The code converts everything to minutes for comparision purposes // var startTimeMinutes = startTime.minutes() + startTime.hours() * 60; var stopTimeMinutes = stopTime.minutes() + stopTime.hours() * 60; var triggerTimeMinutes = Meta.triggerTime.minutes() + Meta.triggerTime.hours()* 60; // // StartTime = stopTime not allowed. // // Set some defaults... // var doThat = new Boolean(false); var whatsup = "'That' has been skipped"; // // If start time is less than stop time, then the range is assumed to // be a continuous period during a single day. E.g., 9am-6pm. // if ((startTimeMinutes<stopTimeMinutes) && (triggerTimeMinutes >= startTimeMinutes && triggerTimeMinutes <= stopTimeMinutes)) { doThat = Boolean(true); whatsup = "range within a single day"; } // // If start time > stop time, then the range is assumed to span // midnight (12am). E.g. 10pm-6am. This range covers parts of two // days. // else if ((startTimeMinutes>stopTimeMinutes) && (triggerTimeMinutes > startTimeMinutes || triggerTimeMinutes < stopTimeMinutes)) { doThat = Boolean(true); whatsup = "range spans midnight"; } // // Out of range... // if (doThat == false) {
AndroidMessages.sendAMessage.skip("Event happened outside time range (" + whatsup +") - time of trigger was "+Meta.triggerTime.format('LT')+", but start time to allow the action is "+ startTime.format('LT') + " and stop time is "+ stopTime.format('LT') + " Debug info: minutes are "+triggerTimeMinutes + " " + startTimeMinutes + " " + stopTimeMinutes); } // // The following code can be uncommented for debugging. It writes // an entry to the activity log instead of performing the // action. // // else // { // IfNotifications.sendNotification.setMessage("Action can happen (" + whatsup +") - time of trigger was "+Meta.triggerTime.format('LT')+", start time is "+ startTime.format('LT') + ", and stop time is "+ stopTime.format('LT') + ". Debug info: Minutes are trigger="+triggerTimeMinutes + ", start=" + startTimeMinutes + ", and stop=" + stopTimeMinutes); // } // }
fuente
Otra forma de lograrlo, sin recurrir a la creación de un applet manual, es usar Stringify.com como intermediario.
Le permite incluir un nodo "solo si" en sus flujos (Stringify flow = receta IFTTT). Si tienes la suerte, Stringify ya admite lo que quieres activar, pero solo hay un puñado de "cosas" que admiten, en comparación con la gran cantidad de IFTTT.
Puede establecer recetas de "entrada" en IFTTT que activarán un activador de Stringify, y una receta de "salida" que se activará a partir de una acción de Stringify.
Por ejemplo:
fuente