Local Home SDK meningkatkan integrasi smart home Anda dengan Asisten Google dengan menambahkan jalur fulfillment lokal untuk mengarahkan intent smart home.
Local Home SDK menyediakan dua kemampuan: Eksekusi Lokal dan Kueri Lokal.
- Eksekusi Lokal memberikan kemampuan untuk memenuhi perintah dengan mengirimkan
intent
EXECmelalui jalur fulfillment lokal, alih-alih melakukan panggilan API cloud. Misalnya, permintaan 'Nyalakan lampu' dapat ditangani oleh Eksekusi Lokal. - Kueri Lokal memberikan kemampuan untuk menangani kueri terkait
status perangkat dengan mengirimkan intent
QUERYmelalui jalur fulfillment lokal. Misalnya, Kueri Lokal akan memenuhi kueri 'Apakah lampu saya menyala?' tanpa melakukan panggilan API cloud.
SDK ini memungkinkan Anda menulis aplikasi fulfillment lokal, menggunakan TypeScript atau JavaScript, yang berisi logika bisnis smart home Anda. Perangkat Google Home atau perangkat Google Nest dapat memuat dan menjalankan aplikasi Anda di perangkat. Aplikasi Anda berkomunikasi langsung dengan perangkat smart yang ada melalui Wi-Fi di jaringan area lokal (LAN) untuk memenuhi perintah pengguna, melalui protokol yang ada.
Integrasi SDK menawarkan peningkatan performa pada integrasi Cloud-to-cloud Anda, termasuk latensi yang lebih rendah dan keandalan yang lebih tinggi. Pemenuhan lokal didukung untuk semua jenis perangkat dan ciri perangkat, kecuali yang menggunakan verifikasi tambahan oleh pengguna.
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 mengirimkan intent IDENTIFY untuk menentukan apakah perangkat dapat dikontrol secara lokal, dengan membandingkan ID perangkat dalam respons IDENTIFY dengan ID yang ditampilkan oleh respons SYNC sebelumnya. Jika perangkat yang terdeteksi adalah
hub atau bridge, 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 membuat jalur fulfillment lokal ke perangkat Google Home atau perangkat Google Nest pengguna, lalu merutekan perintah pengguna untuk fulfillment lokal.
Saat pengguna memicu integrasi Cloud-to-cloud yang memiliki jalur fulfillment lokal, Asisten akan mengirimkan intent EXECUTE atau intent QUERY ke perangkat Google Home atau perangkat Google Nest, bukan ke fulfillment cloud. Kemudian, perangkat akan menjalankan aplikasi fulfillment lokal untuk memproses intent.
Platform Local Home bersifat non-deterministik dalam memilih perangkat Google Home atau perangkat Google Nest yang akan memicu perintah. Intent EXECUTE dan QUERY dapat berasal dari perangkat Google Home atau perangkat Google Nest mana pun yang ditentukan dalam struktur Home Graph yang sama dengan perangkat target.
Aplikasi fulfillment lokal
Aplikasi fulfillment lokal berisi logika bisnis untuk memproses intent yang dikirim oleh platform Local Home dan mengakses perangkat smart Anda melalui jaringan area lokal. Tidak diperlukan modifikasi hardware untuk mengintegrasikan fulfillment lokal. Aplikasi memenuhi permintaan integrasi Cloud-to-cloud dengan mengirimkan perintah kontrol ke perangkat smart melalui protokol lapisan aplikasi, termasuk HTTP, TCP, atau UDP. Jika jalur fulfillment lokal gagal, fulfillment 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 dikirim Google setelah menemukan perangkat yang dapat dikontrol secara lokal (IDENTIFY,REACHABLE_DEVICES). Class ini juga memenuhi perintah pengguna (EXECUTE), dan menjawab kueri pengguna tentang status perangkat saat ini (QUERY).
Selama pengembangan, Anda dapat membangun dan menguji aplikasi dengan memuatnya di server hosting atau mesin pengembangan lokal Anda sendiri. Dalam produksi, Google menghosting aplikasi Anda di lingkungan sandbox JavaScript yang aman di perangkat Google Home atau Google Nest 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 sesuai permintaan saat platform Local Home menemukan perangkat lokal baru yang cocok dengan konfigurasi pemindaian project, atau memiliki intent tertunda untuk dikirimkan 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 Home Lokal memulai ulang aplikasi Anda hanya jika ada intent baru yang akan dikirim dan resource memori yang cukup untuk menjalankan aplikasi.
Platform Local Home akan menghapus aplikasi Anda setelah waktu tunggu tidak ada aktivitas saat pengguna
membatalkan tautan akunnya atau tidak ada lagi perangkat yang mendukung fulfillment
lokal yang terkait dengan agentUserId pengguna.
Perangkat yang didukung
Platform Local Home menjalankan aplikasi fulfillment lokal Anda di perangkat Google Home atau perangkat Google Nest yang didukung. Tabel berikut menjelaskan perangkat yang didukung, dan runtime yang digunakan di setiap perangkat. Untuk mempelajari lebih lanjut persyaratan runtime, 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 | Display | Chrome |
| Nest Hub Max | Display | Chrome |
| Nest Wifi | Router | Node.js |
| Titik | Chrome |
Lingkungan eksekusi
Lingkungan eksekusi untuk aplikasi fulfillment lokal Anda bergantung pada perangkat Anda. Platform Local Home mendukung lingkungan runtime berikut:
- Chrome: Aplikasi fulfillment lokal Anda dijalankan dalam konteks browser Chrome
windowyang menjalankan Chrome M80 atau yang lebih baru dengan dukungan untuk 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 gabungkan dependensi Anda ke dalam satu file JavaScript menggunakan konfigurasi bundler yang disediakan oleh Local Home SDK dan kemas kode sumber Anda sebagai Immediately-invoked Function Expression (IIFE).
Alur implementasi
Untuk menggunakan Local Home SDK untuk integrasi smart home, Anda harus melakukan tugas berikut:
| 1 | Menyiapkan konfigurasi pemindaian | Konfigurasikan Google Home Developer Console dengan parameter yang diperlukan agar Asisten dapat menemukan perangkat yang dapat dikontrol secara lokal. |
| 2 | Memperbarui respons SYNC di fulfillment cloud Anda | Dalam fulfillment cloud Anda, ubah pengendali permintaan SYNC untuk mendukung kolom
otherDeviceIds yang digunakan platform untuk membuat 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) menggunakan Google Home Test Suite. |
Sebelum memulai
- Pelajari dasar-dasar pembuatan integrasi Cloud-to-cloud.
- Di Google Home Developer Console, pastikan Anda sudah memiliki project smart home dan penautan akun telah dikonfigurasi.
- Pastikan Anda login dengan Akun Google yang sama di Developer Console dan di Asisten di perangkat pengujian Anda.
- Anda memerlukan lingkungan Node.js untuk menulis aplikasi. Untuk menginstal Node.js dan npm, sebaiknya gunakan Node Version Manager.
- Agar dapat menggunakan Local Home SDK versi terbaru, Anda harus mendaftarkan perangkat pengujian ke Program Pratinjau Cast.