Selamat datang di Pusat Developer Google Home, tujuan baru untuk mempelajari cara mengembangkan tindakan smart home. Catatan: Anda akan terus membuat tindakan di konsol Actions.

Pemenuhan pesanan lokal

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Local Home SDK meningkatkan integrasi smart home Anda dengan Asisten Google dengan menambahkan jalur pemenuhan lokal untuk merutekan intent smart home.

SDK ini memungkinkan Anda menulis aplikasi fulfillment lokal menggunakan TypeScript atau JavaScript yang berisi logika bisnis smart home Anda. Perangkat Google Home atau Google Nest dapat memuat dan menjalankan aplikasi Anda di perangkat. Aplikasi Anda berkomunikasi langsung dengan perangkat smart yang ada melalui Wi-Fi pada jaringan area lokal (LAN) untuk memenuhi perintah pengguna, melalui protokol yang ada.

Integrasi SDK menawarkan peningkatan performa untuk Action smart home, termasuk latensi yang lebih rendah dan keandalan yang lebih tinggi. Fulfillment lokal didukung untuk semua jenis perangkat dan fitur perangkat, kecuali yang menggunakan verifikasi pengguna sekunder.

Mulai membuat Coba contoh

Memahami cara kerjanya

Setelah mendapatkan respons SYNC dari fulfillment cloud Anda, platform Local Home akan memindai jaringan area lokal pengguna menggunakan mDNS, siaran UDP, atau UPnP untuk menemukan perangkat smart yang terhubung ke Asisten.

Platform akan mengirim intent IDENTIFY untuk menentukan apakah perangkat dapat dikontrol secara lokal atau tidak, dengan membandingkan ID perangkat dalam respons IDENTIFY dengan yang ditampilkan oleh respons SYNC sebelumnya. Jika perangkat yang terdeteksi adalah hub atau jembatan, platform akan mengirimkan intent REACHABLE_DEVICES dan memperlakukan hub sebagai perangkat proxy untuk berkomunikasi secara lokal.

Saat menerima respons yang mengonfirmasi perangkat lokal, platform akan menetapkan jalur fulfillment lokal ke perangkat Google Home atau Google Nest pengguna, dan kemudian merutekan perintah pengguna untuk fulfillment lokal.

Saat pengguna memicu Action smart home yang memiliki jalur fulfillment lokal, Asisten akan mengirim intent EXECUTE atau intent QUERY ke perangkat Google Home atau Google Nest, bukan fulfillment cloud. Perangkat kemudian menjalankan aplikasi fulfillment lokal untuk memproses intent.

Gambar ini menunjukkan alur eksekusi untuk fulfillment lokal. Jalur eksekusi menangkap intent pengguna dari ponsel dengan Asisten Google, kemudian intent pengguna tersebut diproses oleh Google Cloud, lalu dieksekusi secara lokal di perangkat Google Home dan perintah dikeluarkan langsung ke hub perangkat atau langsung ke perangkat. Cloud developer tersedia sebagai
            fallback cloud.
Gambar 1: Menambahkan jalur fulfillment lokal untuk Action smart home Anda.

Platform Local Home bersifat tidak deterministik dalam memilih perangkat Google Home atau Google Nest mana yang akan memicu perintah. Intent EXECUTE dan QUERY mungkin berasal dari perangkat Google Home atau Google Nest apa pun yang ditentukan dalam struktur Grafik Rumah yang sama dengan perangkat target.

Aplikasi fulfillment lokal

Aplikasi fulfillment lokal berisi logika bisnis untuk memproses intent yang dikirim oleh platform Home Local dan mengakses perangkat smart Anda melalui jaringan area lokal. Tidak ada modifikasi hardware yang diharapkan untuk mengintegrasikan fulfillment lokal. Aplikasi memenuhi permintaan Action smart home dengan mengirimkan perintah kontrol ke perangkat smart melalui protokol lapisan aplikasi, termasuk HTTP, TCP, atau UDP. Jika jalur pemenuhan lokal gagal, pemenuhan cloud Anda akan digunakan sebagai jalur eksekusi penggantian.

Untuk mendukung pembuatan aplikasi, Local Home SDK menyediakan dua class utama berikut:

  • DeviceManager: Menyediakan metode untuk berkomunikasi dengan perangkat smart menggunakan TCP, soket UDP, atau permintaan HTTP.
  • App: Menyediakan metode untuk melampirkan pengendali untuk intent yang dikirimkan Google setelah menemukan perangkat yang dapat dikontrol secara lokal (IDENTIFY, REACHABLE_DEVICES). Class ini juga memenuhi perintah pengguna (EXECUTE), dan menjawab kueri pengguna pada status perangkat saat ini (QUERY).

Selama pengembangan, Anda dapat mem-build dan menguji aplikasi dengan memuatnya di server hosting atau mesin pengembangan lokal sendiri. Dalam produksi, Google menghosting aplikasi Anda di lingkungan sandbox JavaScript yang aman di perangkat Google Home atau Google Nest milik pengguna.

Report State API saat ini tidak didukung untuk fulfillment lokal. Google mengandalkan fulfillment cloud Anda untuk memproses permintaan ini.

Siklus proses aplikasi

Aplikasi fulfillment lokal Anda dimuat secara on demand saat platform Local Home menemukan perangkat lokal baru yang cocok dengan konfigurasi pemindaian project, atau memiliki intent yang tertunda untuk dikirim terkait dengan perangkat yang diidentifikasi sebelumnya.

Perangkat Google Home atau Google Nest memiliki keterbatasan memori dan aplikasi fulfillment lokal Anda dapat dihentikan kapan saja karena tekanan memori dalam sistem. Hal ini dapat terjadi jika aplikasi Anda mulai menggunakan terlalu banyak memori, atau jika sistem perlu menyediakan ruang untuk aplikasi lain. Platform Beranda Lokal akan memulai ulang aplikasi hanya jika ada intent baru untuk mengirimkan dan resource memori yang memadai agar aplikasi dapat berjalan.

Platform Beranda Lokal menghapus muatan aplikasi Anda setelah waktu tunggu tidak ada aktivitas saat pengguna membatalkan tautan akun mereka atau tidak ada lagi perangkat yang mendukung pemenuhan lokal yang terkait dengan agentUserId pengguna.

Perangkat yang didukung

Platform Local Home mengeksekusi aplikasi fulfillment lokal Anda di perangkat Google Home atau Google Nest yang didukung. Tabel berikut menjelaskan perangkat yang didukung, dan runtime yang digunakan di setiap perangkat. Untuk mempelajari persyaratan runtime lebih lanjut, lihat Lingkungan eksekusi.

Perangkat Jenis Lingkungan
Google Home Speaker Chrome
Google Home Mini Speaker Chrome
Google Home Max Speaker Chrome
Nest Mini Speaker Chrome
Nest Hub Layar Chrome
Nest Hub Max Layar Chrome
Nest Wifi Router Node.js
Poin Chrome

Lingkungan eksekusi

Lingkungan eksekusi untuk aplikasi fulfillment lokal Anda bergantung pada perangkat Anda. Platform Home Local mendukung lingkungan runtime berikut:

  • Chrome: Aplikasi fulfillment lokal Anda dijalankan dalam konteks browser Chrome window yang menjalankan Chrome M80 atau yang lebih baru dengan dukungan ECMAScript versi ES2018.
  • Node.js: Aplikasi fulfillment lokal Anda dijalankan sebagai skrip dalam proses Node.js yang menjalankan Node v10.x LTS atau yang lebih baru dengan dukungan untuk ECMAScript versi ES2018.

Struktur kode sumber

Sebaiknya kelompokkan dependensi Anda ke dalam satu file JavaScript menggunakan konfigurasi bundler yang disediakan oleh Local Home SDK dan mengemas kode sumber Anda sebagai Ekspresi Fungsi (Segera dipanggil) (IIFE).

Jalur implementasi

Agar dapat menggunakan Local Home SDK untuk integrasi smart home, Anda harus melakukan tugas-tugas berikut:

1 Menyiapkan konfigurasi pemindaian Konfigurasikan konsol Actions dengan parameter yang diperlukan oleh Asisten untuk menemukan perangkat yang dapat dikontrol secara lokal.
2 Memperbarui respons SINKRONISASI dalam fulfillment cloud Anda Dalam fulfillment cloud Anda, ubah pengendali permintaan SYNC untuk mendukung kolom otherDeviceIds yang digunakan platform untuk menetapkan jalur fulfillment lokal. Di kolom tersebut, tentukan ID perangkat yang dapat dikontrol secara lokal.
3 Mengimplementasikan aplikasi fulfillment lokal Gunakan Local Home SDK untuk membuat aplikasi JavaScript guna menangani intent IDENTIFY, EXECUTE, dan QUERY. Untuk perangkat proxy hub atau bridge, Anda juga harus menangani intent REACHABLE_DEVICES.
4 Menguji dan men-debug aplikasi Uji integrasi Anda (atau lakukan penilaian mandiri) dengan menggunakan Google Home Test Suite.

Sebelum memulai