Puis-je définir une recette IFTTT pour qu'elle ne s'exécute qu'à un moment précis?
15
J'utilise une petite recette IFTTT soignée qui répond automatiquement aux messages texte que je reçois via Google Voice. Celui-ci , pour être précis.
Je n'en ai besoin que pour fonctionner lorsque je suis au travail, je l'ai donc allumé et éteint manuellement tous les jours selon les besoins.
Existe-t-il un moyen de rendre la recette active uniquement à des heures définies? Comme entre 9 h et 17 h en semaine, par exemple?
Au début, je pensais que le canal Date et heure serait utile, mais il ne semble pas qu'il y ait un moyen de l'utiliser pour déclencher des recettes existantes ou enchaîner des recettes ensemble.
J'ai fait quelques recherches sur Internet et j'ai trouvé ce message sur r / IFTTT en posant la même question et en ne recevant aucune réponse.
Ça ne ressemble pas à ça. Ils ont la moitié de déclenchement de la solution avec le canal Date et heure . Vous pouvez définir des actions à déclencher certains jours de la semaine à certains moments. Imaginez donc une recette pour activer votre recette Google Voice à 9h et une pour la désactiver à 17h.
Cependant, le canal IFTTT n'a aucune action pour activer ou désactiver une recette. Vous pourriez envisager de les contacter pour leur demander s'ils pourraient ajouter ces fonctionnalités. Je suppose qu'ils l'ont considéré et ont pensé que personne ne l'utiliserait, ou qu'il serait abusé d'une manière ou d'une autre.
Il existe un moyen de le faire, mais cela peut être un peu compliqué et nécessite un hébergeur Unix avec php 5, alors soyez averti.
Étape 1
La première chose que vous devez faire est d'ajouter le canal de création. Vous faites cela de la même manière que vous ajouteriez n'importe quel autre canal, en cliquant sur "canaux" en haut de la page et en le recherchant, puis en cliquant dessus et en appuyant sur le bouton "ajouter un canal".
Étape 2
Créez un document php vierge sur votre hébergeur. Peu importe où, tant que vous pouvez y accéder avec un navigateur.
Étape 3
Ce que vous faites maintenant, c'est de faire une recette où votre déclencheur active le canal du fabricant. Une fois que vous avez configuré votre déclencheur, cliquez simplement sur le canal du fabricant, puis sur "Faire une demande Web". Tapez ensuite l'URL Web du document que nous avons créé à l'étape 2 dans le champ URL. Remplacez la méthode par GET et laissez les autres champs vides.
Étape 4
Faites maintenant une recette déclenchée par une demande Web. Faites le nom de l'événement comme vous le souhaitez, tant que vous vous en souvenez. Faites le "ça" de la recette comme vous voulez.
Étape 5
Maintenant, nous ajoutons du code dans ce document PHP que nous avons créé à l'étape 2. Ajoutez ce code, en changeant l'heure autorisée (actuellement 6h), le laissez-passer, le fuseau horaire et l'URL où vous allez changer "exemple-clé" à votre clé (trouvée ici) et {{event}} à l'événement que vous avez nommé à l'étape 4.
Si vous n'avez pas de serveur Web, vous pouvez essayer un service comme hook.io
jamesmstone
0
Pas le mien mais cela fonctionne très bien pour moi! Accédez à https://platform.ifttt.com/maker et créez une applet et utilisez-la dans la section du code de filtre. Le * .skip () est important pour définir annuler l'action après le déclenchement. PS pas un codeur!
// 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);
// }
// }
Une autre façon d'y parvenir, sans recourir à la création d'une applet manuelle, consiste à utiliser Stringify.com en tant qu'intermédiaire.
Il vous permet d'inclure un nœud "seulement si" dans vos flux (Stringify flow = recette IFTTT). Si vous avez la chance, Stringify prend déjà en charge ce que vous souhaitez déclencher, mais il n'y a qu'une poignée de «choses» qu'ils prennent en charge - par rapport à la pléthore sur IFTTT.
Vous pouvez définir des recettes "d'entrée" sur IFTTT qui déclencheront un déclencheur Stringify, et une recette "de sortie" qui sera déclenchée à partir d'une action Stringify.
Par exemple:
La recette IFTTT # 1 déclenche le flux # 1 lorsque je quitte ma maison wifi
Stringify Flow # 1 ne s'exécute que la nuit et déclenche la recette # 2
Pas le mien mais cela fonctionne très bien pour moi! Accédez à https://platform.ifttt.com/maker et créez une applet et utilisez-la dans la section du code de filtre. Le * .skip () est important pour définir annuler l'action après le déclenchement. PS pas un codeur!
// 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); // } // }
la source
Une autre façon d'y parvenir, sans recourir à la création d'une applet manuelle, consiste à utiliser Stringify.com en tant qu'intermédiaire.
Il vous permet d'inclure un nœud "seulement si" dans vos flux (Stringify flow = recette IFTTT). Si vous avez la chance, Stringify prend déjà en charge ce que vous souhaitez déclencher, mais il n'y a qu'une poignée de «choses» qu'ils prennent en charge - par rapport à la pléthore sur IFTTT.
Vous pouvez définir des recettes "d'entrée" sur IFTTT qui déclencheront un déclencheur Stringify, et une recette "de sortie" qui sera déclenchée à partir d'une action Stringify.
Par exemple:
la source