Uproszczone cechy

Aby ułatwić korzystanie z interfejsu Automation API, uprościliśmy niektóre cechy.

Uproszczona cecha zastępuje standardową cechę interfejsu Home API, podobnie jak to działa w przypadku wzorców 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.

Uproszczona cecha zawiera alternatywny podzbiór atrybutów i poleceń, który jest bardziej dostosowany do konkretnego urządzenia niż odpowiadająca mu cecha standardowa. Na przykład standardowa cecha LevelControl jest cechą ogólną, która może być używana na dowolnym urządzeniu z ustawieniem, które zmienia się w ciągłym zakresie wartości liczbowych. Brightness to uproszczona cecha, która zastępuje 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 uproszczone cechy i podstawowe cechy standardowe. Każda nazwa cechy prowadzi do odpowiedniej dokumentacji interfejsu API:

Tabela: uproszone cechy
Uproszczony element 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 cechy standardowe, 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 atrybuty LevelControlBrightness, interfejs Discovery API wskaże obecność obu tych atrybutów.FactoryRegistry Deweloper może użyć w automatyzacji dowolnej z tych cech.

Więcej informacji znajdziesz w Discovery API.

Pobranie urządzenia, które obsługuje uproszczone cechy

Jeśli używasz interfejsu Device API do uzyskiwania urządzeń 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) }