Perangkat dalam ekosistem Google Home dapat diimplementasikan menggunakan Cloud-to-cloud, Matter, atau keduanya. Beberapa jenis perangkat lebih kompleks daripada yang lain, dan menghadirkan tantangan untuk dikembangkan saat menggunakan Home API dengan cara yang memungkinkan antarmuka yang lancar dengan perangkat lain dalam ekosistem.
Salah satu tantangan dalam mengimplementasikan beberapa jenis perangkat ini adalah perangkat dapat terdiri dari kombinasi karakteristik yang berbeda. Tidak semua kombinasi berfungsi sebaik yang lain. Selain itu, model data Cloud-to-cloud dipetakan ke model data Matter, tetapi tidak selalu dengan cara yang jelas dan satu-ke-satu. Lihat Model data di Android, yang membahas model data dan pemetaannya secara lebih mendalam.
Halaman ini berisi informasi selengkapnya tentang model data untuk perangkat tertentu yang dipetakan satu sama lain, dan menawarkan beberapa panduan tentang karakteristik yang akan digunakan untuk mengimplementasikan jenis perangkat tersebut.
Oven
Jenis perangkat Oven
(OvenDevice)
dan karakteristik komponennya tidak semudah diimplementasikan
dibandingkan dengan jenis perangkat lainnya. Ada beberapa cara untuk mengimplementasikan Oven di
Matter, tetapi tidak semua pendekatan menghasilkan interoperasi yang lancar dengan perangkat lain atau dengan ekosistem Google Home.
Pemetaan karakteristik
Daripada mengimplementasikan perangkat Oven Matter menggunakan cluster Mode Oven dan On Off, sebaiknya gunakan cluster Status Operasional Rongga Oven. Cluster ini direpresentasikan di Home API oleh karakteristik
OvenCavityOperationalState, dan dipetakan ke karakteristik Cloud-to-cloud
RunCycle. Cluster ini menentukan fase seperti "prapemanasan", "prapemanasan", dan "pendinginan".
| Home API | Cloud-to-cloud |
|---|---|
OvenCavityOperationalState
|
RunCycle
|
Ada batasan pada model data Oven Cloud-to-cloud. Model data Oven
Cloud-to-cloud hanya mengizinkan satu ruang,
dengan satu RunCycle. Sebaliknya, Matter memodelkan Oven multi-ruang
sebagai endpoint perangkat dengan cluster Status Operasional Rongga Oven
untuk setiap ruang.
Untuk beberapa perangkat Oven, daftar fase mungkin perlu diubah saat runtime. Misalnya, Oven yang mendukung prapemanasan dapat memiliki entri yang berbeda dalam daftar fase selama fase prapemanasan dibandingkan selama fase pemanasan atau pendinginan.
Penerapan yang direkomendasikan
Seperti yang dibahas di bagian sebelumnya, implementasi Oven MatterMatter
harus mengimplementasikan cluster Status Operasional Rongga Oven, yang
dimodelkan di Home API sebagai
OvenCavityOperationalState
karakteristik.
Untuk mendapatkan hasil terbaik, pastikan perangkat Oven Cloud-to-cloud Anda
mengimplementasikan karakteristik RunCycle dan memublikasikan
status saat ini dengan menetapkan atribut currentRunCycle. Atribut ini dapat diamati oleh Home API melalui atribut OvenCavityOperationalState.phaseList dan OvenCavityOperationalState.currentPhase.
Perangkat Oven juga harus memublikasikan notifikasi perangkat siklus proses dengan memperbarui atribut priority, status, dan currentCycleRemainingTime dari RunCycle. Contoh berikut menghasilkan peristiwa
OperationalState.OperationCompletion yang dikirim, dan dapat digunakan
untuk menunjukkan bahwa oven telah bertransisi dari siklus 'prapemanasan' ke siklus
'prapemanasan':
{
"currentRunCycle": [
{
"currentCycle": "pre-heating",
"nextCycle": "pre-heated",
"lang": "en"
}
],
"currentTotalRemainingTime": 1200,
"currentCycleRemainingTime": 300
}
Menggunakan Oven dalam otomatisasi
Saat membuat otomatisasi untuk Oven yang diimplementasikan menggunakan cluster Status Operasional Rongga Oven, lihat atribut currentPhase untuk mengetahui siklus oven:
sequential {
val starterNode =
starter<_>(oven, OvenDevice, OvenCavityOperationalState /* Or OperationalState */)
condition {
expression = starterNode.phaseList[operationalState.currentPhase.toUInt()] equals "pre-heated"
}
action(speaker, SpeakerDevice) {
command(AssistantBroadcast.broadcast("Oven Cycle Complete"))
}
// Additional actions here as needed
}
Untuk contoh lengkap, lihat Membuat lampu berkedip dan mengumumkan saat oven mencapai suhu yang dipilih.