Aby ułatwić korzystanie z interfejsu Automation API na Androidzie, dostępne są uproszczone wersje niektórych cech.
Uproszczona cecha zastępuje standardową cechę interfejsu Home API, podobnie jak działa wzorzec fasady. Uproszczone cechy zapewniają polecenia, które ułatwiają wykonywanie typowych zadań na niektórych typach urządzeń. Uproszczone cechy to cechy interfejsu Home API, które podobnie jak inne cechy tego interfejsu działają na urządzeniach Matter i Cloud-to-cloud.
Uproszczona cecha oferuje alternatywny podzbiór atrybutów i poleceń, które są bardziej specyficzne dla urządzenia niż te z odpowiedniej cechy standardowej.
Na przykład standardowy
LevelControl
typ to typ ogólny, który można stosować w przypadku dowolnego urządzenia z ustawieniem, które zmienia się w sposób ciągły w zakresie wartości liczbowych.
Brightness
to uproszczona cecha, która zastępuje LevelControl
i zawiera tylko polecenia i atrybuty wymagane przez urządzenie DimmableLight
. Brightness
ma polecenie
moveToBrightness
, które przyjmuje jeden argumentbrightnessPercent
, natomiast LevelControl
ma kilka poleceń move
, z których większość ma co najmniej 4 parametry, aby uwzględnić szerszy zakres zastosowań.
W tabeli poniżej znajdziesz wszystkie uproszczone cechy i odpowiadające im standardowe cechy. Każda nazwa cechy zawiera link do odpowiedniej dokumentacji interfejsu API:
Uproszczona cecha | Cechy standardowe |
---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControl OnOff
|
Uproszczone cechy i interfejs Discovery API
Interfejs Discovery API raportuje uproszczone cechy, a także ich podstawowe cechy standardowe, o ile obie cechy zostały zarejestrowane w FactoryRegistry
. Jeśli na przykład w strukturze występuje DimmableLight
urządzenie, a deweloper zarejestrował w FactoryRegistry
cechy LevelControl
i Brightness
, interfejs Discovery API wskaże obecność obu tych cech. Deweloper może użyć w automatyzacji dowolnej z tych cech.
Więcej informacji znajdziesz w artykule Discovery API na Androidzie.
Pobieranie urządzenia, które obsługuje uproszczony trait
Jeśli używasz interfejsu Device API do uzyskiwania urządzeń w strukturze, która obsługuje uproszczony atrybut, np. SimplifiedThermostat
, nie możesz użyć metody has(trait)
. Zamiast tego użyj metody has(deviceType)
:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }