Zur einfacheren Verwendung sind vereinfachte Versionen einiger Merkmale für die Verwendung mit der Automation API unter Android verfügbar.
Ein vereinfachtes Attribut steht für ein Standardattribut der Home API, ähnlich wie das Fassadenmuster funktioniert. Vereinfachte Traits bieten Befehle, die gängige Aufgaben für bestimmte Gerätetypen erleichtern. Vereinfachte Traits sind Home API-Traits und funktionieren wie andere Home API-Traits sowohl für Matter- als auch für Cloud-to-cloud-Geräte.
Ein vereinfachtes Merkmal bietet eine alternative Teilmenge von Attributen und Befehlen, die gerätespezifischer sind als die des entsprechenden Standardmerkmals.
Das Standardmerkmal LevelControl
ist beispielsweise ein generisches Merkmal, das für jedes Gerät verwendet werden kann, das eine Einstellung hat, die sich kontinuierlich über einen Bereich numerischer Werte ändert.
Brightness
ist ein vereinfachtes Merkmal, das für LevelControl
steht und nur die Befehle und Attribute bereitstellt, die für ein DimmableLight
-Gerät erforderlich sind. Brightness
hat den Befehl moveToBrightness
, der ein einzelnes brightnessPercent
-Argument akzeptiert, während LevelControl
mehrere move
-Befehle hat, von denen die meisten mindestens vier Parameter haben, um eine größere Bandbreite von Anwendungsfällen zu berücksichtigen.
In der folgenden Tabelle sind die einzelnen vereinfachten Eigenschaften und die zugrunde liegenden Standardeigenschaften aufgeführt. Jeder Attributname ist mit der entsprechenden API-Dokumentation verknüpft:
Vereinfachter Trait | Standard-Trait |
---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControl OnOff
|
Vereinfachte Merkmale und die Discovery API
Die Discovery API meldet vereinfachte Merkmale sowie die zugrunde liegenden Standardmerkmale, sofern beide Merkmale in der FactoryRegistry
registriert wurden. Wenn beispielsweise ein DimmableLight
-Gerät in der Struktur vorhanden ist und der Entwickler sowohl das LevelControl
- als auch das Brightness
-Trait im FactoryRegistry
registriert hat, würde die Discovery API das Vorhandensein beider Traits angeben. Der Entwickler kann in seiner Automatisierung entweder das eine oder das andere Merkmal verwenden.
Weitere Informationen finden Sie unter Discovery API on Android.
Gerät abrufen, das einen vereinfachten Trait unterstützt
Wenn Sie die Geräte-API verwenden, um Geräte in einem Gebäude abzurufen, die ein vereinfachtes Attribut wie SimplifiedThermostat
unterstützen, können Sie die Methode has(trait)
nicht verwenden. Verwenden Sie stattdessen die Methode has(deviceType)
:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }