Dapatkah saya mengatur resep IFTTT agar hanya berjalan pada waktu tertentu?


15

Saya menggunakan resep IFTTT kecil yang rapi yang secara otomatis merespons pesan teks yang saya terima melalui Google Voice. Yang ini , tepatnya.

Saya hanya perlu menjalankannya saat sedang bekerja, jadi saya telah menyalakan dan mematikannya secara manual setiap hari sesuai kebutuhan.

Apakah ada cara untuk membuat resep hanya aktif pada waktu yang ditentukan? Misalnya antara jam 9 pagi sampai jam 5 sore pada hari kerja, misalnya?

Pada awalnya saya pikir saluran Date & Time akan berguna tetapi sepertinya tidak ada cara untuk menggunakannya untuk memicu resep yang ada atau resep berantai bersama.

Saya melakukan pencarian di internet dan menemukan posting ini di r / IFTTT menanyakan pertanyaan yang sama dan tidak menerima jawaban.

Jawaban:


6

Itu tidak terlihat seperti itu. Mereka memiliki separuh pemicu solusi dengan saluran Tanggal & Waktu . Anda dapat mengatur tindakan untuk memicu pada hari-hari tertentu dalam seminggu pada waktu-waktu tertentu. Jadi bayangkan satu resep untuk menghidupkan resep Google Voice Anda pada jam 9 pagi dan satu lagi untuk mematikannya pada jam 5 sore.

Namun, saluran IFTTT tidak memiliki tindakan untuk melakukan sesuatu seperti menghidupkan atau mematikan resep. Anda dapat mempertimbangkan untuk menghubungi mereka untuk menanyakan apakah mereka dapat menambahkan fitur-fitur ini. Dugaan saya adalah mereka telah mempertimbangkannya dan berpikir bahwa tidak ada yang akan menggunakannya, atau akan disalahgunakan dengan cara tertentu.


7

Ada cara untuk melakukannya, namun bisa sedikit rumit dan memerlukan host web unix dengan php 5, jadi berhati-hatilah.


Langkah 1

Hal pertama yang harus Anda lakukan adalah menambahkan saluran pembuat. Anda melakukan ini dengan cara yang sama Anda akan menambahkan saluran lain, dengan mengklik "saluran" di bagian atas halaman dan mencarinya, lalu mengkliknya dan menekan tombol "tambahkan saluran".

Langkah 2

Buat dokumen php kosong di hosting Anda. Tidak masalah di mana, asalkan Anda dapat mengaksesnya dengan browser.

Langkah 3

Apa yang Anda lakukan sekarang, adalah membuat resep di mana pemicu Anda mengaktifkan saluran pembuat. Setelah Anda mengatur pemicu Anda, cukup klik saluran pembuat lalu "Buat permintaan web". Kemudian ketikkan URL web dari dokumen yang kami buat pada langkah 2 di bidang URL. Ubah metode menjadi GET dan biarkan bidang lainnya kosong.

Langkah 4

Sekarang buat resep yang dipicu oleh permintaan web. Buatlah nama acara apa pun yang Anda inginkan, selama Anda mengingatnya. Buat "itu" resep apa pun yang Anda inginkan.

Langkah 5

Sekarang, kami menambahkan kode ke dalam dokumen PHP yang kami buat kembali pada langkah 2. Tambahkan kode ini, mengubah waktu yang diizinkan (saat ini jam 6 pagi), pass, zona waktu, dan URL tempat Anda akan mengubah "contoh-kunci" ke kunci Anda (ditemukan di sini) dan {{event}} untuk acara yang Anda beri nama pada langkah 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');
}
}
?>

Simpan dokumen, dan Anda selesai.


Jika Anda tidak memiliki server Web, Anda bisa mencoba layanan seperti hook.io
jamesmstone

0

Bukan milikku tapi ini bekerja bagus untukku! Buka https://platform.ifttt.com/maker dan buat applet dan gunakan ini di bagian kode filter. * .Skip () penting untuk mengatur pembatalan tindakan setelah pelatuk. PS bukan coder!

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

Cara lain untuk mencapai itu, tanpa menggunakan membuat applet manual, adalah menggunakan Stringify.com sebagai perantara.
Ini memungkinkan Anda untuk memasukkan simpul "hanya jika" dalam aliran Anda (Stringify flow = IFTTT resep). Jika Anda cukup beruntung, Stringify sudah mendukung apa yang ingin Anda picu, tetapi hanya ada beberapa "hal" yang mereka dukung - bandingkan dengan kebanyakan di IFTTT.

Anda dapat mengatur "masukan" resep pada IFTTT yang akan memicu pemicu Stringify, dan resep "output" yang dipicu dari tindakan Stringify.

Contohnya:

  • Resep IFTTT # 1 memicu Flow # 1 ketika saya meninggalkan wifi di rumah
  • Stringify Flow # 1 hanya berjalan saat malam hari dan memicu Recipe # 2
  • Resep IFTTT # 2 mematikan lampu eWeLink saya

Layanan itu sudah mati sekarang 😔
igorsantos07
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.