Local Home SDK meningkatkan integrasi smart home Anda dengan Google Asisten dengan menambahkan jalur fulfillment lokal ke rute intent smart home.
SDK ini memungkinkan Anda menulis aplikasi fulfillment lokal, menggunakan TypeScript atau JavaScript, yang berisi logika bisnis {i> smart home<i} Anda. Perangkat Google Home atau Google Nest dapat memuat dan menjalankan aplikasi Anda di perangkat. Aplikasi Anda berkomunikasi langsung dengan smart yang ada perangkat melalui Wi-Fi pada jaringan area lokal (LAN) untuk memenuhi perintah pengguna, melalui protokol yang ada.
Integrasi SDK menawarkan peningkatan performa pada smart home Anda Tindakan, termasuk latensi lebih rendah dan keandalan yang lebih tinggi. Pemenuhan pesanan lokal adalah didukung untuk semua jenis perangkat dan karakteristik perangkat, kecuali yang menggunakan pengguna sekunder verifikasi.
Memahami cara kerjanya
Setelah mendapatkan respons SYNC
dari pemenuhan cloud Anda, platform Local Home memindai
jaringan area lokal menggunakan mDNS, UDP, atau UPnP untuk menemukan
perangkat smart yang terhubung ke Asisten.
Platform mengirim intent IDENTIFY
untuk menentukan apakah perangkat
dapat dikontrol secara lokal, dengan membandingkan ID perangkat dalam respons IDENTIFY
dengan nilai yang ditampilkan oleh respons SYNC
sebelumnya. Jika perangkat yang terdeteksi adalah
hub atau bridge, platform akan mengirimkan intent REACHABLE_DEVICES
dan memperlakukan
sebagai perangkat {i>proxy<i}
untuk berkomunikasi secara lokal.
Ketika menerima respons yang mengonfirmasi perangkat lokal, platform membuat jalur fulfillment lokal ke perangkat Google Home atau Google Nest pengguna, lalu merutekan perintah pengguna untuk fulfillment lokal.
Saat pengguna memicu Action smart home yang memiliki jalur fulfillment lokal,
Asisten mengirimkan EXECUTE
intent atau intent QUERY
ke objek
perangkat Google Home atau Google Nest, bukan fulfillment cloud. Perangkat kemudian
menjalankan aplikasi fulfillment lokal untuk memproses intent.
Platform Local Home tidak menentukan pemilihan perangkat Google Home atau Google Nest mana
memicu perintah. Intent EXECUTE
dan QUERY
dapat berasal dari
Perangkat Google Home atau Google Nest yang ditentukan dalam Home Graph yang sama
struktur sebagai perangkat target.
Aplikasi fulfillment lokal
Aplikasi fulfillment lokal berisi logika bisnis untuk memproses intent yang dikirim oleh platform {i>Local Home <i}dan akses perangkat cerdas Anda melalui jaringan area lokal. Tidak ada modifikasi hardware yang diharapkan untuk mengintegrasikan fulfillment lokal. Tujuan aplikasi memenuhi permintaan Action smart home dengan mengirimkan perintah kontrol ke perangkat cerdas melalui protokol lapisan aplikasi, termasuk HTTP, TCP, atau UDP. Jika jalur fulfillment lokal gagal, pemenuhan cloud Anda akan digunakan sebagai jalur eksekusi penggantian.
Untuk mendukung pembuatan aplikasi, Local Home SDK menyediakan dua :
DeviceManager
: Memberikan metode untuk berkomunikasi dengan perangkat pintar menggunakan Soket TCP, 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 terkait status perangkat saat ini (QUERY
).
Selama pengembangan, Anda dapat membangun dan menguji aplikasi dengan memuatnya sendiri server {i>hosting <i}atau komputer pengembangan lokal. Dalam produksi, Google menghosting di lingkungan sandbox JavaScript yang aman di perangkat Google Home atau Google Nest pengguna.
Report State API merupakan saat ini tidak didukung untuk fulfillment lokal. Google mengandalkan dan fulfillment cloud 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 yang akan dikirimkan terkait dengan perangkat yang telah diidentifikasi sebelumnya.
Perangkat Google Home atau Google Nest memiliki memori yang terbatas 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 memberikan ruang untuk aplikasi lain. Platform Local Home memulai ulang aplikasi Anda hanya jika ada intent baru yang mengirimkan dan sumber daya memori yang cukup untuk menjalankan aplikasi.
Platform Local Home menghapus muatan aplikasi Anda setelah waktu tunggu tidak ada aktivitas ketika pengguna
membatalkan tautan akun mereka atau tidak ada lagi perangkat yang mendukung
fulfillment yang terkait dengan agentUserId
pengguna.
Perangkat yang didukung
Platform Local Home mengeksekusi aplikasi fulfillment lokal Anda di platform yang didukung Perangkat Google Home atau Google Nest. Tabel berikut menjelaskan perangkat yang didukung, dan 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 | 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 device. Platform Local Home mendukung hal berikut lingkungan runtime:
- Chrome: Aplikasi fulfillment lokal Anda dijalankan dalam konteks Chrome
browser
window
yang menjalankan Chrome M80 atau nanti dengan dukungan untuk ECMAScript versi ES2018. - Node.js: Aplikasi fulfillment lokal Anda dijalankan sebagai skrip di dalam Node.js proses yang menjalankan Node v10.x LTS atau nanti dengan dukungan untuk ECMAScript versi ES2018.
Struktur kode sumber
Sebaiknya gabungkan dependensi Anda ke dalam satu file JavaScript menggunakan konfigurasi pemaket yang disediakan oleh Local Home SDK dan mengemas kode sumber Anda sebagai Ekspresi Fungsi yang Segera dipanggil (IIFE).
Jalur implementasi
Agar dapat memanfaatkan Local Home SDK untuk integrasi smart home, Anda harus melakukan tugas berikut:
1 | Menyiapkan pemindaian konfigurasi | Konfigurasi Konsol Actions dengan parameter yang diperlukan untuk Asisten untuk menemukan perangkat yang dapat dikontrol secara lokal. |
2 | Perbarui SYNC respons dalam fulfillment cloud Anda | Di fulfillment cloud Anda, ubah
SYNC
untuk mendukung
Kolom
otherDeviceIds yang digunakan platform untuk membuat
dengan jalur fulfillment lokal. Di kolom tersebut, tentukan ID perangkat yang dapat
dikontrol secara lokal.
|
3 | Terapkan aplikasi fulfillment lokal | Gunakan Local Home SDK untuk membuat aplikasi JavaScript agar
menangani IDENTIFY ,
EXECUTE , dan intent
QUERY . Untuk perangkat proxy hub atau jembatan, Anda harus
juga menangani intent REACHABLE_DEVICES .
|
4 | Menguji dan men-debug aplikasi | Uji integrasi Anda (atau penilaian mandiri) dengan menggunakan Google Home Test Suite. |
Sebelum memulai
- Pelajari dasar-dasar membuat smart home Tindakan.
- Di bagian Actions konsol, buat pastikan Anda sudah memiliki project smart home dan penautan akun dikonfigurasi.
- Pastikan Anda login dengan Akun Google yang sama di Konsol Actions dan di Asisten pada perangkat pengujian Anda.
- Anda memerlukan Node.js untuk menulis aplikasi Anda. Untuk menginstal Node.js dan npm, Versi Node Pengelola yang disarankan.
- Untuk menggunakan Local Home SDK versi terbaru, Anda harus daftarkan perangkat pengujian ke Pratinjau Cast Google Workspace.