Membuat otomatisasi bernaskah

1. Pengantar

Yang akan Anda pelajari

  • Cara merencanakan dan menulis otomatisasi dengan skrip.
  • Cara menguji otomatisasi dengan skrip.

Yang Anda butuhkan

  • Ponsel Android atau iOS yang menjalankan aplikasi Google Home.
  • Lampu smart atau perangkat lain yang telah disertifikasi untuk Kompatibel dengan Google Home dan dapat dinyalakan atau dinonaktifkan.

2. Siapkan perangkat

Jika perangkat Anda belum disiapkan, lanjutkan dan siapkan di rumah.

Pastikan perangkat muncul di aplikasi Google Home, dan Anda dapat mengaktifkan serta menonaktifkannya menggunakan aplikasi Home.

3. Rencanakan otomatisasi dengan skrip

Kita akan mulai dengan memikirkan apa yang kita inginkan dari otomatisasi dengan skrip. Pertimbangan ini mencakup:

  • Perangkat mana yang ingin Anda otomatiskan.
  • Pemicu (atau peristiwa) yang akan memicu eksekusi otomatisasi dengan skrip.
  • Kondisi tambahan apa, jika ada, mengontrol apakah otomatisasi dengan skrip berjalan atau tidak setelah dipicu.
  • Tindakan yang akan dilakukan.

Untuk tujuan codelab ini, rencana kita adalah meminta otomatisasi dengan skrip melakukan dua hal:

  1. Menyalakan lampu (atau perangkat smart lainnya) pada waktu tertentu.
  2. Matikan perangkat pada waktu tertentu.

Setelah memahami apa yang kita inginkan dari otomatisasi dengan skrip, kita akan membuka editor skrip dan menulis otomatisasi dengan skrip.

4. Menulis otomatisasi dengan skrip

Otomatisasi dengan skrip ditulis secara deklaratif menggunakan bahasa serialisasi data YAML.

Otomatisasi dengan skrip terdiri dari dua bagian utama:

  1. Metadata - Nama otomatisasi dengan skrip dan deskripsi tentang fungsinya.
  2. Aturan otomatisasi — Menentukan logika inisiasi dan perilaku otomatisasi.

Metadata

Metadata otomatisasi memberi tahu pengguna fungsi dan fungsi otomatisasinya. Metadata ditentukan dalam blok metadata, yang terlihat seperti ini:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

Aturan otomatisasi

Aturan otomatisasi adalah tempat pekerjaan yang sebenarnya berlangsung. Ini terdiri dari tiga bagian, pemicu, kondisi, dan tindakan, yang dievaluasi secara berurutan:

1 Pemicu

2 Ketentuan

3 Tindakan

Pemicu adalah yang memulai otomatisasi. Setidaknya satu pemicu harus dievaluasi ke true agar kondisi berikutnya dapat dievaluasi.

Ini bersifat opsional, dan terdiri dari satu atau beberapa batasan tambahan yang dievaluasi setelah pemicu diaktifkan. Jika kondisi ditetapkan ke true, tindakan akan berjalan. Jika di-resolve menjadi false, tindakan tidak akan berjalan.

Saat menyertakan beberapa batasan, pisahkan dengan kata kunci and dan or untuk membentuk satu ekspresi logika. Ekspresi ini harus di-resolve menjadi true agar proses otomatisasi dapat dilanjutkan.

Kondisi tidak sama dengan notifikasi perubahan status:

  • Suatu kondisi merepresentasikan fakta yang harus benar pada saat pemicu "diaktifkan" agar tindakan dapat berjalan.
  • Notifikasi perubahan status adalah peristiwa seperti perangkat lain sedang diaktifkan.

Tindakan adalah operasi yang dilakukan saat pemicu dan kondisi batasan apa pun telah terpenuhi.

Blok automations otomatisasi berisi dua aturan:

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

Perhatikan hal berikut:

  1. Ada dua aturan automations. Yang pertama menyalakan lampu, dan yang kedua mematikan lampu.
  2. Setiap aturan memiliki satu tindakan.
  3. on: true berarti menyalakan lampu. Demikian pula, on: false berarti matikan lampu.
  4. Setiap aturan memiliki satu pemicu time.schedule yang memberi tahu otomatisasi jam berapa harus memulai otomatisasi.
  5. Tidak ada kondisi dalam otomatisasi ini.

5. Otomatisasi dengan skrip lengkap

Dengan menggabungkan semua bagian ini, berikut ini tampilan otomatisasi dengan skrip yang lengkap:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. Salin otomatisasi (di atas).
  2. Buka Google Home untuk web.
  3. Pilih tab otomatisasi, yang diwakili oleh ikon dengan tiga bintang:
    Tab Otomatisasi
  4. Klik + Tambahkan perbandingan baru.
  5. Di editor skrip, hapus template otomatisasi.
  6. Tempelkan otomatisasi.
  7. Ganti Desk light - Office dengan nama dan lokasi perangkat Anda.
  8. Klik Validasi. Editor skrip menggarisbawahi bagian otomatisasi dengan skrip yang berisi error. Selesaikan setiap error yang muncul dan terus validasi dan perbaiki hingga tidak ada lagi error. Misalnya, nama perangkat Anda mungkin berbeda. Jika demikian, Anda dapat menggunakan fitur pelengkapan otomatis untuk memilih nama perangkat yang valid.
  9. Klik Simpan.
  10. Pastikan tombol Aktifkan, di bawah teks skrip, berada dalam posisi aktif: Editor skrip dengan otomatisasi dengan skrip yang sepenuhnya divalidasi dan aktif

6. Menguji otomatisasi

  1. Pastikan perangkat dicolokkan dan terlihat di aplikasi Google Home.
  2. Jika perangkat sedang menyala, matikan.
  3. Pada halaman Otomatisasi di Google Home untuk web, klik tombol 'jalankan' di samping otomatisasi.
    Runbutton skrip
  4. Perangkat seharusnya menyala.

Sekarang, mari kita uji otomatisasi.

  1. Matikan perangkat.
  2. Edit otomatisasi, dan ubah ‘perangkat aktif' waktu di baris 7 hingga waktu lima menit kemudian.
  3. Ubah ‘perangkat nonaktif' waktu di baris 14 ke waktu tak lama setelah ‘tepat waktu’.
  4. Klik Validasi. Atasi error yang mungkin terjadi.
  5. Klik Simpan.
  6. Pastikan tombol Aktifkan dalam posisi aktif.
  7. Tunggu hingga dua waktu pemicu selesai. Perangkat akan menyala lalu berbunyi pada waktu yang Anda tentukan.

7. Selamat!

Anda telah berhasil membuat otomatisasi dengan skrip - luar biasa!

Dalam codelab ini, Anda telah mempelajari cara:

  • Cara mendesain dan menulis otomatisasi.
  • Cara menguji otomatisasi.

Langkah berikutnya

Dalam codelab ini, kita membuat otomatisasi yang sangat sederhana. Otomatisasi dapat melakukan lebih banyak hal daripada menjadwalkan pengalihan tombol daya. Setelah memahami dasar-dasar pembuatan otomatisasi, Anda dapat mempelajari berbagai jenis pemicu, kondisi, dan tindakan yang tersedia di ekosistem Google Home.

Cobalah latihan berikut:

  • Tambahkan lebih banyak pemicu time.schedule ke otomatisasi.
  • Ubah otomatisasi untuk mengaktifkan dan menonaktifkan perangkat lain pada jadwal yang sama.
  • Tanpa melepas pemicu time.schedule, ubah otomatisasi agar hanya mengaktifkan perangkat saat perangkat lain sedang dinyalakan. Lihat contoh skrip yang menggunakan klausa condition.
  • Ubah otomatisasi agar hanya mengaktifkan perangkat saat ada orang di rumah.

Bacaan lebih lanjut

Untuk mempelajari otomatisasi Google Home lebih lanjut, baca dokumentasi referensi Otomatisasi: