Vereinfachte Merkmale unter Android

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:

Tabelle: Vereinfachte Traits
Vereinfachter Trait Standard-Trait
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

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) }