web-dev-qa-db-fra.com

Puis-je configurer une recette IFTTT pour qu'elle ne s'exécute qu'à une heure précise?

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 lorsque je suis au travail. C’est pourquoi je l’allume et l’éteint manuellement tous les jours, au besoin.

Est-il possible de rendre la recette active uniquement à des heures définies? Comme entre 9h et 17h en semaine, par exemple?

Au début, j’imaginais que le canal Date et heure serait utile, mais il ne semble pas y avoir de moyen de l’utiliser pour déclencher des recettes existantes ou des recettes enchaînées.

J'ai fait des recherches sur Internet et trouvé ce post sur r/IFTTT posant la même question et ne recevant aucune réponse.

15
Egghead99

Cela ne ressemble pas à ça. Ils ont la moitié de la solution avec le canal Date & Heure . Vous pouvez définir des actions à déclencher certains jours de la semaine à certaines heures. Alors imaginez une recette pour allumer votre recette Google Voice à 9h et une autre pour l’éteindre à 17h.

Cependant, le canal IFTTT n'a aucune action pour activer ou désactiver une recette. Vous pouvez envisager de les contacter pour savoir s'ils peuvent ajouter ces fonctionnalités. À mon avis, ils y ont pensé et pensaient que personne ne l’utiliserait ou qu’il en serait fait l’abus.

6
Edward Loveall

Il y a un moyen de le faire , mais cela peut être un peu compliqué et nécessite un hôte Web unix avec php 5, alors soyez averti.


Étape 1

La première chose à faire est d’ajouter le canal Maker. Vous procédez de la même manière que vous ajoutez une autre chaîne, en cliquant sur "chaînes" en haut de la page et en le recherchant, puis en cliquant dessus et en appuyant sur le bouton "ajouter une chaîne".

É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 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. Modifiez la méthode en GET et laissez les autres champs vides.

Étape 4

Créez maintenant une recette déclenchée par une requête Web. Attribuez à l’événement le nom de votre choix, aussi longtemps que vous vous en souvenez. Faites le "ça" de la recette comme bon vous semble.

Étape 5

Maintenant, nous ajoutons du code dans ce document PHP que nous avons créé à l'étape 2. Ajoutez ce code dans, l'heure de changement autorisée (actuellement 6 heures du matin), le passage, le fuseau horaire et l'URL où vous allez remplacez "exemple-clé" par votre clé (trouvé ici) et {{événement}} par l'événement que vous avez nommé à l'étape 4.

<?php
    date_default_timezone_set("EST"); 
$time = strftime("%H");
if($time == 6){
echo exec('curl -X POST https://maker.ifttt.com/trigger/{{event}}/with/key/example-key');
}
}
?>

Enregistrez le document et vous avez terminé.

7
Will

Pas le mien mais ça marche très bien pour moi! Allez à https://platform.ifttt.com/maker et créez une applet et utilisez-la dans la section du code de filtrage. Le * .skip () est important pour annuler l’action après le déclenchement. P.S. 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); // } // }

0
Deanospomony

Un autre moyen d’y parvenir, sans recourir à la création d’un applet manuel, 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 êtes assez chanceux, Stringify prend déjà en charge ce que vous voulez déclencher, mais il n’ya que quelques "choses" qu’ils supportent - comparé à la pléthore d’IFTTT.

Vous pouvez définir des recettes "d'entrée" sur IFTTT qui déclencheront un déclencheur Stringify et une recette "de sortie" déclenchées par une action Stringify.

Par exemple:

  • La recette n ° 1 d'IFTTT déclenche le flux n ° 1 lorsque je quitte mon domicile wifi
  • Stringify Flow # 1 ne fonctionne que quand il fait nuit et il déclenche la recette n ° 2
  • La recette n ° 2 d'IFTTT éteint mon voyant eWeLink
0
igorsantos07