ลักษณะบางอย่างมีเวอร์ชันที่เรียบง่ายให้ใช้งานกับ Automation API เพื่อการใช้งานที่ง่ายขึ้น
ลักษณะที่เรียบง่ายจะแทนที่ลักษณะ Home API มาตรฐาน ซึ่งคล้ายกับวิธีการทำงานของรูปแบบ Facade ลักษณะที่เรียบง่ายจะมีคำสั่งที่ช่วยให้งานทั่วไปทำได้ง่ายขึ้นสำหรับอุปกรณ์บางประเภท ลักษณะที่เรียบง่ายคือลักษณะของ Home API และเช่นเดียวกับลักษณะอื่นๆ ของ Home API ลักษณะนี้จะใช้ได้กับทั้งอุปกรณ์ Matter และ Cloud-to-cloud
ลักษณะที่เรียบง่ายจะมีแอตทริบิวต์และคำสั่งชุดย่อยทางเลือกที่เจาะจงอุปกรณ์มากกว่าลักษณะมาตรฐานที่เกี่ยวข้อง
เช่น แอตทริบิวต์มาตรฐาน LevelControl
เป็นแอตทริบิวต์ทั่วไปที่ใช้กับอุปกรณ์ใดก็ได้ที่มีการตั้งค่าที่เปลี่ยนแปลงอย่างต่อเนื่องในค่าตัวเลขช่วงต่างๆ
Brightness
เป็นลักษณะที่เรียบง่ายซึ่งใช้แทน LevelControl
และให้เฉพาะคำสั่งและแอตทริบิวต์ที่อุปกรณ์ DimmableLight
ต้องการ Brightness
มีคำสั่ง moveToBrightness
ที่ใช้อาร์กิวเมนต์ brightnessPercent
รายการเดียว ส่วน LevelControl
มีคำสั่ง move
หลายรายการ ซึ่งส่วนใหญ่มีพารามิเตอร์อย่างน้อย 4 รายการเพื่อให้รองรับ Use Case ที่หลากหลายมากขึ้น
ตารางต่อไปนี้แสดงลักษณะที่เรียบง่ายแต่ละรายการและลักษณะมาตรฐานที่เกี่ยวข้อง ชื่อลักษณะแต่ละรายการจะลิงก์ไปยังเอกสารประกอบ API ที่เกี่ยวข้อง
ลักษณะที่เข้าใจง่าย | ลักษณะมาตรฐาน |
---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControl OnOff
|
ลักษณะที่เรียบง่ายและ Discovery API
Discovery API จะรายงานทั้งลักษณะที่เรียบง่ายและลักษณะมาตรฐานที่เกี่ยวข้อง ตราบใดที่ลักษณะทั้ง 2 รายการได้รับการลงทะเบียนใน FactoryRegistry
เช่น หากมีอุปกรณ์ DimmableLight
อยู่ในโครงสร้าง และผู้พัฒนาแอปลงทะเบียนทั้งลักษณะ LevelControl
และ Brightness
ใน FactoryRegistry
แล้ว Discovery API จะระบุลักษณะทั้ง 2 รายการ นักพัฒนาแอปสามารถเลือกใช้ลักษณะใดลักษณะหนึ่งในการทํางานอัตโนมัติ
ดูข้อมูลเพิ่มเติมได้ที่ Discovery API
เรียกข้อมูลอุปกรณ์ที่รองรับลักษณะที่เรียบง่าย
เมื่อใช้ Device API เพื่อรับอุปกรณ์ในโครงสร้างที่รองรับลักษณะที่เรียบง่าย เช่น SimplifiedThermostat
คุณจะใช้เมธอด has(trait)
ไม่ได้ แต่ให้ใช้เมธอด has(deviceType)
แทน
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }