Jenis perangkat Chime dasar dapat diimplementasikan menggunakan
karakteristik berbasis Matter standar
com.google.home.matter.standard.Chime
atau versi karakteristik kustom Google sendiri,
com.google.home.google.Chime,
yang, selain kemampuan yang ditentukan dalam standar
Matter, mendukung bel eksternal.
Perangkat bel pintu juga dapat menerapkan sifat Identify, yang memberikan cara untuk mengidentifikasi perangkat bel pintu berdasarkan penglihatan atau suara.
Selalu periksa dukungan atribut dan perintah untuk perangkat sebelum menggunakan fitur atau mencoba memperbarui atribut. Lihat Mengontrol perangkat di Android untuk mengetahui informasi selengkapnya.
| Jenis Perangkat Home API | Sifat | Aplikasi Contoh Kotlin | Kasus Penggunaan |
|---|---|---|---|
|
Denting
Perangkat yang dapat memutar berbagai suara bawaan dan biasanya digunakan dengan bel pintu, bel pintu audio, atau bel pintu video. |
Ciri Wajib penting Bel |
Bel pintu |
Mendapatkan informasi dasar tentang perangkat
Diterapkan di Aplikasi Contoh untuk Android
Trait BasicInformation
mencakup informasi seperti nama vendor, ID vendor, ID produk,
nama produk (mencakup informasi model), dan versi software untuk perangkat:
// Get device basic information. All general information traits are on the RootNodeDevice type. device.type(RootNodeDevice).first().standardTraits.basicInformation?.let { basicInformation -> println("vendorName ${basicInformation.vendorName}") println("vendorId ${basicInformation.vendorId}") println("productId ${basicInformation.productId}") println("productName ${basicInformation.productName}") println("softwareVersion ${basicInformation.softwareVersion}") }
Dukungan multibagian
Bel dapat terdiri dari beberapa jenis perangkat, termasuk Bel dan Speaker (opsional). Selain itu, beberapa bel menyertakan Thread Border Router (TBR). Untuk memastikan dukungan terluas, aplikasi Home API yang mengontrol bel harus ditulis untuk mengakomodasi perangkat bel multipart. Lihat Perangkat multipart untuk mengetahui informasi selengkapnya.
Setiap perangkat bel multipart harus ditampilkan di aplikasi dengan satu kartu. Perangkat Chime harus menjadi perangkat utama, dan Speaker turunan harus menjadi bagian dari Chime.
Volume speaker akan muncul sebagai setelan utama perangkat Chime.
Pemetaan OnOff
Untuk bel dengan jenis perangkat Bel dan Speaker, tombol OnOff di aplikasi pengontrol harus dipetakan ke atribut Enabled Bel.
Sesuai spesifikasi Pustaka Perangkat Matter, menyetel atribut Enabled trait Bel ke False dapat, selain menonaktifkan Bel, bertindak seperti tombol mute global yang menekan semua indikator yang dapat didengar dan dilihat.
Dukungan otomatisasi
Seperti yang dinyatakan sebelumnya, karena ChimeDevice
mungkin memiliki beberapa bagian,
developer dianjurkan untuk memperlakukan semua bel sebagai perangkat multipart, dan hal ini
tetap berlaku dalam kasus otomatisasi yang menggunakan bel.
Bel dapat digunakan dalam pemicu dan tindakan otomatisasi.
Perangkat bagian komponen apa pun di bawah perangkat Chime induk yang digunakan dalam otomatisasi harus dirujuk menggunakan
AutomationPartPath
.
Otomatisasi berikut menunjukkan cara membuat otomatisasi dengan bel multi-bagian yang menerapkan trait Bel serta Speaker. Otomatisasi dipicu saat pintu depan dibuka:
import com.google.home.automation.automation import com.google.home.automation.greaterThan import com.google.home.google.GoogleDoorDevice import com.google.home.google.OpenClose import com.google.home.matter.standard.ChimeDevice import com.google.home.matter.standard.Chime // ... // Fetch devices val devices = homeManager.devices() // Fetch devices using the multipart device model. val multipartDevices = homeManager.devices(enableMultipartDevices = true) val doorDevice = devices.first() { it.has(GoogleDoorDevice) && it.has(OpenClose) } // Obtain a reference to the chime device. val chime = multipartDevices.first() { it.has(ChimeDevice) && it.has(Chime) } // Extract the AutomationPartPath for the specific Chime part val chimePartPath = chime.automationPart(chime.part(ChimeDevice).first())!! // Build the automation val chimeAutomation = automation { sequential { val doorOpenClose = stateReader<_>(doorDevice, GoogleDoorDevice, OpenClose) // Starter: When the door state changes val starterNode = starter<_>(doorDevice, GoogleDoorDevice, OpenClose) condition { expression = doorOpenClose.openPercent greaterThan(0) } // Action: Play a chime sound action(chimePartPath) { command(Chime.playChimeSound()) } } }
Lihat Otomatisasi perangkat multipart untuk informasi tambahan tentang otomatisasi menggunakan perangkat multipart.
Memeriksa konektivitas perangkat
Konektivitas untuk perangkat sebenarnya diperiksa di tingkat jenis perangkat karena beberapa perangkat mendukung beberapa jenis perangkat. Status yang ditampilkan adalah kombinasi status konektivitas untuk semua trait di perangkat tersebut.
Diterapkan di Aplikasi Contoh untuk Androidval lightConnectivity = dimmableLightDevice.metadata.sourceConnectivity.connectivityState
Status PARTIALLY_ONLINE dapat diamati dalam kasus
jenis perangkat campuran saat tidak ada konektivitas internet.
Matter standar mungkin masih online karena perutean lokal, tetapi trait berbasis cloud akan offline.
Mendapatkan alamat IP perangkat
Untuk menemukan alamat IP perangkat, gunakan atribut networkInterfaces dari
trait
GeneralDiagnostics. Alamat ditampilkan sebagai array byte, yang dapat Anda format ke
string IPv4 atau IPv6 standar:
val ipAddresses =
trait.networkInterfaces?.flatMap { networkInterface ->
(networkInterface.ipv4Addresses + networkInterface.ipv6Addresses).mapNotNull { bytes ->
try {
java.net.InetAddress.getByAddress(bytes).hostAddress
} catch (e: java.net.UnknownHostException) {
null
}
}
} ?: emptyList()