Để dễ sử dụng, các phiên bản đơn giản của một số đặc điểm có thể được dùng với Automation API trên Android.
Đặc điểm đơn giản đại diện cho một đặc điểm tiêu chuẩn của Home API, tương tự như cách hoạt động của mẫu facade. Đặc điểm đơn giản cung cấp các lệnh giúp một số loại thiết bị thực hiện các tác vụ phổ biến dễ dàng hơn. Đặc điểm đơn giản là đặc điểm của Home API và giống như các đặc điểm khác của Home API, chúng hoạt động cho cả Matter và Cloud-to-cloud thiết bị.
Đặc điểm đơn giản cung cấp một tập hợp con thay thế gồm các thuộc tính và lệnh dành riêng cho thiết bị hơn so với các thuộc tính và lệnh của đặc điểm tiêu chuẩn tương ứng.
Ví dụ: đặc điểm tiêu chuẩn
LevelControl
là một đặc điểm chung có thể dùng cho mọi thiết bị có một
chế độ cài đặt thay đổi liên tục trong một phạm vi giá trị số.
Brightness là một đặc điểm đơn giản đại diện cho LevelControl và chỉ cung cấp các lệnh và thuộc tính mà thiết bị DimmableLight yêu cầu. Brightness có một
moveToBrightness lệnh nhận một đối số
brightnessPercent, trong khi LevelControl có nhiều move
lệnh, hầu hết đều có ít nhất 4 tham số để phù hợp với nhiều trường hợp sử dụng hơn.
Bảng sau đây cho thấy từng đặc điểm đơn giản và(các) đặc điểm tiêu chuẩn cơ bản. Mỗi tên đặc điểm liên kết đến tài liệu API tương ứng:
| Đặc điểm đơn giản | Đặc điểm tiêu chuẩn |
|---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControlOnOff
|
Đặc điểm đơn giản và Discovery API
Discovery API báo cáo các đặc điểm đơn giản cũng như các đặc điểm tiêu chuẩn cơ bản của chúng, miễn là cả hai đặc điểm đều được đăng ký trong
FactoryRegistry. Ví
dụ: nếu một thiết bị DimmableLight có trong cấu trúc và nhà
phát triển đã đăng ký cả đặc điểm LevelControl
và
Brightness trong
FactoryRegistry, thì Discovery API sẽ cho biết sự hiện diện của cả hai
đặc điểm. Nhà phát triển có thể chọn sử dụng một trong hai đặc điểm trong quá trình tự động hoá.
Xem bài viết Discovery API trên Android để biết thêm thông tin.
Truy xuất thiết bị hỗ trợ đặc điểm đơn giản
Khi sử dụng Device API để lấy các thiết bị trong một cấu trúc hỗ trợ đặc điểm đơn giản như SimplifiedThermostat, bạn không thể sử dụng phương thức has(trait). Thay vào đó, hãy sử dụng phương thức has(deviceType):
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }