ลักษณะอย่างง่าย

ลักษณะบางอย่างมีเวอร์ชันที่เรียบง่ายให้ใช้งานกับ 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) }