Czy mogę ustawić, aby przepis IFTTT był uruchamiany tylko o określonej godzinie?

15

Korzystam ze zgrabnego małego przepisu IFTTT, który automatycznie reaguje na wiadomości tekstowe otrzymywane przez Google Voice. Ten , by być precyzyjnym.

Potrzebuję go tylko do pracy, kiedy jestem w pracy, więc włączam i wyłączam go ręcznie każdego dnia w razie potrzeby.

Czy jest jakiś sposób, aby przepis był aktywny tylko w określonych godzinach? Na przykład między 9 rano a 5 po południu w dni powszednie?

Na początku myślałem, że kanał Data i czas będzie przydatny, ale nie wygląda na to, aby można go było wykorzystać do wyzwalania istniejących przepisów lub łączenia przepisów.

Przeprowadziłem wyszukiwanie w Internecie i znalazłem ten post na r / IFTTT, zadając to samo pytanie i nie otrzymując odpowiedzi.

Egghead99
źródło

Odpowiedzi:

6

To tak nie wygląda. Mają wyzwalającą połowę rozwiązania z kanałem Data i czas . Możesz ustawić działania, które będą uruchamiane w określone dni tygodnia o określonych porach. Wyobraź sobie jeden przepis na włączenie przepisu Google Voice o 9 rano, a drugi o 17:00.

Jednak kanał IFTTT nie wykonuje żadnych czynności, takich jak włączenie lub wyłączenie przepisu. Możesz rozważyć skontaktowanie się z nimi, aby zapytać, czy mogą dodać te funkcje. Domyślam się, że zastanowili się nad tym i pomyśleli, że albo nikt z nich nie skorzysta, albo będzie w jakiś sposób nadużywany.

Edward Loveall
źródło
7

Jest na to sposób, jednak może to być nieco skomplikowane i wymaga hosta unixowego z php 5, więc ostrzegam.


Krok 1

Pierwszą rzeczą, którą musisz zrobić, to dodać kanał twórcy. Robisz to w taki sam sposób, jak dodajesz każdy inny kanał, klikając „kanały” u góry strony i szukając go, a następnie klikając go i naciskając przycisk „dodaj kanał”.

Krok 2

Utwórz pusty dokument php na swoim hoście. Tak naprawdę nie ma znaczenia, gdzie można uzyskać do niego dostęp za pomocą przeglądarki.

Krok 3

Teraz robisz przepis, w którym wyzwalacz aktywuje kanał twórcy. Po skonfigurowaniu wyzwalacza kliknij kanał producenta, a następnie „Złóż wniosek internetowy”. Następnie wpisz adres URL dokumentu, który utworzyliśmy w kroku 2, w polu URL. Zmień metodę na GET i pozostaw pozostałe pola puste.

Krok 4

Teraz stwórz przepis uruchamiany przez żądanie internetowe. Podaj nazwę wydarzenia, jak chcesz, o ile go pamiętasz. Zrób „to” z przepisu, cokolwiek chcesz.

Krok 5

Teraz dodajemy kod do dokumentu PHP, który utworzyliśmy w kroku 2. Dodaj ten kod, zmieniając dozwolony czas (obecnie 6 rano), przepustkę, strefę czasową i adres URL, pod którym zmienisz „przykładowy klucz” na klucz (znajdujący się tutaj) i {{event}} na wydarzenie wymienione w kroku 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');
}
}
?>

Zapisz dokument i gotowe.

Wola
źródło
Jeśli nie masz serwera WWW, możesz wypróbować usługę taką jak hook.io
jamesmstone
0

Nie moje, ale to działa świetnie dla mnie! Wejdź na https://platform.ifttt.com/maker i utwórz aplet i użyj go w sekcji kodu filtru. * .Skip () jest ważne, aby ustawić anuluj akcję po wyzwoleniu. PS nie jest koderem!

// 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
źródło
0

Innym sposobem na osiągnięcie tego, bez uciekania się do tworzenia ręcznego apletu, jest użycie Stringify.com jako pośrednika.
Pozwala na włączenie do przepływów węzła „tylko jeśli” (Stringify flow = IFTTT przepis). Jeśli masz szczęście, Stringify obsługuje już to, co chcesz uruchomić, ale jest tylko kilka „rzeczy”, które obsługują - w porównaniu do ogromnej liczby na IFTTT.

Możesz ustawić receptury „wejściowe” na IFTTT, które będą wyzwalać wyzwalacz Stringify, oraz recepturę „wyjściową”, która będzie wyzwalana przez akcję Stringify.

Na przykład:

  • Przepis IFTTT nr 1 uruchamia przepływ nr 1, kiedy wychodzę z mojego domowego Wi-Fi
  • Strumień przepływu 1 działa tylko wtedy, gdy jest noc i uruchamia przepis 2
  • Przepis IFTTT nr 2 wyłącza moje światło eWeLink
igorsantos07
źródło
Ta usługa już nie żyje 😔
igorsantos07