Могу ли я установить рецепт IFTTT для запуска только в определенное время?

15

Я использую аккуратный маленький рецепт IFTTT, который автоматически отвечает на текстовые сообщения, которые я получаю через Google Voice. Этот , чтобы быть точным.

Мне нужно, чтобы он работал, только когда я на работе, поэтому я включал и выключал его каждый день вручную по мере необходимости.

Есть ли способ сделать рецепт активным только в установленное время? Например, с 9 утра до 5 вечера по будням?

Сначала я думал, что канал Date & Time будет полезен, но не похоже, что есть способ использовать его для одновременного запуска существующих рецептов или цепочки рецептов.

Я немного поискал в интернете и нашел этот пост на r / IFTTT, задавая тот же вопрос и не получая ответов.

Egghead99
источник

Ответы:

6

Это не похоже на это. У них есть триггерная половина решения с каналом даты и времени . Вы можете настроить действия для запуска в определенные дни недели в определенное время. Так что представьте себе один рецепт, чтобы включить ваш рецепт Google Voice в 9:00, а другой - чтобы выключить его в 17:00.

Тем не менее, канал IFTTT не имеет действий, чтобы сделать что-либо, как включить или выключить рецепт. Вы можете связаться с ними, чтобы спросить, могут ли они добавить эти функции. Я предполагаю, что они рассмотрели это и думали, что или никто не будет использовать это, или это будет злоупотреблено каким-то образом.

Эдвард Лавалл
источник
7

Есть способ сделать это, однако он может быть немного сложным и требует веб-хостинга Unix с php 5, так что будьте осторожны.


Шаг 1

Первое, что вам нужно сделать, это добавить канал производителя. Вы делаете это так же, как добавляете любой другой канал, нажимая «каналы» вверху страницы и ища его, затем нажимая на него и нажимая кнопку «добавить канал».

Шаг 2

Создайте пустой документ php на своем веб-хосте. Неважно, где, если вы можете получить к нему доступ с помощью браузера.

Шаг 3

Что вы делаете сейчас, это сделать рецепт, где ваш триггер активирует канал производителя. Как только вы настроите триггер, просто нажмите на канал производителя, затем «Сделайте веб-запрос». Затем введите веб-URL документа, который мы сделали на шаге 2, в поле URL. Измените метод на GET и оставьте другие поля пустыми.

Шаг 4

Теперь создайте рецепт, который запускается веб-запросом. Сделайте имя события как хотите, если вы его помните. Сделайте «то» из рецепта, что вы хотите, чтобы он делал.

Шаг 5

Теперь мы добавим код в тот PHP-документ, который мы создали еще на шаге 2. Добавьте этот код, изменив разрешенное время (в настоящее время 6 утра), проход, часовой пояс и URL-адрес, где вы измените «пример ключа» на ваш ключ (находится здесь) и {{событие}} на событие, которое вы назвали в шаге 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');
}
}
?>

Сохраните документ, и все готово.

Будет
источник
Если у вас нет веб-сервера, вы можете попробовать такой сервис, как hook.io
jamesmstone
0

Не мое, но это прекрасно работает для меня! Перейдите на https://platform.ifttt.com/maker, создайте апплет и используйте его в разделе кода фильтра. * .Skip () важен для установки отмены действия после триггера. PS не кодер!

// 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); // } // }

Deanospomony
источник
0

Другой способ добиться этого, не прибегая к созданию ручного апплета, - использовать Stringify.com в качестве посредника.
Это позволяет вам включать в свои потоки узел «только если» (Stringify flow = IFTTT recipe). Если вам повезет, Stringify уже поддерживает то, что вы хотите вызвать, но есть лишь несколько «вещей», которые они поддерживают - по сравнению с множеством IFTTT.

Вы можете установить «входные» рецепты на IFTTT, которые будут запускать триггер Stringify, и «выходной» рецепт, который запускается из действия Stringify.

Например:

  • IFTTT Recipe # 1 запускает поток # 1, когда я ухожу из дома
  • Stringify Flow # 1 запускается только ночью и запускает рецепт № 2
  • IFTTT Recipe # 2 выключает мой eWeLink свет
igorsantos07
источник
Эта служба сейчас мертва 😔
igorsantos07