Notifikasi

We are experiencing extremely high contact volume right now and estimated wait times will be higher than normal. We appreciate your patience and understanding as we work to provide support as quickly as possible. In the meantime, please visit our Help Center for troubleshooting articles and our Community Forums.

Menulis otomatisasi dengan skrip menggunakan editor skrip

Editor skrip memungkinkan Anda menulis otomatisasi Anda sendiri untuk membuat Rutinitas Anggota Keluarga tingkat lanjut dengan Google Home untuk web atau di aplikasi Google Home. Untuk menulis otomatisasi dengan skrip, Anda perlu mengetahui beberapa dasar tentang bahasa skrip YAML, cara menyusun struktur skrip, dan cara menggunakan komponen yang membentuk skrip.

Editor skrip saat ini tersedia dalam Pratinjau Publik. Anda dapat mengakses editor skrip dengan Google Home untuk web atau di aplikasi Google Home seluler setelah bergabung ke Pratinjau Publik.

Pelajari lebih lanjut cara membuat otomatisasi dengan editor skrip:

Praktik untuk menulis otomatisasi dengan skrip dan contoh skrip lainnya.

Kunjungi codelab
Penting: Semua anggota keluarga dapat melihat kapan Rutinitas ini dijalankan. Rutinitas hanya untuk kemudahan, bukan untuk kasus penggunaan yang vital untuk keselamatan atau keamanan. Jangan membuat Rutinitas yang dapat mengakibatkan cedera atau bahaya jika gagal dimulai atau berhenti berfungsi. Fitur Rutinitas dapat bergantung pada internet dan Wi-Fi yang berfungsi dengan baik, serta ketersediaan layanan dari Google dan pihak ketiga yang memproduksi perangkat, yang disertakan dalam fitur Rutinitas. Fitur Rutinitas mungkin tidak selalu berfungsi, dan Google tidak bertanggung jawab atas bahaya atau kerugian yang ditimbulkan sebagai akibat dari kegagalan fitur Rutinitas.

Dasar-dasar bahasa skrip YAML

Editor skrip menggunakan YAML, bahasa skrip fleksibel yang memungkinkan Anda memasukkan petunjuk baris demi baris untuk berbagai hal yang Anda inginkan agar dilakukan perangkat dan kapan Anda menginginkannya. Petunjuk ini ditulis dalam bentuk pasangan nilai kunci.

Pasangan nilai kunci

YAML ditulis sebagai serangkaian pasangan nilai kunci: 

name: TV on lights off

Dalam contoh ini, kunci = name, dan nilai = TV on lights off

Kunci pada dasarnya adalah kata kunci untuk elemen yang ingin Anda gunakan. Setiap kunci harus unik, tetapi urutan kunci tidak berpengaruh. Setiap pasangan nilai kunci dimulai di baris baru. 

Nilai yang terkait dengan kunci dapat berupa beberapa jenis data yang berbeda.

Jenis Data

Primitif

Jenis data primitif mencakup semua jenis data dasar yang didukung editor skrip.

Bentuk Primitif Jenis Nilai
Bool
  • true
  • false
Number Bilangan bulat atau desimal
String

Teks biasa

Nilai string hanya memerlukan tanda kutip jika diawali dengan [, {, ", ', atau #, atau string berisi titik dua, diikuti satu atau dua spasi. Tanda kutip harus cocok. Misalnya, gunakan " " atau ' ', bukan " '.

Date

Bulan dan Hari. Formatnya adalah BB-HH atau BB/HH.

  • 09/01
  • 09-01
Time

Waktu dapat menggunakan format AM/PM atau format 24 jam. Detik bersifat opsional. Anda juga dapat menggunakan waktu yang berpatokan pada matahari. Misalnya, Anda dapat menggunakan kata kunci sunrise dan sunset, diikuti dengan durasi.

  • 12:30 am
  • 13:00:01
  • sunrise / sunset
  • sunset+30min / sunset-1hour
DateTime

Tahun, Bulan, Hari, dan Waktu.

Anda harus menyertakan spasi di antara Tanggal dan Waktu.

Format tanggalnya adalah TTTT-BB-HH atau TTTT/BB/HH. Format waktu sama dengan "Waktu" di atas. Zona waktu tidak didukung.

  • 2022/01/01 14:00
  • 2022-12-31 sunrise+30min
Weekday
  • MON atau MONDAY
  • TUE atau TUESDAY
  • WED atau WEDNESDAY
  • THU atau THURSDAY
  • FRI atau FRIDAY
  • SAT atau SATURDAY
  • SUN atau SUNDAY
Duration

Periode waktu.

  • 30min
  • 1hour
  • 20sec
  • 1hour10min20sec

ColorHex

Kode heksadesimal enam digit yang merepresentasikan warna. Tidak ada awalan #.

  • FFFFFF
  • B5D2A1
  • DFA100
Temperature

Data suhu. Selalu tambahkan C atau F untuk menunjukkan Celsius atau Fahrenheit.

  • 20.5C
  • 90F
ColorTemperature

Suhu warna dalam Kelvin.

  • 5000K

Struktur: Pasangan nilai kunci bertingkat

Jenis data struktur adalah "blok" atau struktur data yang berisi beberapa pasangan nilai kunci. Pasangan nilai kunci ini disusun bertingkat dalam satu kunci induk, dengan setiap tingkat susunan diindentasi oleh jumlah spasi atau tab yang sama untuk menunjukkan hierarki.

actions: 
  device: Light B - Living room  
  state: on

 Dalam contoh ini, kunci induk = actions. Nilai untuk actions adalah 2 pasangan nilai kunci bertingkat: 

  • Pasangan 1: kunci turunan = device; nilai = Light B - Living room
  • Pasangan 2: kunci turunan = state; nilai = on

Daftar: Kunci dengan beberapa nilai

Untuk menyertakan beberapa nilai dengan satu kunci, buat daftar dengan tanda hubung sebelum setiap item daftar. Daftar dapat menggunakan nilai jenis data primitif atau struktur, tetapi tidak keduanya sekaligus.

weekdays:
- MONDAY
- THURSDAY

Dalam contoh, key = weekdays, dan nilai = daftar yang mencakup Monday dan Thursday.

Struktur lanjutan: Gabungan daftar dan pasangan bertingkat

Untuk otomatisasi yang lebih kompleks, nilai dapat berupa daftar yang berisi beberapa pasangan nilai kunci bertingkat.
starters:
- type: time.schedule
  at: 10:00 am
  weekdays:
  - MONDAY
  - THURSDAY
- type: time.schedule
  at: SUNSET
  weekdays:
  - MONDAY
  - THURSDAY

Dalam contoh ini, kunci induk = starters. Nilai kunci induk ini = daftar dengan setiap item daftar mencakup beberapa pasangan nilai kunci.

Beberapa jenis kunci memerlukan nilai dalam format tertentu, sementara kunci lain mewarisi karakteristik berdasarkan kemampuan perangkat. Pelajari cara penyusunan struktur pemicu, kondisi, dan tindakan tertentu.

Sintaksis bahasa YAML

Saat Anda menulis Rutinitas dengan skrip, gunakan konsep pemformatan ini:

Konsep Contoh

Titik dua

YAML menggunakan titik dua : diikuti dengan spasi untuk memisahkan kunci dari nilainya.

state: on

Indentasi

Indentasi menunjukkan struktur dan hierarki serta menentukan pasangan kunci bertingkat.

Dalam contoh, kunci induk = metadata. Name dan description kunci adalah kunci turunan yang disusun bertingkat dalam metadata kunci induk. Setiap kunci bertingkat diindentasi oleh 2 spasi atau 1 tab untuk menunjukkan hierarkinya.

metadata:
  name: TV on lights off
  description: Turn off lights when TV turns on

 

Tanda hubung 

Tanda hubung yang diikuti spasi menentukan item daftar.
weekdays:
- MONDAY
- THURSDAY

Komentar

Gunakan tanda pagar # untuk menambahkan komentar atau catatan ke skrip Anda. Komentar diabaikan oleh mesin otomatisasi dan tidak akan memengaruhi otomatisasi Anda.
# This is a comment. It will be ignored.

Template editor skrip

Saat Anda membuat otomatisasi baru, editor skrip menyediakan template kosong untuk menulis skrip Anda, menggunakan struktur ini:

metadata berisi nama otomatisasi dan deskripsi Anda
automations menentukan perilaku otomatisasi
  starters menentukan pemicu yang memulai otomatisasi Anda
  condition menentukan batasan tentang kapan otomatisasi Anda harus berjalan (opsional)
  actions menentukan tindakan yang terjadi dalam otomatisasi Anda

Template ini dibagi menjadi dua blok utama: metadata dan otomatisasi. Kemudian, otomatisasi dibagi lagi menjadi beberapa bagian untuk pemicu, kondisi, dan tindakan.

Blok metadata dan otomatisasi

Template editor skrip berisi dua kunci induk tingkat atas, atau blok: metadata dan automations.

Blok metadata berisi nama dan deskripsi otomatisasi. Blok ini hanya digunakan untuk membantu Anda mengidentifikasi otomatisasi.

metadata:
  name: TV time
  description: When TV is on, turn on lights

Blok otomatisasi adalah inti dari skrip otomatisasi Anda. Di sini, Anda menentukan perilaku otomatisasi menggunakan pemicu, kondisi, dan tindakan.

automations:
  starters:
    # e.g. Motion detected
  condition:
    # e.g. Between two times
  actions:
    # e.g. Turn on lights

Untuk lebih memahami cara menggunakan editor skrip, buka codelab, lihat contoh skrip, atau cari cara memformat pemicu, kondisi, dan tindakan secara terpisah di Pusat Developer Google Home.

Pelengkapan otomatis

Editor skrip membantu memandu Anda dalam menulis skrip dengan memberikan saran pelengkapan otomatis berdasarkan pemicu, kondisi, dan tindakan yang tersedia saat: 

  • Kursor berada di tempat yang memiliki opsi yang valid. Misalnya, setelah "- type: ".
  • Anda mengetik kode dengan saran yang valid. Anda akan melihat daftar filter saran saat mengetik.

Anda memulai pelengkapan otomatis secara manual menggunakan pintasan Ctrl+Spasi.

Tekan Enter untuk memilih saran dari daftar. Pelengkapan otomatis akan mengisi kolom tambahan berdasarkan struktur yang Anda pilih.

Tips: Anda dapat menggunakan pelengkapan otomatis untuk menemukan perintah atau status perangkat yang tersedia untuk perangkat Anda, dan perangkat yang tersedia untuk perintah atau status perangkat tertentu. 

Agar Anda dapat menemukan perintah atau status perangkat yang tersedia untuk perangkat, saat menulis skrip, masukkan kunci "device: " terlebih dahulu, lalu kunci "type: ". Fitur pelengkapan otomatis akan menampilkan daftar status atau perintah yang tersedia untuk perangkat tersebut.

Contoh

starters:
- device: LED lights - Living Room
- type:

Agar Anda dapat menemukan perangkat yang tersedia untuk perintah atau status perangkat tertentu, masukkan kunci "type: " terlebih dahulu, lalu kunci "device: ".  Fitur pelengkapan otomatis akan menampilkan daftar perangkat yang tersedia di rumah Anda yang mendukung status atau perintah tersebut.

Contoh

starters:
- type: device.state.OnOff
- device:

Pemicu, kondisi, dan tindakan

Otomatisasi terdiri dari pemicu, kondisi, dan tindakan perangkat. Komponen ini menentukan perilaku otomatisasi Anda. 

Beberapa pemicu, kondisi, dan tindakan memerlukan jenis pasangan nilai kunci perbandingan tertentu untuk membantu menyelesaikan logika otomatisasi dan memungkinkan skrip Anda mengetahui apa yang ingin dievaluasi. Nilai harus berupa jenis data yang kompatibel. Misalnya, status lampu menyala dapat berupa true atau false. Untuk memulai otomatisasi jika lampu menyala, Anda harus menggunakan:

state: on
is: true

Di bawah ini Anda akan menemukan detail tentang berbagai pemicu, kondisi, dan tindakan yang tersedia. Untuk melihat daftar lengkap pemicu, kondisi, dan tindakan, buka Pusat Developer Google Home.

Pemicu

Bagian pemicu pada skrip adalah tempat Anda menentukan hal yang akan membuat skrip berjalan. Pemicu didasarkan pada berbagai hal yang dapat dilakukan perangkat Anda atau atribut yang dapat diubah, termasuk status perangkat, waktu, dan peristiwa perangkat. Misalnya, Anda dapat menggunakan bohlam yang memiliki status OnOff, Brightness, dan ColorSetting. Untuk menyertakan beberapa pemicu, cantumkan setiap pemicu yang diawali dengan kunci " - type: ". Skrip Anda harus memenuhi setidaknya satu kondisi pemicu agar dapat dijalankan.

Lihat daftar lengkap pemicu yang didukung.

Jenis pemicu

Pemicu Asisten

Gunakan pemicu assistant.command untuk memulai skrip saat perangkat dengan Asisten mendengar perintah asisten yang dimulai dengan "Ok, Google".
Catatan: Jika otomatisasi dimulai dengan perintah suara dan ada tindakan Asisten dalam skrip, tindakan Asisten akan terjadi di perangkat yang mendengar perintah suara, meskipun perangkat lain telah ditentukan dalam skrip Anda.
Contoh: Mulai otomatisasi saat seseorang mengucapkan, "Ok, Google, party time".
starters:
- type: assistant.command.OkGoogle
  eventData: query
  is: party time

Pemicu peristiwa perangkat

Gunakan pemicu device.event untuk memulai skrip Anda saat peristiwa tertentu terjadi, misalnya saat seseorang membunyikan bel pintu atau sensor mendeteksi sesuatu. Catatan: Tidak semua peristiwa dapat didukung.

Contoh: Mulai otomatisasi saat bel pintu ditekan.
starters:
- type: device.event.DoorbellPress
  device: Doorbell - Front door
Contoh: Mulai otomatisasi saat kamera mendeteksi seseorang.
starters:
- type: device.event.PersonDetection
  device: Camera - Backyard 

Contoh: Mulai otomatisasi saat kamera mendeteksi gerakan.

starters:
- type: device.event.MotionDetection
  device: Camera - Backyard

Catatan:

  • Peristiwa terekam kamera memerlukan penyiapan kamera, bel pintu, atau layar Nest yang kompatibel, dan deteksi peristiwa.
  • Beberapa peristiwa terekam kamera mungkin memerlukan langganan Nest Aware atau kamera yang terhubung ke sumber listrik melalui kabel. Misalnya, deteksi suara hanya akan berfungsi di Nest Cam (outdoor atau indoor, baterai) jika menggunakan kabel.
  • Anda dapat menyembunyikan pemicu berdasarkan peristiwa perangkat dan status perangkat agar tidak terjadi lagi selama jangka waktu tertentu.

Pemicu status perangkat

Gunakan pemicu device.state untuk memulai otomatisasi berdasarkan status perangkat. Status adalah karakteristik suatu perangkat, misalnya saat suhu termostat Anda mencapai suhu tertentu, jika lampu menyala atau mati, atau saat sensor yang didukung mencapai batas yang ditentukan. Catatan: Anda dapat menyembunyikan pemicu berdasarkan peristiwa perangkat dan status perangkat agar tidak terjadi lagi selama jangka waktu tertentu.
Tambahkan status untuk pemicu status perangkat setelah "device.state". Misalnya, untuk memeriksa apakah perangkat aktif, Anda dapat menggunakan device.state.OnOff.
Untuk menggunakan pemicu device.state, mulailah dengan 3 kunci: type, device, dan state, diikuti dengan minimal satu pasangan nilai kunci perbandingan.
Kunci Nilai Contoh
type Pemicu status perangkat, dimulai dengan device.state device.state.ArmDisarm
device Nama seperti yang ditampilkan di aplikasi Google Home dengan nama ruangan: Device name - Room name Alarm - Front Door
state

Data status atau kolom pemicu yang ingin Anda periksa.

Cari pemicu yang ingin Anda gunakan di Pusat Developer Google Home untuk menemukan "Kolom yang Didukung" atau "Data Status".
isArmed

Tip: Agar Anda dapat menemukan status perangkat yang tersedia untuk perangkat, masukkan kunci "device: " terlebih dahulu, lalu kunci "type: " dalam skrip. Pelengkapan otomatis akan menampilkan daftar status yang tersedia untuk perangkat tersebut.

Anda dapat menggunakan pasangan nilai kunci perbandingan berikut dengan pemicu device.state:

Kunci perbandingan Jenis nilai yang didukung Contoh
is String | Number | Bool | Dynamic is: on
isNot String | Number | Bool | Dynamic isNot: cast
greaterThan
largerThanOrEqualTo
String | Number | Bool | Dynamic greaterThan: 1
lessThan
lessThanOrEqualTo
String | Number | Bool | Dynamic lessThan: 10
suppressFor Duration suppressFor: 1hour

 Contoh: Mulai otomatisasi jika volume TV antara 1 dan 10.

starters:
- type:  device.state.Volume
  device: TV - Living room
  state:  currentVolume
  greaterThan: 1
  lessThan: 10 

Pemicu status rumah

Gunakan pemicu home.state untuk memulai skrip berdasarkan ada atau tidaknya Anda di rumah. Hal ini dapat dideteksi dengan deteksi kehadiran.
Contoh: Mulai otomatisasi saat Anda berada di rumah.
starters:
- type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Pemicu waktu

Gunakan pemicu time untuk memulai otomatisasi berdasarkan hari dan waktu tertentu. Anda dapat menggunakan pasangan nilai kunci perbandingan berikut dengan pemicu waktu:
Kunci perbandingan Jenis nilai yang didukung Contoh
before Time before: sunset
after Time after: 7:00 am
weekdays Weekday weekdays: MON

Contoh: Mulai otomatisasi pada hari Senin dan Selasa, 30 menit setelah matahari terbit.

starters:
- type: time.schedule
  at: sunrise+30min
  weekdays:
  - MON
  - TUE

Cara menyembunyikan pemicu

Gunakan tombol perbandingan suppressFor untuk memberi tahu otomatisasi agar mengabaikan pemicu selama jangka waktu tertentu. Misalnya, saat kamera mendeteksi seseorang, ucapkan “Seseorang ada di pintu”, lalu jangan buat pengumuman lagi selama 10 menit ke depan meskipun kamera masih mendeteksi seseorang.

Contoh: Jika seseorang berjalan melalui lorong saya pada pagi hari untuk pertama kalinya, buka semua tirai saya, lalu sembunyikan pemicu ini selama 20 jam ke depan.

metadata:
  name: Open Blinds
  description: Open blinds in the morning after motion detected
automations:
  starters:
  - type: device.event.MotionDetection
    device: Camera - Hallway
    suppressFor: 20hours
  condition:
    type: time.between
    after: 5:00     
    before: 12:00   
  actions:     
  - type: device.command.OpenClose
    openPercent: 100
  devices:
  - Blinds1 - Living Room
  - Blinds2 - Family Room

Kondisi

Kondisi adalah batasan opsional terkait kapan otomatisasi Anda harus berjalan. Jika Anda menyertakan kondisi, skrip hanya akan berjalan jika kondisi terpenuhi. Banyak pemicu juga dapat digunakan sebagai kondisi, serta dapat digabungkan dengan operator logis and, or, dan not untuk mengekspresikan pemeriksaan kondisi yang lebih kompleks.
type: or
conditions:
- type: time.between
  before: sunrise
  after: sunset
  weekdays:
  - MON
  - TUE
- type: device.state.Volume
  device: My TV - Living Room
  state: currentVolume
  greaterThan: 1
  lessThan: 10

Dalam contoh ini, ada satu kondisi waktu dan satu kondisi device.state. Skrip ini akan berjalan jika waktunya antara matahari terbenam dan matahari terbit pada hari Senin atau Selasa, atau jika volume TV antara 1 dan 10.

Anda dapat menggunakan jenis kondisi berikut:

Operator kondisi

Kondisi AND

Jika Anda menggunakan kondisi and, skrip hanya akan berjalan jika semua kondisi turunan terpenuhi.

Contoh: Mulai otomatisasi jika TV menyala DAN waktunya setelah pukul 18.00.

condition:
  type: and
  conditions:
  - type: device.state.OnOff
    device: TV - Living Room
    state: on
    is: true
  - type: time.between
    after: 6:00 pm

Kondisi OR

Jika Anda menggunakan kondisi or, skrip akan berjalan saat salah satu kondisi turunan terjadi.

Contoh: Mulai otomatisasi jika TV menyala ATAU waktunya setelah pukul 18.00.

condition:
  type: or
  conditions:
  - type: device.state.OnOff
    device: TV - Living Room
    state: on
    is: true
  - type: time.between
    after: 6:00 pm

Kondisi NOT

Jika Anda menggunakan kondisi or, skrip tidak dapat berjalan jika kondisi turunan terjadi.

Contoh: Mulai otomatisasi jika waktunya bukan antara pukul 18.00 hingga 20.00.

condition:
  type: not
  condition:
    type: time.between
    after: 6:00pm
    before: 8:00pm

Kondisi status perangkat

Gunakan kondisi device.state untuk membatasi kapan skrip dapat terjadi berdasarkan status perangkat saat skrip dimulai. Kondisi device.state mirip dengan pemicu device.state, kecuali bahwa kondisi ini membatasi situasi yang memungkinkan skrip Anda terjadi, bukan memberi tahu kapan skrip harus memulai.
Tambahkan status untuk kondisi status perangkat setelah "device.state". Misalnya, untuk memeriksa apakah perangkat aktif, Anda dapat menggunakan device.state.OnOff.
Untuk menggunakan kondisi device.state, mulailah dengan 3 kunci: type, device, dan state, diikuti dengan minimal satu pasangan nilai kunci perbandingan.
Kunci Nilai Contoh
type Kondisi status perangkat, dimulai dengan device.state device.state.OnOff
device Nama seperti yang ditampilkan di aplikasi Google Home dengan nama ruangan: Device name - Room name Chromecast - Living Room
state Status awal yang ingin Anda periksa. Cari kondisi status perangkat yang ingin Anda gunakan di Pusat Developer Google Home. state: on

Tip: Agar Anda dapat menemukan status perangkat yang tersedia untuk perangkat, masukkan kunci "device: " terlebih dahulu, lalu kunci "type: " dalam skrip. Pelengkapan otomatis akan menampilkan daftar status yang tersedia untuk perangkat tersebut.

Anda dapat menggunakan pasangan nilai kunci perbandingan berikut dengan kondisi device.state:

Kunci perbandingan Jenis nilai yang didukung Contoh
is String | Number | Bool | Dynamic is: on
isNot String | Number | Bool | Dynamic isNot: cast
greaterThan
greaterThanOrEqualTo
String | Number | Bool | Dynamic greaterThan: 1
lessThan
lessThanOrEqualTo
String | Number | Bool | Dynamic lessThan: 10

Contoh: Mulai otomatisasi jika termostat mendeteksi tingkat kelembapan di atas 55%.

condition:
  type: device.state.TemperatureSetting
  device: My Thermostat - Living Room
  state: thermostatHumidityAmbient
  greaterThan: 55

Kondisi status rumah

Gunakan kondisi home.state.HomePresence untuk membatasi kapan skrip dapat terjadi berdasarkan kehadiran seseorang di rumah.

Catatan: Sebelum membuat skrip yang menggunakan kondisi home.state.HomePresence, pastikan Anda menyiapkan deteksi kehadiran di aplikasi Google Home dan deteksi kehadiran itu berfungsi seperti yang diharapkan. Kehadiran di rumah dapat ditentukan berdasarkan lokasi ponsel anggota keluarga, sensor di beberapa perangkat Nest, atau dengan beralih mode Di Rumah atau Pergi secara manual di aplikasi Google Home.

Pelajari lebih lanjut deteksi kehadiran serta Rutinitas pergi dan di rumah:

Anda dapat menggunakan pasangan nilai kunci perbandingan berikut dengan kondisi home.state.HomePresence:
Kunci perbandingan Jenis nilai yang didukung Contoh
is String ("DI RUMAH" atau "PERGI") is: away
isNot String ("DI RUMAH" atau "PERGI") isNot: HOME
for Duration for: 30min
suppressFor Duration suppressFor: 1hour

Contoh: Kondisi home.state.HomePresence akan memulai otomatisasi jika kehadiran Anda disetel ke HOME (DI RUMAH).

condition:
  type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Kondisi waktu

Gunakan kondisi time.between untuk membatasi kapan skrip Anda dapat terjadi. Anda dapat menggunakan pasangan nilai kunci perbandingan berikut dengan kondisi time.between:
Kunci perbandingan Jenis nilai yang didukung Contoh
before Time before: sunset
after Time after: 7:00 am
weekdays Weekday weekdays: MON

Contoh: Hanya mulai otomatisasi pada akhir pekan sebelum pukul 10.00.

condition:
  type: time.between
  before: 10am
  weekdays:
  - SAT
  - SUN

Tindakan

Bagian tindakan pada skrip adalah tempat Anda mencantumkan tindakan yang Anda inginkan untuk perangkat. Untuk menyertakan beberapa tindakan, cantumkan setiap tindakan yang diawali dengan kunci "- type: ". Skrip Anda harus memiliki minimal satu tindakan agar dapat dijalankan. Sebagian besar tindakan dimulai dengan device.command.

Anda dapat menggunakan jenis tindakan berikut:

Tindakan Asisten

Gunakan tindakan assistant.command dengan speaker atau layar agar Asisten menyelesaikan tindakan seperti “'Turn off all lights' OR 'Tell me the weather'".

Dengan menggunakan perintah Asisten, Anda dapat memerintahkan perangkat berdasarkan ruangan atau seluruh rumah tanpa menggunakan nama perangkat tertentu. Tindakan ini dapat menghemat waktu karena perangkat berikutnya yang ditambahkan ke aplikasi Home dapat otomatis berfungsi dengan perintah ini. Perintah Asisten memerlukan speaker atau layar yang kompatibel untuk menjalankan tindakan ini.

Catatan: Jika otomatisasi dimulai dengan perintah suara dan ada tindakan Asisten dalam skrip, tindakan Asisten akan terjadi di perangkat yang mendengar perintah suara, meskipun perangkat lain telah ditentukan dalam skrip Anda.

Contoh: Gunakan “Turn on living room lights” untuk menyalakan semua lampu di ruang keluarga.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn on living room lights  
  devices: My Speaker - Room Name 
Contoh: Gunakan “Turn off all lights” untuk mematikan semua lampu yang disiapkan di rumah Anda.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn off all lights  
  devices: My Speaker - Room Name 
Contoh: Anda dapat meminta speaker atau layar untuk membuat pengumuman.
actions:
- type: assistant.command.Broadcast
  devices:  
  - My Speaker 1 - Room Name
  - My Speaker 2 - Room Name
  message: It’s dinner time.
     

Tindakan Asisten juga memungkinkan Anda melakukan tindakan kustom seperti:

  • "Play Hello by Adele from YouTube Music on bedroom speaker" 
  • "Play funny cat videos from YouTube on Living Room Display"
  • "What's the weather like tomorrow?" 
  • "Tell me a joke" 
  • "Show me the driveway camera on home office display"

Catatan: Tindakan Asisten yang mengaktifkan Voice Match atau hasil personal tidak akan berfungsi dengan otomatisasi anggota keluarga yang dibuat dengan editor skrip.

Tindakan perangkat

Gunakan tindakan device.command untuk mengontrol atau menyesuaikan perangkat. Setiap perintah tindakan memiliki kumpulan karakteristik dan strukturnya sendiri. Anda dapat menambahkan perintah ke skrip dengan menambahkan tindakan perintah untuk perangkat setelah "device.command". Misalnya, untuk mengaktifkan perangkat, Anda dapat menggunakan device.command.OnOff. Tindakan device.command harus menyertakan info berikut:
Kunci Nilai Contoh
type Tindakan perangkat, dimulai dengan device.command device.command.OpenClose
devices Nama perangkat seperti yang ditampilkan di aplikasi Google Home dengan nama ruangan: Nama perangkat - Nama ruangan. Untuk menyertakan beberapa perangkat, buat daftar. Blinds - Bedroom

Tips: Agar dapat menemukan tindakan atau perintah yang tersedia untuk perangkat Anda, masukkan kunci "perangkat:" terlebih dahulu, lalu kunci "jenis:". Pelengkapan otomatis akan menampilkan daftar tindakan yang tersedia untuk perangkat tersebut.

Banyak tindakan device.command memiliki kunci tambahan yang menentukan input yang diperlukan untuk perintah. Misalnya, device.command.ThermostatTemperatureSetpoint memerlukan pasangan nilai kunci thermostatTemperatureSetpoint untuk memberi tahu termostat tentang suhu baru yang Anda inginkan.

Untuk mempelajari lebih lanjut cara menggunakan perintah, cari tindakan terkait di Pusat Developer Google Home lalu ikuti struktur tindakan yang ingin Anda gunakan.

Contoh: Nyalakan TV di ruang keluarga.

actions:
  type: device.command.OnOff
  devices: TV - Living room
  on: true

 Contoh: Nyalakan lampu, lalu matikan setelah 5 menit.

actions:
- type: device.command.OnOff
  devices: Light A - Living Room
  on: true
- type: time.delay
  for: 5min
- type: device.command.OnOff
  devices: Light A - Living Room
  on: false

Tindakan notifikasi

Gunakan tindakan home.command.Notification untuk meminta skrip mengirimkan notifikasi ke perangkat seluler anggota rumah. Misalnya, Anda bisa mendapatkan notifikasi saat peralatan yang terhubung ke steker smart dinonaktifkan atau offline.

actions:
- type: home.command.Notification
  members:
  - Alex - cloudysanfrancisco@gmail.com
  - Kim - jeffersonloveshiking@gmail.com
  title: It’s movie time!
  body: Join me in the living room
 

Tindakan waktu

Gunakan tindakan time.delay agar skrip Anda menunggu selama waktu yang ditentukan di sela-sela dua tindakan dalam daftar Anda, bukan melakukan semua tindakan sekaligus. Anda dapat menambahkan beberapa penundaan ke skrip. Misalnya, Anda dapat membuat skrip menunggu 10 detik di sela-sela setiap tindakan.
Contoh: Nyalakan lampu, lalu matikan setelah penundaan 30 detik.
actions:
- type: device.command.OnOff
  devices: 
    - Bedside Lamp - Bedroom
    - Ceiling Light - Bedroom
  on: true
- type: time.delay
  for: 30sec
- type: device.command.OnOff
  devices: 
    - Bedside Lamp - Bedroom
    - Ceiling Light - Bedroom
  on: false

Referensi

Berlatih menulis skrip

Untuk memulai, kita akan membuat otomatisasi yang sangat sederhana tetapi populer: "Matikan lampu saat TV dinyalakan".

Catatan: Jika tidak memiliki Chromecast, lampu smart, atau perangkat yang sebanding, Anda tetap dapat mengikuti latihan ini untuk memahami proses pembuatan skrip, tetapi skrip Anda tidak akan berjalan pada akhirnya.

  1. Buka home.google.com/automations dan login ke akun Anda.
  2. Klik Tambahkan baru .
  3. Isi informasi metadata. Dalam skrip ini, nama = TV on lights off, dan deskripsi = urn off lights when TV turns on. Pastikan Anda memformat skrip dengan benar.
    metadata:
      name: TV on lights off
      description: Turn off lights when TV turns on.
  4. Sekarang kita akan membuat otomatisasi. Tambahkan pemicu dengan membuat baris baru di bagian "starters:" yang dimulai dengan "- type: ". 
    • Untuk membuat baris baru, indentasi baris dengan 2 spasi atau tekan tab sekali setelah awal "starters:" seperti ditunjukkan di bawah ini.
    • Untuk menyertakan beberapa pemicu, setiap pemicu harus diawali dengan tanda hubung dan spasi.
      metadata:
        name:  TV on lights off
        description:  Turn off lights when TV turns on
      automations:
        starters:
        - type:
  5. Tambahkan pemicu device.state. Perlu diingat, untuk menggunakan pemicu device.state, Anda memerlukan 3 kunci: type, device, dan state, diikuti setidaknya satu pasangan nilai kunci perbandingan. Editor skrip akan membantu Anda membuat struktur dengan memberikan saran pelengkapan otomatis berdasarkan pemicu, kondisi, dan tindakan yang tersedia. Dalam skrip ini:
    • Jenis = device.state.OnOff. Ini adalah status perangkat yang akan dievaluasi untuk memulai otomatisasi.  
    • Perangkat = Chromecast - Living Room. Ini adalah nama perangkat seperti yang muncul di aplikasi Google Home. 
    • Status = on. Aktif adalah kolom yang didukung atau data Status untuk status perangkat OnOff.
    • Pasangan nilai kunci perbandingan = is: true. Nilai untuk kunci perbandingan ini adalah jenis data primitif. Skrip akan berjalan jika TV dinyalakan.
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true 

      Sebagai perbandingan, mari kita lihat skrip serupa dengan pemicu yang berbeda. Pada skrip di bawah, otomatisasi dimulai saat volume antara 1 dan 10, bukan saat TV dinyalakan. Untuk melakukan perubahan ini, kita mengganti status OnOff dengan Volume dan mengubah status menjadi currentVolume agar sesuai dengan atribut baru. Kita juga mengubah pasangan nilai kunci perbandingan menjadi dua pasangan bertingkat yang membuat rentang: greaterThan: 1 dan lessThan: 10. Untuk contoh lainnya, berikut ini daftar pemicu selengkapnya yang dapat Anda gunakan.

      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on
      automations:
        starters:
        - type: device.state.Volume
          device: Chromecast - Living Room
          state: currentVolume
          greaterThan: 1
          lessThan: 10
  6. Klik Simpan untuk menyimpan skrip Anda kapan saja. Saat Anda menyimpan skrip, editor skrip akan otomatis memvalidasi skrip dan memeriksa error. Skrip yang tidak valid tidak dapat berjalan.
  7. Sekarang tambahkan tindakan ke skrip Anda. Untuk menambahkan tindakan, buat baris baru di bagian "actions:" yang diawali dengan " - type".  Untuk membuat baris baru, indentasi baris dengan dua spasi setelah awal "tindakan:" seperti ditunjukkan di bawah ini.
    • Untuk menyertakan tindakan tambahan, setiap tindakan harus diawali dengan tanda hubung dan spasi.
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on.
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true
        actions:
        - type: 
  8. Untuk mematikan lampu, kita akan menggunakan tindakan device.command. Untuk menggunakan tindakan device.command, kita akan menyertakan informasi berikut: 
    • Jenis = device.command.OnOff. Ini adalah nama perintah atau tindakan. Perlu diketahui bahwa perintah dapat memiliki beberapa perintah yang disusun di perangkat Anda, dan setiap perintah memiliki statusnya sendiri. 
    • Perangkat = daftar yang berisi Floor Lamp - Living Room dan Overhead Light - Living Room. Nilai ini adalah nama-nama lampu kita, seperti yang muncul di aplikasi Google Home. Untuk menyertakan beberapa lampu, kita cantumkan setiap perangkat di baris terpisah, masing-masing dimulai dengan tanda hubung.
    • Status perintah yang diinginkan = on: false. Baris ini memberi tahu lampu kita agar mati.
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on.
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true
        actions:
        - type: device.command.OnOff
          devices:
          - Floor Lamp - Living Room
          - Overhead Light - Living Room 
          on: false
  9. Klik Simpan untuk menyimpan skrip Anda. Jika tidak ada error, skrip akan otomatis diaktifkan: setiap kali TV dinyalakan, lampu akan mati. Jika Anda belum siap menjalankan skrip, jeda skrip Anda dengan menonaktifkan tombol Aktifkan.

Untuk latihan lainnya, coba ubah beberapa skrip agar menggunakan berbagai pemicu, jenis data, beberapa tindakan, atau kondisi tambahan seperti time.between. Anda juga dapat meninjau contoh skrip dan melihat codelab untuk mempelajari lebih lanjut. Untuk mengetahui info detail terkait pemicu, tindakan, dan kondisi, lihat Pusat Developer Google Home.

Bantuan terkait otomatisasi dengan skrip

  • Temukan bantuan untuk skrip dan pelajari yang sedang dikerjakan orang lain di komunitas Otomatisasi Google Home.
  • Agar otomatisasi berfungsi, skrip harus menggunakan kode yang valid. Jika terjadi error, pesan akan muncul. Pelajari lebih lanjut error dan peringatan di editor skrip. 
  • Untuk memvalidasi kode Anda, klik atau ketuk Validasi di editor skrip, atau coba simpan skrip Anda. Berikut ini beberapa error umum yang harus diwaspadai:
    • Pastikan Anda menggunakan nama perangkat yang benar dalam format Nama perangkat - Nama ruangan. Jika Anda tidak yakin, periksa nama perangkat Anda di aplikasi Google Home.
    • Pastikan perangkat mendukung fungsi yang Anda inginkan. Anda juga dapat menggunakan pelengkapan otomatis untuk menemukan opsi yang tersedia.
    • Pastikan Anda menyertakan tindakan. Tindakan diperlukan agar otomatisasi dapat berjalan.
  • Jika skrip tersimpan, tetapi otomatisasi tidak berperilaku seperti yang diharapkan, pastikan secara manual bahwa setiap komponen dalam skrip berfungsi. Misalnya, jika Anda menulis skrip untuk menyalakan lampu dan mengubah kecerahan saat matahari terbenam, coba selesaikan tugas ini dengan perintah asisten untuk mengonfirmasi bahwa setiap fungsi berjalan. Anda juga dapat memastikan bahwa:
    • Perangkat Anda telah ditambahkan atau ditautkan di aplikasi Google Home.
    • Perangkat Anda telah terhubung dan sedang online.
    • Nama, pemicu, kondisi, dan tindakan perangkat ditulis dengan benar.
    • Skrip Anda memiliki indentasi dan format yang tepat.
  • Dengan Google Home untuk web, Anda juga dapat mengakses Log otomatisasi  di bawah skrip untuk melihat histori otomatisasi dan mengidentifikasi potensi masalah. Pelajari lebih lanjut jenis pesan yang Anda lihat di log Otomatisasi.
  • Coba gunakan fitur AI generatif eksperimental dari editor skrip untuk mendeskripsikan otomatisasi yang Anda inginkan, lalu fitur tersebut akan membuat draf skrip untuk Anda tinjau serta edit.
  • Pelajari lebih lanjut dasar-dasar Rutinitas dan cara memecahkan masalahnya.
  • Pelajari lebih lanjut cara membuat dan mengedit otomatisasi dengan skrip.

Apakah ini membantu?

Bagaimana cara meningkatkannya?
Telusuri
Hapus penelusuran
Tutup penelusuran
Menu utama
5545128675187875178
true
Pusat Bantuan Penelusuran
true
true
true
true
true
1633396
false
false