Posso impostare una ricetta IFTTT per l'esecuzione solo in un momento specifico?


15

Sto usando una piccola ricetta IFTTT che risponde automaticamente ai messaggi di testo che ricevo tramite Google Voice. Questo , per essere precisi.

Ho solo bisogno che funzioni quando sono al lavoro, quindi l'ho acceso e spento manualmente ogni giorno secondo necessità.

Esiste un modo per rendere attiva la ricetta solo a orari prestabiliti? Ad esempio tra le 9:00 e le 17:00 nei giorni feriali, ad esempio?

All'inizio ho pensato che il canale Data e ora sarebbe stato utile, ma non sembra che ci sia un modo per usarlo per attivare insieme ricette esistenti o ricette a catena.

Ho fatto qualche ricerca su Internet e ho trovato questo post su r / IFTTT ponendo la stessa domanda e senza ricevere risposte.

Risposte:


6

Non sembra. Hanno la metà del trigger della soluzione con il canale Data e ora . È possibile impostare azioni da attivare in determinati giorni della settimana in determinati orari. Quindi immagina una ricetta per accendere la tua ricetta di Google Voice alle 9:00 e una per spegnerla alle 17:00.

Tuttavia, il canale IFTTT non ha azioni per fare qualcosa come accendere o spegnere una ricetta. Potresti considerare di contattarli per chiedere se potrebbero aggiungere queste funzionalità. La mia ipotesi è che l'hanno considerato e pensato che nessuno lo avrebbe usato o che sarebbe stato abusato in qualche modo.


7

C'è un modo per farlo, tuttavia può essere un po 'complicato e richiede un host web unix con php 5, quindi fai attenzione.


Passo 1

La prima cosa che devi fare è aggiungere il canale del creatore. Lo fai nello stesso modo in cui aggiungeresti qualsiasi altro canale, facendo clic su "canali" nella parte superiore della pagina e cercandolo, quindi facendo clic su di esso e premendo il pulsante "Aggiungi canale".

Passo 2

Crea un documento php vuoto sul tuo host web. Non importa dove, purché sia ​​possibile accedervi con un browser.

Passaggio 3

Quello che fai ora è creare una ricetta in cui il tuo trigger attiva il canale del creatore. Una volta impostato il trigger, fai clic sul canale del produttore, quindi "Crea una richiesta web". Quindi digitare l'URL Web del documento che abbiamo creato nel passaggio 2 nel campo URL. Cambia il metodo in GET e lascia vuoti gli altri campi.

Passaggio 4

Ora crea una ricetta innescata da una richiesta web. Crea il nome dell'evento come preferisci, purché lo ricordi. Crea il "quello" della ricetta qualunque cosa tu voglia che faccia.

Passaggio 5

Ora, aggiungiamo il codice nel documento PHP che abbiamo creato nel passaggio 2. Aggiungiamo questo codice, modificando l'ora consentita (attualmente 6am), il pass, il fuso orario e l'URL in cui cambierai "chiave-esempio" alla tua chiave (trovato qui) e {{event}} all'evento che hai nominato nel passaggio 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');
}
}
?>

Salva il documento e il gioco è fatto.


Se non si dispone di un server Web, è possibile provare un servizio come hook.io
jamesmstone,

0

Non mio ma questo funziona alla grande per me! Vai su https://platform.ifttt.com/maker e crea un'applet e usala nella sezione del codice filtro. * .Skip () è importante per impostare annullare l'azione dopo il trigger. PS non è un programmatore!

// 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

Un altro modo per raggiungere questo obiettivo, senza ricorrere alla creazione di un'applet manuale, è utilizzare Stringify.com come intermediario.
Ti permette di includere un nodo "solo se" nei tuoi flussi (Stringify flow = ricetta IFTTT). Se sei abbastanza fortunato, Stringify supporta già ciò che vuoi innescare, ma c'è solo una manciata di "cose" che supportano, rispetto alla pletora su IFTTT.

È possibile impostare ricette "input" su IFTTT che attiveranno un trigger Stringify e una ricetta "output" che viene attivata da un'azione Stringify.

Per esempio:

  • La ricetta IFTTT n. 1 innesca il flusso n. 1 quando lascio il mio wifi di casa
  • Stringify Flow # 1 funziona solo quando è notte e attiva la Ricetta # 2
  • La ricetta IFTTT n. 2 spegne la mia luce eWeLink

Quel servizio è morto ora 😔
igorsantos07
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.