Uproszczone właściwości na Androidzie

Aby ułatwić korzystanie, w przypadku interfejsu Automation API na Androidzie dostępne są uproszczone wersje niektórych cech.

Uproszczona cecha zastępuje standardową cechę Home API, podobnie jak w przypadku wzorca fasady działa. 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ż w przypadku odpowiedniej cechy standardowej. Na przykład standardowa cecha LevelControl jest cechą ogólną, której można używać w przypadku każdego 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 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 interfejsu API:

Table: Simplified traits
Uproszczona cecha Cecha standardowa
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

Uproszczone cechy i interfejs Discovery API

Interfejs Discovery API zgłasza uproszczone cechy oraz ich 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 cechy 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 Discovery API na Androidzie.

Pobieranie urządzenia obsługującego uproszczoną cechę

Gdy używasz interfejsu Device API do uzyskiwania 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) }