ประเภทอุปกรณ์กริ่งพื้นฐานอาจใช้ลักษณะMatterที่อิงตามมาตรฐาน
com.google.home.matter.standard.Chime
หรือลักษณะเวอร์ชันที่กำหนดเองของ Google เอง
com.google.home.google.Chime
ซึ่งนอกเหนือจากความสามารถที่ระบุไว้ในมาตรฐานMatterแล้ว ยังรองรับกริ่งภายนอกด้วย
อุปกรณ์กริ่งประตูอาจใช้ลักษณะ Identify ด้วย
ซึ่งเป็นวิธีระบุอุปกรณ์กริ่งประตูด้วยภาพหรือเสียง
โปรดตรวจสอบการรองรับแอตทริบิวต์และคำสั่งสำหรับอุปกรณ์ก่อนที่จะใช้ฟีเจอร์หรือพยายามอัปเดตแอตทริบิวต์ ดูข้อมูลเพิ่มเติมได้ที่ควบคุมอุปกรณ์ใน Android
| ประเภทอุปกรณ์ API สำหรับ Home | ลักษณะ | แอปตัวอย่าง Kotlin | กรณีการใช้งาน |
|---|---|---|---|
|
กริ่ง
อุปกรณ์ที่เล่นเสียงได้จากเสียงที่ติดตั้งไว้ล่วงหน้าหลากหลายเสียง และมักใช้กับกริ่งประตู กริ่งประตูเสียง หรือกริ่งประตูแบบบันทึกวิดีโอได้ |
ลักษณะที่ต้องระบุ matter Chime |
กริ่งประตู |
ดูข้อมูลพื้นฐานเกี่ยวกับอุปกรณ์
ติดตั้งใช้งานในแอปตัวอย่างสำหรับ Android
ลักษณะBasicInformation
ประกอบด้วยข้อมูล เช่น ชื่อผู้ให้บริการ รหัสผู้ให้บริการ รหัสผลิตภัณฑ์
ชื่อผลิตภัณฑ์ (รวมถึงข้อมูลรุ่น) และเวอร์ชันซอฟต์แวร์ของอุปกรณ์
// 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}") }
การรองรับหลายพาร์ท
กริ่งอาจประกอบด้วยอุปกรณ์หลายประเภท รวมถึง Chime และลำโพง (ไม่บังคับ) นอกจากนี้ กริ่งบางรุ่นยังมี Thread Border Router (TBR) หากต้องการให้การรองรับครอบคลุมมากที่สุด แอปที่ใช้ Home API ซึ่ง ควบคุมกริ่งควรเขียนให้รองรับอุปกรณ์กริ่งแบบหลายส่วน ดูข้อมูลเพิ่มเติมได้ที่ อุปกรณ์แบบหลายพาร์ท
อุปกรณ์กริ่งประตูแบบหลายส่วนแต่ละเครื่องควรแสดงในแอปด้วยไทล์เดียว อุปกรณ์ Chime ควรเป็นอุปกรณ์หลัก และลำโพงย่อยควรเป็นส่วนหนึ่งของ Chime
ระดับเสียงของลำโพงควรปรากฏเป็นการตั้งค่าหลักของอุปกรณ์ Chime
การแมปเปิด/ปิด
สำหรับกริ่งที่มีทั้งประเภทอุปกรณ์กริ่งและลำโพง ควรแมปปุ่มเปิด/ปิดในแอปควบคุมกับแอตทริบิวต์ Enabled ของกริ่ง
ตามMatterข้อกำหนดของคลังอุปกรณ์ การตั้งค่าแอตทริบิวต์ Enabled ของลักษณะ False อาจทำหน้าที่เป็นสวิตช์ปิดเสียงส่วนกลางที่ระงับตัวบ่งชี้ที่มองเห็นได้และได้ยินทั้งหมด นอกเหนือจากการปิดใช้False
การสนับสนุนการทำงานอัตโนมัติ
ดังที่กล่าวไว้ก่อนหน้านี้ เนื่องจาก ChimeDevice
อาจมีหลายส่วน
เราจึงขอแนะนำให้นักพัฒนาแอปถือว่ากริ่งทั้งหมดเป็นอุปกรณ์แบบหลายส่วน และข้อแนะนำนี้
ยังคงใช้ได้ในกรณีของการทำงานอัตโนมัติที่ใช้กริ่ง
คุณใช้กริ่งในเงื่อนไขเริ่มต้นและการดำเนินการของการทำงานอัตโนมัติได้
อุปกรณ์ที่เป็นส่วนประกอบใดๆ ภายใต้อุปกรณ์ Chime หลักที่ใช้ในการ
ระบบอัตโนมัติจะต้องอ้างอิงโดยใช้
AutomationPartPath
การทำงานอัตโนมัติต่อไปนี้แสดงวิธีสร้างการทำงานอัตโนมัติด้วย เสียงกริ่งหลายส่วนที่ใช้ลักษณะ Chime รวมถึงลำโพง ระบบจะทริกเกอร์การทำงานอัตโนมัติเมื่อเปิดประตูหน้า
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()) } } }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานอัตโนมัติโดยใช้อุปกรณ์แบบหลายส่วนได้ที่การทำงานอัตโนมัติของอุปกรณ์แบบหลายส่วน
ตรวจสอบการเชื่อมต่อสำหรับอุปกรณ์
ระบบจะตรวจสอบการเชื่อมต่อของอุปกรณ์ที่ระดับประเภทอุปกรณ์ เนื่องจากอุปกรณ์บางเครื่องรองรับอุปกรณ์หลายประเภท สถานะที่ส่งคืนคือ การรวมสถานะการเชื่อมต่อของลักษณะทั้งหมดในอุปกรณ์นั้น
ติดตั้งใช้งานในแอปตัวอย่างสำหรับ Androidval lightConnectivity = dimmableLightDevice.metadata.sourceConnectivity.connectivityState
สถานะ PARTIALLY_ONLINE อาจสังเกตได้ในกรณี
ของอุปกรณ์ประเภทผสมเมื่อไม่มีการเชื่อมต่ออินเทอร์เน็ต
Matter ลักษณะมาตรฐานอาจยังคงออนไลน์อยู่เนื่องจากการกำหนดเส้นทางในพื้นที่
แต่ลักษณะที่อิงตามระบบคลาวด์จะออฟไลน์
รับที่อยู่ IP ของอุปกรณ์
หากต้องการค้นหาที่อยู่ IP ของอุปกรณ์ ให้ใช้แอตทริบิวต์ networkInterfaces ของลักษณะ GeneralDiagnostics
ระบบจะแสดงที่อยู่เป็นอาร์เรย์ไบต์ ซึ่งคุณจัดรูปแบบเป็น
สตริง IPv4 หรือ IPv6 มาตรฐานได้
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()