Чи можу я встановити рецепт IFTTT, який запускається лише у визначений час?


15

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

Мені це потрібно лише для роботи, коли я на роботі, тому я щодня вручну включаю і вимикаю її в міру потреби.

Чи є спосіб зробити рецепт активним лише у встановлений час? Наприклад, між 9:00 та 17:00 у будні дні, наприклад?

Спочатку я думав, що канал "Дата і час" буде корисним, але, схоже, не існує способу його використання для запуску існуючих рецептів або ланцюжкових рецептів разом.

Я здійснив пошук в Інтернеті і виявив цю публікацію на r / IFTTT, задаючи те саме питання і не отримавши відповіді.

Відповіді:


6

Це не схоже на це. Вони мають запускаючу половину рішення з каналом Date & Time . Ви можете встановити дії, які потрібно запускати в певні дні тижня в певний час. Тож уявіть один рецепт, щоб увімкнути рецепт Google Voice о 9 ранку, а один - вимкнути його о 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); // } // }


0

Ще один спосіб досягти цього, не вдаючись до створення ручного аплету, - це використання Stringify.com як посередника.
Це дозволяє включити у свої потоки вузол "тільки якщо" (Stringify flow = рецепт IFTTT). Якщо вам пощастило, Stringify вже підтримує те, що ви хочете викликати, але є лише кілька «речей», які вони підтримують - порівняно з безліччю IFTTT.

Ви можете встановити "вхідні" рецепти на IFTTT, які запускають тригер Stringify, і "вихідний" рецепт, який запускається від дії Stringify.

Наприклад:

  • Рецепт IFTTT №1 запускає Потік №1, коли я покидаю домашній wifi
  • Stringify Flow # 1 працює лише вночі, і він запускає рецепт №2
  • Рецепт №2 IFTTT вимикає мій eWeLink

Ця служба зараз мертва 😔
igorsantos07
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.