Perangkat di 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 menerapkan beberapa jenis perangkat ini adalah perangkat dapat terdiri dari berbagai kombinasi karakteristik. 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 per satu. Lihat Model data, yang membahas model data dan pemetaan 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 menerapkan jenis perangkat tersebut.
Oven
Jenis perangkat Oven
(OvenDevice
)
dan karakteristik komponennya tidak semudah diterapkan
dibandingkan dengan jenis perangkat lainnya. Ada beberapa cara untuk menerapkan Oven di
Matter, tetapi tidak semua pendekatan menghasilkan interoperabilitas
yang lancar dengan perangkat lain atau dengan ekosistem Google Home.
Pemetaan sifat
Daripada menerapkan perangkat Oven Matter menggunakan
cluster Mode Oven dan On Off, sebaiknya gunakan cluster Status Operasi
Rongga Oven. Cluster ini direpresentasikan di Home API oleh
sifat
OvenCavityOperationalState
, dan dipetakan ke sifat Cloud-to-cloud
RunCycle
. Ini menentukan fase seperti
"pra-pemanasan", "pra-pemanasan", dan "pendinginan".
Home API | Cloud-to-cloud |
---|---|
OvenCavityOperationalState
|
RunCycle
|
Ada batasan pada model data Oven Cloud-to-cloud. Model data
Cloud-to-cloud Oven hanya memungkinkan satu ruang,
dengan satu RunCycle
. Sebaliknya, Matter membuat model
Oven multi-kamar sebagai endpoint perangkat dengan cluster Status Operasi Kamar
Oven untuk setiap kamar.
Untuk beberapa perangkat Oven, daftar fase mungkin berubah saat runtime. Misalnya, Oven yang mendukung pemanasan awal dapat memiliki entri yang berbeda dalam daftar fase selama fase pemanasan awal daripada selama fase pemanasan atau pendinginan.
Penerapan yang direkomendasikan
Seperti yang telah dibahas di bagian sebelumnya, implementasi Oven Matter
harus menerapkan cluster Status Operasional Rongga Oven, yang
dimodelkan di Home API sebagai
sifat
OvenCavityOperationalState
.
Untuk mendapatkan hasil terbaik, pastikan perangkat Oven Cloud-to-cloud Anda menerapkan 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 akan menghasilkan peristiwa OperationalState.OperationCompletion
yang dikirim, dan dapat digunakan untuk menunjukkan bahwa oven telah bertransisi dari siklus 'pemanasan awal' ke siklus 'pemanasan awal':
{
"currentRunCycle": [
{
"currentCycle": "pre-heating",
"nextCycle": "pre-heated",
"lang": "en"
}
],
"currentTotalRemainingTime": 1200,
"currentCycleRemainingTime": 300
}
Menggunakan Oven dalam otomatisasi
Saat mem-build otomatisasi untuk Oven yang diimplementasikan menggunakan
cluster Status Operasional Rongga Oven, referensikan 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 lengkapnya, lihat Mem-blink lampu dan mengumumkan saat oven mencapai suhu yang dipilih.