Wenn sich die Eigenschaften einer HomeAssistant-Entität nicht direkt auf ein Homey-Gerät abbilden lassen, dann können virtuelle Geräte bzw. virtuelle Capabilities helfen.
Auf diese Weise lassen sich z.B. Wertelisten einer HA-Entität als Schalter in einem Homey-Gerät abbilden. Damit lässt sich zumindest zwischen zwei Wertelisten-Einträgen über den Schalter hin und her wechseln.
Das ermöglicht es, die Einstellung einer HA-Auswahlliste manuell über die Homey-App zu steuern.
Ein Beispiel: Ladesteuerung einer Wallbox
Dieses Beispiel zeigt die Auswahlliste einer HA-Entität an, mit der man den Lademodus der Wallbox ändern kann.
Relevant sind hier vor allem die ersten beiden Einträge. Mit ihnen lässt sich zwischen Überschussladen (Eco) und Laden über das Netz (Default) umschalten.
Die Werteliste kann zwar in Homey per Flow verwendet werden, aber eine Anzeige im Gerät ist nicht möglich.
Es ist aber möglich, einen Schalter einzubinden, der den Status anzeigt.
Dazu wird die Entität einem Homey-Gerät hinzugefügt.
Wähle die „select“ Entität aus, die die Werteliste bereitstellt.
Als Capability muss nun abweichend vom Vorschlag die Capability „onoff_button“ gewählt werden. Damit wird ein Schalter auf dem Button-Tabreiter eingefügt.
Ist bereits eine „onoff_button“ Capability im Gerät vorhanden, dann gib stattdessen eine Sub-Capability an, z.B. „onoff_button.ecomode“.
Nun muss noch der gewählte Listeneintrag in den Schalterstatus „übersetzt“ werden.
Dazu wird eine Konvertierungsfunktion eingefügt.
(value) => {
if (value == 'Eco'){
return true;
}
else{
return false;
}
}
In der Funktion wird auf den Listenwert „Eco“ geprüft. Ist dieser Wert in HomeAssistant gewählt, dann wird der Schalter aktiviert, d.h. es wird der Wert „true“ als Konvertierungsergebnis zurückgegeben.
Ist in HomeAssistant ein anderer Listeneintrag gewählt, dann wird der Schalter deaktiviert, d.h. es wird „false“ zurückgegeben.
Die möglichen Listenwerte sieht man in der Zustandsanzeige der Entwicklerwerkzeuge.
Über die Auswahl der select-Entität wird der Homey-Geräteschalter immer aktualisiert, sobald sich die Auswahl der HA-Entität ändert.
Die Statusübernahme von HomeAssistant nach Homey ist damit ermöglicht.
Nun fehlt aber noch die Änderung des Listeneintrags in HomeAssistant nach einem Klick auf den Schalter.
Dazu wird ein Flow erstellt, der auf die Schalteränderung reagiert.
Für beide Schalterzustände (an/aus) wird jeweils ein Auslöser eingefügt. Als Aktion wird ein Listeneintrag der HA-Entität ausgewählt.
Da im Homey-Gerät eine „select“ Entität eingefügt wurde, kann diese Entität über den Flow gesteuert werden. Die Entität kann in der Flow-Karte gewählt werden. Anschließend wird der gewünschte Listeneintrag gewählt, der aktiviert werden soll.
Nun ist auch die Entitätsänderung durch einen Schalter-Klick möglich.
Die Kombination von Homey-Capabilities in Verbindung mit Konverterfunktionen bietet damit die Möglichkeit, diverse HA-Werte in ein Homey-Gerät zu übernehmen, die sich nicht 1:1 auf Homey-Capabilities abbilden lassen.
Eine Antwort zu „HomeAssistant: Virtuelle Geräte erstellen“
Yes! This is the way 😎