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:- Buat otomatisasi smart home tingkat lanjut dengan editor skrip.
- Pemicu, kondisi, dan tindakan yang didukung
- Buka codelab kami untuk melihat contoh terpandu tentang cara membuat skrip pertama Anda.
Praktik untuk menulis otomatisasi dengan skrip dan contoh skrip lainnya.
Kunjungi codelabDasar-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 |
|
Number | Bilangan bulat atau desimal |
String |
Teks biasa Nilai string hanya memerlukan tanda kutip jika diawali dengan |
Date |
Bulan dan Hari. Formatnya adalah BB-HH atau BB/HH.
|
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
|
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.
|
Weekday |
|
Duration |
Periode waktu.
|
ColorHex |
Kode heksadesimal enam digit yang merepresentasikan warna. Tidak ada awalan #.
|
Temperature |
Data suhu. Selalu tambahkan C atau F untuk menunjukkan Celsius atau Fahrenheit.
|
ColorTemperature |
Suhu warna dalam Kelvin.
|
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
- 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 |
state: on |
Indentasi Indentasi menunjukkan struktur dan hierarki serta menentukan pasangan kunci bertingkat. Dalam contoh, kunci induk = |
|
Tanda hubung Tanda hubung yang diikuti spasi menentukan item daftar. |
|
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
assistant.command
untuk memulai skrip saat perangkat dengan Asisten mendengar perintah asisten yang dimulai dengan "Ok, Google".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.
starters: - type: device.event.DoorbellPress device: Doorbell - Front door
starters: - type: device.event.PersonDetection device: Camera - Backyard
Contoh: Mulai otomatisasi saat kamera mendeteksi gerakan.
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
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.device.state
". Misalnya, untuk memeriksa apakah perangkat aktif, Anda dapat menggunakan device.state.OnOff
.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 |
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
home.state
untuk memulai skrip berdasarkan ada atau tidaknya Anda di rumah. Hal ini dapat dideteksi dengan deteksi kehadiran.starters: - type: home.state.HomePresence state: homePresenceMode is: HOME
Pemicu waktu
time
untuk memulai otomatisasi berdasarkan hari dan waktu tertentu. Anda dapat menggunakan pasangan nilai kunci perbandingan berikut dengan pemicu waktu: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
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
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.device.state
". Misalnya, untuk memeriksa apakah perangkat aktif, Anda dapat menggunakan device.state.OnOff
.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 |
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
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:
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
time.between
untuk membatasi kapan skrip Anda dapat terjadi. Anda dapat menggunakan pasangan nilai kunci perbandingan berikut dengan kondisi time.between
: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
actions: - type: assistant.command.OkGoogle okGoogle: Turn off all lights devices: My Speaker - Room Name
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
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
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.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.
- Buka home.google.com/automations dan login ke akun Anda.
- Klik Tambahkan baru .
- 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.
- 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:
- Untuk membuat baris baru, indentasi baris dengan 2 spasi atau tekan tab sekali setelah awal "
- Tambahkan pemicu
device.state
. Perlu diingat, untuk menggunakan pemicu device.state, Anda memerlukan 3 kunci:type,
device
, danstate
, 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
denganVolume
dan mengubah status menjadicurrentVolume
agar sesuai dengan atribut baru. Kita juga mengubah pasangan nilai kunci perbandingan menjadi dua pasangan bertingkat yang membuat rentang:greaterThan: 1
danlessThan: 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
- Jenis =
- 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.
- 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:
- Untuk menyertakan tindakan tambahan, setiap tindakan harus diawali dengan tanda hubung dan spasi.
- 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
danOverhead 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
- Jenis =
- 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.