Kann ich ein IFTTT-Rezept so einstellen, dass es nur zu einer bestimmten Zeit ausgeführt wird?


15

Ich verwende ein hübsches kleines IFTTT-Rezept, das automatisch auf Textnachrichten reagiert, die ich über Google Voice erhalte. Dieser , um genau zu sein.

Ich brauche es nur zum Laufen, wenn ich bei der Arbeit bin, also habe ich es jeden Tag bei Bedarf manuell ein- und ausgeschaltet.

Gibt es eine Möglichkeit, das Rezept nur zu festgelegten Zeiten zu aktivieren? Zum Beispiel wochentags zwischen 9 und 17 Uhr?

Zuerst dachte ich, der Date & Time-Kanal wäre nützlich, aber es sieht nicht so aus, als gäbe es eine Möglichkeit, vorhandene Rezepte auszulösen oder Rezepte zu verketten.

Ich habe im Internet gesucht und diesen Beitrag auf r / IFTTT gefunden, indem ich die gleiche Frage gestellt habe und keine Antworten erhalten habe.

Antworten:


6

Es sieht nicht so aus. Sie haben die Auslöserhälfte der Lösung mit dem Date & Time-Kanal . Sie können Aktionen festlegen, die an bestimmten Wochentagen zu bestimmten Zeiten ausgelöst werden. Stellen Sie sich also ein Rezept vor, mit dem Sie Ihr Google Voice-Rezept um 9:00 Uhr einschalten und um 17:00 Uhr ausschalten können.

Der IFTTT-Kanal hat jedoch keine Aktionen zum Ein- oder Ausschalten eines Rezepts. Sie können sich an sie wenden, um zu fragen, ob sie diese Funktionen hinzufügen können. Meine Vermutung ist, dass sie darüber nachgedacht haben und dachten, dass entweder niemand es benutzen würde oder es auf irgendeine Weise missbraucht würde.


7

Es gibt eine Möglichkeit, dies zu tun, die jedoch etwas kompliziert sein kann und einen Unix-Webhost mit PHP 5 erfordert. Seien Sie also gewarnt.


Schritt 1

Als erstes müssen Sie den Maker-Channel hinzufügen. Sie tun dies auf die gleiche Weise, wie Sie jeden anderen Kanal hinzufügen würden, indem Sie oben auf der Seite auf "Kanäle" klicken und danach suchen, dann darauf klicken und auf die Schaltfläche "Kanal hinzufügen" klicken.

Schritt 2

Erstellen Sie ein leeres PHP-Dokument auf Ihrem Webhost. Es ist eigentlich egal wo, solange Sie mit einem Browser darauf zugreifen können.

Schritt 3

Was Sie jetzt tun, ist ein Rezept zu erstellen, bei dem Ihr Auslöser den Herstellerkanal aktiviert. Sobald Sie Ihren Trigger eingerichtet haben, klicken Sie einfach auf den Maker-Kanal und dann auf "Webanfrage stellen". Geben Sie dann die Web-URL des in Schritt 2 erstellten Dokuments in das URL-Feld ein. Ändern Sie die Methode in GET und lassen Sie die anderen Felder leer.

Schritt 4

Erstellen Sie nun ein Rezept, das durch eine Webanforderung ausgelöst wird. Machen Sie den Ereignisnamen wie Sie wollen, solange Sie sich daran erinnern. Machen Sie das "das" des Rezepts, was Sie wollen, dass es tut.

Schritt 5

Jetzt fügen wir Code in das PHP-Dokument ein, das wir in Schritt 2 erstellt haben. Fügen Sie diesen Code hinzu und ändern Sie die zulässige Zeit (derzeit 6 Uhr morgens), den Pass, die Zeitzone und die URL, unter der Sie den "Beispielschlüssel" ändern. zu Ihrem Schlüssel (hier gefunden) und {{event}} zu dem Ereignis, das Sie in Schritt 4 benannt haben.

<?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');
}
}
?>

Speichern Sie das Dokument und Sie sind fertig.


Wenn Sie keinen Webserver haben, können Sie einen Dienst wie hook.io
jamesmstone am

0

Nicht meins, aber das funktioniert großartig für mich! Gehen Sie zu https://platform.ifttt.com/maker und erstellen Sie ein Applet. Verwenden Sie dieses im Abschnitt Filtercode. Das * .skip () ist wichtig, um die Aktion nach dem Trigger abzubrechen. PS kein Kodierer!

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

Eine andere Möglichkeit, dies zu erreichen, ohne ein manuelles Applet erstellen zu müssen, ist die Verwendung von Stringify.com als Vermittler .
Sie können einen "Nur wenn" -Knoten in Ihre Flows aufnehmen (Stringify Flow = IFTTT-Rezept). Wenn Sie das Glück haben, unterstützt Stringify bereits, was Sie auslösen möchten, aber es gibt nur eine Handvoll von "Dingen", die sie unterstützen - im Vergleich zu der Fülle an IFTTT.

Sie können in IFTTT "Eingabe" -Rezepte festlegen, die einen Stringify-Trigger auslösen, sowie ein "Ausgabe" -Rezept, das von einer Stringify-Aktion ausgelöst wird.

Zum Beispiel:

  • IFTTT-Rezept Nr. 1 löst Flow Nr. 1 aus, wenn ich mein Heim-WLAN verlasse
  • Stringify Flow # 1 wird nur ausgeführt, wenn es Nacht ist und Rezept # 2 ausgelöst wird
  • IFTTT-Rezept 2 schaltet mein eWeLink-Licht aus

Dieser Dienst ist jetzt tot. 😔
igorsantos07
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.