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, semelhante ao padrão de fachada. Os traços simplificados fornecem comandos que facilitam tarefas comuns em determinados tipos de dispositivos. Os atributos simplificados são atributos da API Home e, como outros atributos da API Home, funcionam em dispositivos Matter e Cloud-to-cloud.

Uma característica simplificada oferece um subconjunto alternativo de atributos e comandos que é mais específico do dispositivo do que o da característica padrão correspondente. Por exemplo, o tipo LevelControl padrão é um tipo genérico que pode ser usado em qualquer dispositivo que tenha uma configuração que varia continuamente em um intervalo de valores numéricos. Brightness é uma característica simplificada que substitui 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 tem um link para a documentação da API correspondente:

Tabela: características simplificadas
Característica simplificada Padrão
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

Atributos simplificados e a API Discovery

A API Discovery informa atributos simplificados e os atributos padrão que os geram, desde que ambos tenham sido registrados 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 escolher usar qualquer um dos dois atributos na automação.

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

Extrair um dispositivo compatível com uma característica simplificada

Ao usar a API Device para receber dispositivos em uma estrutura que ofereça suporte a uma característica simplificada, 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) }