Zur einfacheren Verwendung sind vereinfachte Versionen einiger Attribute für die Verwendung mit der Automation API unter Android verfügbar.
Ein vereinfachtes Attribut ersetzt ein Standardattribut der Home API, ähnlich wie das Fassadenmuster funktioniert. Vereinfachte Attribute bieten Befehle, die gängige Aufgaben für bestimmte Gerätetypen erleichtern. Vereinfachte Attribute sind Home API-Attribute und funktionieren wie andere Home API-Attribute sowohl für Matter- als auch für Cloud-to-cloud-Geräte.
Ein vereinfachtes Attribut bietet eine alternative Teilmenge von Attributen und Befehlen, die gerätespezifischer sind als die des entsprechenden Standardattributs.
Das Standard-Trait LevelControl ist beispielsweise ein generisches Trait, 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 Attribut, das für LevelControl steht und nur die Befehle und Attribute bereitstellt, die ein DimmableLight-Gerät benötigt. Brightness hat einen moveToBrightness-Befehl, 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 abzudecken.
In der folgenden Tabelle sind die einzelnen vereinfachten Attribute und die zugrunde liegenden Standardattribute aufgeführt. Jeder Attributname ist mit der entsprechenden API-Dokumentation verknüpft:
| Vereinfachtes Trait | Standardmerkmal |
|---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControlOnOff
|
Vereinfachte Attribute und die Discovery API
Die Discovery API meldet vereinfachte Eigenschaften sowie die zugrunde liegenden Standardeigenschaften, sofern beide Eigenschaften im FactoryRegistry registriert wurden. Wenn beispielsweise ein DimmableLight-Gerät in der Struktur vorhanden ist und der Entwickler sowohl das Merkmal LevelControl als auch das Merkmal Brightness in der FactoryRegistry registriert hat, würde die Discovery API das Vorhandensein beider Merkmale anzeigen. Der Entwickler kann in seiner Automatisierung beide Merkmale verwenden.
Weitere Informationen finden Sie unter Discovery API unter Android.
Gerät abrufen, das ein vereinfachtes Attribut unterstützt
Wenn du die Device API verwendest, um Geräte in einem Gebäude abzurufen, die ein vereinfachtes Trait wie SimplifiedThermostat unterstützen, kannst du die Methode has(trait) nicht verwenden. Verwenden Sie stattdessen die Methode has(deviceType):
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }