Aby ułatwić korzystanie, uproszczone wersje niektórych cech są dostępne do użycia z interfejsem Automation API na Androidzie.
Uproszczona cecha zastępuje standardową cechę Home API, podobnie jak działa wzorzec fasady. Uproszczone cechy udostępniają polecenia, które ułatwiają wykonywanie typowych zadań na niektórych typach urządzeń. Uproszczone cechy to cechy Home API, które podobnie jak inne cechy Home API działają zarówno w przypadku urządzeń Matter jak i urządzeń Cloud-to-cloud.
Uproszczona cecha oferuje alternatywny podzbiór atrybutów i poleceń, który jest bardziej specyficzny dla urządzenia niż atrybuty i polecenia odpowiadającej mu cechy standardowej.
Na przykład standardowa
LevelControl
cecha jest cechą ogólną, której można używać w przypadku każdego urządzenia, które ma
ustawienie zmieniające się w sposób ciągły w zakresie wartości liczbowych.
Brightness to
uproszczona cecha, która zastępuje LevelControl i udostępnia tylko
polecenia i atrybuty wymagane przez urządzenie
DimmableLight. Brightness ma polecenie
moveToBrightness, które przyjmuje jeden argument
brightnessPercent, natomiast LevelControl ma wiele poleceńmove
, z których większość ma co najmniej 4 parametry, aby obsługiwać szerszy zakres przypadków użycia.
W tabeli poniżej znajdziesz wszystkie uproszczone cechy i odpowiadające im cechy standardowe. Każda nazwa cechy zawiera link do odpowiedniej dokumentacji API:
| Uproszczona cecha | Cecha standardowa |
|---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControlOnOff
|
Uproszczone cechy i interfejs Discovery API
Interfejs Discovery API zgłasza uproszczone cechy oraz odpowiadające im
cechy standardowe, o ile obie cechy zostały zarejestrowane w
FactoryRegistry. Jeśli
na przykład w strukturze znajduje się urządzenie DimmableLight, a
deweloper zarejestrował w
FactoryRegistry zarówno cechę
LevelControl
jak i
Brightness, interfejs Discovery API wskaże obecność obu
cech. Deweloper może użyć w automatyzacji dowolnej z tych cech.
Więcej informacji znajdziesz w artykule Interfejs Discovery API na Androidzie.
Pobieranie urządzenia obsługującego uproszczoną cechę
Gdy używasz interfejsu Device API do pobierania urządzeń w strukturze, które obsługują uproszczoną cechę, 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) }