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