Aby ułatwić korzystanie z interfejsu Automation API na Androidzie, udostępniliśmy uproszczone wersje niektórych atrybutów.
Uproszczona cecha zastępuje standardową cechę interfejsu Home API, podobnie jak to działa wzorzec fasady. Uproszczone cechy udostępniają polecenia, które ułatwiają wykonywanie typowych czynności na określonych typach urządzeń. Uproszczone cechy to cechy interfejsu Home API, które, podobnie jak inne cechy tego interfejsu, działają zarówno na urządzeniach Matter, jak i Cloud-to-cloud.
Uproszczone cechy oferują alternatywny podzbiór atrybutów i poleceń, który jest bardziej dostosowany do danego urządzenia niż odpowiadające mu cechy standardowe.
Na przykład standardowy atrybut LevelControl
to ogólny atrybut, który może być używany na dowolnym urządzeniu 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 atrybuty LevelControl
i zawiera tylko te polecenia i atrybuty, których wymaga urządzenie DimmableLight
. Brightness
ma polecenie moveToBrightness
, które wymaga podania jednego argumentu brightnessPercent
, natomiast LevelControl
ma wiele poleceń move
, z których większość ma co najmniej 4 parametry, aby umożliwić obsługę większej liczby przypadków użycia.
Tabela poniżej zawiera każdą uproszczoną cechę i cechy standardowe, na których się ona opiera. Każda nazwa cechy prowadzi do odpowiedniej dokumentacji interfejsu API:
Uproszczona cecha | Właściwość standardowa |
---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControl OnOff
|
Uproszczone cechy i interfejs Discovery API
Interfejs Discovery API raportuje uproszczone cechy oraz ich standardowe cechy, o ile obie cechy zostały zarejestrowane w FactoryRegistry
. Jeśli na przykład w strukturze występuje urządzenie DimmableLight
, a deweloper zarejestrował w nim cechy LevelControl
i Brightness
, interfejs Discovery API wskaże obecność obu tych cech.FactoryRegistry
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 atrybut
Jeśli używasz interfejsu Device API do uzyskiwania informacji o urządzeniach w strukturze obsługującej uproszczone cechy, takiej jak SimplifiedThermostat
, nie możesz używać metody has(trait)
. Zamiast tego użyj metody has(deviceType)
:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }