Atributos simplificados no Android

Para facilitar o uso, versões simplificadas de alguns atributos estão disponíveis para uso com a API Automation no Android.

Uma característica simplificada substitui uma característica padrão da API Home, de maneira semelhante ao funcionamento do padrão de fachada. Os atributos simplificados fornecem comandos que facilitam tarefas comuns para determinados tipos de dispositivos. As características simplificadas são características da API Home e, como outras características da API Home, funcionam para dispositivos Matter e Cloud-to-cloud.

Um atributo simplificado oferece um subconjunto alternativo de atributos e comandos que são mais específicos do dispositivo do que os do atributo padrão correspondente. Por exemplo, o atributo padrão LevelControl é genérico e pode ser usado para qualquer dispositivo que tenha uma configuração que varie continuamente em um intervalo de valores numéricos. Brightness é um atributo simplificado que representa LevelControl e fornece apenas os comandos e atributos que um dispositivo DimmableLight requer. Brightness tem um comando moveToBrightness que usa um único argumento brightnessPercent, enquanto LevelControl tem vários comandos move, a maioria com pelo menos quatro parâmetros para acomodar uma gama mais ampla de casos de uso.

A tabela a seguir mostra cada atributo simplificado e os atributos padrão subjacentes. Cada nome de atributo está vinculado à documentação da API correspondente:

Tabela: atributos simplificados
Atributo simplificado Atributo padrão
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

Atributos simplificados e a API Discovery

A API Discovery informa as características simplificadas e as características padrão subjacentes, desde que ambas tenham sido registradas no FactoryRegistry. Por exemplo, se um dispositivo DimmableLight estiver presente na estrutura e o desenvolvedor tiver registrado os atributos LevelControl e Brightness no FactoryRegistry, a API Discovery vai indicar a presença de ambos os atributos. O desenvolvedor pode usar qualquer um dos atributos na automação.

Consulte API Discovery no Android para mais informações.

Recuperar um dispositivo compatível com um atributo simplificado

Ao usar a API Device para acessar dispositivos em uma estrutura que oferece suporte a um atributo simplificado, como SimplifiedThermostat, não é possível usar o método has(trait). Em vez disso, use o método has(deviceType):

val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }