Zur Vereinfachung der Verwendung sind vereinfachte Versionen einiger Traits für die Verwendung mit der Automation API unter Android verfügbar.
Ein vereinfachter Trait steht für einen Standard-Trait der Home API, ähnlich wie das Fassadenmuster funktioniert. Vereinfachte Traits bieten Befehle, die allgemeine 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 vereinfachter Trait bietet eine alternative Teilmenge von Attributen und Befehlen, die gerätespezifischer sind als die des entsprechenden Standard-Traits.
Der Standard
LevelControl
Trait ist beispielsweise ein generischer Trait, der für jedes Gerät verwendet werden kann, das eine
Einstellung hat, die sich kontinuierlich über einen Bereich numerischer Werte ändert.
Brightness ist ein
vereinfachter Trait, der für LevelControl steht und nur die
Befehle und Attribute bietet, die ein
DimmableLight
Gerät benötigt. Brightness hat einen
moveToBrightness-Befehl, der ein einzelnes
brightnessPercent-Argument verwendet, 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 Traits und die zugrunde liegenden Standard-Traits aufgeführt. Jeder Trait-Name ist mit der entsprechenden API-Dokumentation verlinkt:
| Vereinfachter Trait | Standard-Trait |
|---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControlOnOff
|
Vereinfachte Traits und die Discovery API
Die Discovery API meldet sowohl vereinfachte Traits als auch die zugrunde liegenden
Standard-Traits, sofern beide Traits in der
FactoryRegistry registriert wurden. Wenn sich
beispielsweise ein DimmableLight-Gerät in der Struktur befindet und der
Entwickler sowohl den
LevelControl
als auch den
Brightness-Trait in
der FactoryRegistry registriert hat, gibt die Discovery API das Vorhandensein beider
Traits an. Der Entwickler kann in seiner Automatisierung einen der beiden Traits verwenden.
Weitere Informationen finden Sie unter Discovery API unter Android.
Gerät abrufen, das einen vereinfachten Trait unterstützt
Wenn Sie die Device API verwenden, um Geräte in einer Struktur abzurufen, die einen vereinfachten Trait 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) }