Google Home API untuk Android menyediakan platform API terpadu yang memungkinkan developer berinteraksi dengan status entity di smart home pengguna. Entity ini dapat menjelaskan perangkat dan informasi non-perangkat yang terkait dengan struktur dan ruangan pengguna.
Home API menentukan entity berikut yang dapat digunakan pengguna untuk berinteraksi:
- Struktur mewakili smart home yang berisi ruangan dan perangkat.
- Ruangan adalah bagian dari struktur dan berisi perangkat.
- Perangkat menerapkan karakteristik yang berisi atribut, sesuai dengan jenis, memancarkan peristiwa, dan merespons perintah.
- Otomatisasi adalah bagian dari struktur dan menggunakan metadata smart home serta perangkat untuk mengotomatiskan tugas di smart home.
Gambar 1 mengilustrasikan arsitektur ini:
Jenis perangkat Home API dapat didukung oleh Matter, standar terbuka untuk smart home, atau menjadi perangkat Cloud-to-cloud di ekosistem Google Home. Beberapa jenis perangkat dapat menggabungkan fungsi dari keduanya. Lihat Jenis perangkat yang didukung di Android untuk mengetahui informasi selengkapnya.
Di Matter, fungsi perangkat dikelompokkan berdasarkan cluster, yang direpresentasikan di Home API sebagai Matter karakteristik standar. Home API mendukung kumpulan cluster standar seperti yang ditentukan dalam spesifikasi saat ini.MatterMatter
Di ekosistem Google Home, fungsi perangkat dikelompokkan berdasarkan karakteristik smart home, yang direpresentasikan di Home API sebagai karakteristik smart home Google. Home API mendukung kumpulan karakteristik smart home seperti yang ditentukan dalam Cloud-to-cloud program.
Karakteristik lainnya, seperti Cluster khusus produsen dan Karakteristik platform, juga tersedia. Untuk mempelajari lebih lanjut, lihat Model data di Android.
Ekosistem
Ekosistem Google Home menyediakan fondasi yang efisien untuk membangun, mengelola, mengamankan, dan mengintegrasikan pengalaman smart home. Gambar 2 menunjukkan cara semua komponen bekerja sama.
Ekosistem ini mencakup Google Automation Engine yang menyimpan dan menjalankan otomatisasi yang menyediakan cara untuk mengotomatiskan tugas dan setelan perangkat di smart home.
Home API menggunakan OAuth 2.0 untuk memberikan akses ke perangkat dalam struktur. OAuth memungkinkan pengguna memberikan izin ke aplikasi atau layanan tanpa harus mengekspos kredensial login mereka.
Google Home Developer Console digunakan untuk mengelola semua tahap project Home API, mulai dari verifikasi merek, hingga pengembangan, pengujian, dan sertifikasi hingga peluncuran. Layanan ini menyederhanakan proses pengembangan sekaligus menyediakan alat dan distribusi yang andal melalui ekosistem Google Home.
Bahasa
Home API untuk Android ditulis dalam Kotlin dan menyediakan antarmuka Kotlin idiomatis yang menggunakan Flow untuk mengelola status dan langganan. Hal ini memberikan sejumlah keuntungan dibandingkan API langganan standar.
Sebaiknya pahami dokumentasi Kotlin tentang coroutine, flow, dan Jetpack Compose, jika Anda belum memahaminya:
- Mengembangkan aplikasi Android dengan Kotlin
- Mempelajari Kotlin untuk Android
- Coroutine Kotlin di Android. Codelab khusus ini mungkin berguna:
- Flow Kotlin di Android dan khususnya, StateFlow.
- Status dan Jetpack Compose, khususnya fungsi
collectAsStateWithLifecycle(). Fungsi ini secara otomatis mengelola langganan dan berhenti berlangganan dari flow berdasarkan apakah UI yang menampilkan status tersebut benar-benar berada di latar depan atau tidak. - Jika Anda menggunakan Automation API, membaca tentang builder jenis aman Kotlin akan berguna untuk memahami cara kerja DSL Otomatisasi.
ID entity
Setiap entity di Home API memiliki ID yang mewakili ID utamanya. ID ini adalah ID unik dan stabil yang tidak akan pernah berubah selama masa aktif entity. ID ini dapat digunakan untuk menyimpan objek dalam cache atau memeriksa kesamaan karena metadata entity dapat berubah.
Lihat antarmuka HasId untuk mempelajari
entity mana yang memiliki ID.
Pemetaan terminologi
Entity di Home API dipetakan ke Matter dan Cloud-to-cloud konsep sebagai berikut:
| Home API | Matter | Cloud-to-cloud |
|---|---|---|
| Karakteristik | Cluster | Karakteristik |
| Atribut | Atribut | Atribut, Status |
| Perintah | Perintah | Perintah |
| Peristiwa | Peristiwa | Respons tindak lanjut, Notifikasi |