Posso definir uma receita IFTTT para ser executada apenas em um momento específico?

15

Estou usando uma receita pequena e elegante de IFTTT que responde automaticamente às mensagens de texto recebidas pelo Google Voice. Este , para ser preciso.

Eu só preciso que ele funcione quando estou no trabalho, por isso tenho ligado e desligado manualmente todos os dias, conforme necessário.

Existe alguma maneira de ativar a receita apenas em horários determinados? Por exemplo, entre 9h e 17h nos dias úteis, por exemplo?

No começo, pensei que o canal Data e hora seria útil, mas não parece haver uma maneira de usá-lo para acionar receitas existentes ou encadear receitas.

Pesquisei na Internet e encontrei este post no r / IFTTT, fazendo a mesma pergunta e sem receber respostas.

Egghead99
fonte

Respostas:

6

Não parece. Eles têm a metade do gatilho da solução com o canal Data e hora . Você pode definir ações a serem acionadas em determinados dias da semana em determinados horários. Imagine uma receita para ativar sua receita do Google Voice às 9h e uma para desativá-la às 17h.

No entanto, o canal IFTTT não possui ações para ativar ou desativar uma receita. Você pode entrar em contato com eles para perguntar se eles podem adicionar esses recursos. Meu palpite é que eles consideraram e pensaram que ninguém iria usá-lo ou que seria abusado de alguma forma.

Edward Loveall
fonte
7

Existe uma maneira de fazer isso, no entanto, pode ser um pouco complicado e requer um host unix com php 5, portanto, seja avisado.


Passo 1

A primeira coisa que você precisa fazer é adicionar o canal do criador. Você faz isso da mesma maneira que adicionaria qualquer outro canal, clicando em "canais" na parte superior da página e pesquisando por ele. Em seguida, clicando nele e pressionando o botão "adicionar canal".

Passo 2

Crie um documento php em branco no seu host. Realmente não importa onde, desde que você possa acessá-lo com um navegador.

etapa 3

O que você faz agora é fazer uma receita onde seu gatilho ativa o canal do criador. Depois de configurar seu gatilho, basta clicar no canal do criador e depois em "Fazer uma solicitação da Web". Em seguida, digite o URL da web do documento que criamos na etapa 2 no campo URL. Altere o método para GET e deixe os outros campos em branco.

Passo 4

Agora faça uma receita que é acionada por uma solicitação da web. Faça o nome do evento como quiser, desde que você se lembre. Faça o "que" da receita o que você quiser.

Etapa 5

Agora, adicionamos código ao documento PHP que criamos na etapa 2. Adicione esse código, alterando o horário permitido (atualmente às 6h), o passe, o fuso horário e o URL em que você alterará a "chave de exemplo" à sua chave (encontrada aqui) e {{event}} ao evento que você nomeou na etapa 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');
}
}
?>

Salve o documento e pronto.

Vai
fonte
Se você não tem um servidor Web, você pode tentar um serviço como hook.io
jamesmstone
0

Não é meu, mas isso funciona muito bem para mim! Vá para https://platform.ifttt.com/maker e crie o applet e use-o na seção de código do filtro. O * .skip () é importante para definir o cancelamento da ação após o gatilho. PS não é um codificador!

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

Outra maneira de conseguir isso, sem recorrer à criação de um applet manual, é usando o Stringify.com como intermediário.
Permite incluir um nó "apenas se" em seus fluxos (fluxo Stringify = receita IFTTT). Se você tiver sorte, o Stringify já suporta o que deseja acionar, mas há apenas algumas "coisas" que eles suportam - em comparação com a infinidade no IFTTT.

Você pode definir receitas de "entrada" no IFTTT que acionarão um acionador do Stringify e uma receita de "saída" que será acionada a partir de uma ação do Stringify.

Por exemplo:

  • A receita IFTTT nº 1 aciona o fluxo nº 1 quando saio do meu wifi em casa
  • O fluxo Stringify nº 1 é executado somente quando é noite e aciona a receita nº 2
  • A receita IFTTT nº 2 apaga minha luz do eWeLink
igorsantos07
fonte
Esse serviço está morto agora 😔
igorsantos07 14/08/19