In diesem Beispiel seht Ihr, wie man mit Hilfe eines Cover Templates sein Garagentor in Home Assistant einbinden kann.
Es werden zwei Fenster/Türkontakte so platziert, dass einer geschlossen ist, wenn das Tor geöffnet ist und der andere sobald das Tor vollständig geschlossen ist. Um nun für den Status festzustellen, ob das Tor sich gerade öffnet oder schließt vergleichen wir im value_template die Zeitpunkte der letzten Änderung der beiden Sensoren. Wurde der Sensor für „geschlossen“ zuletzt geändert öffnet sich das Tor. Andernfalls schließt es sich.
Dieses Vorgehen ist natürlich auch nicht 100% Lückenlos, aber zumindest solange recht zuverlässig, wenn man das Tor nicht mitten drin stoppt.
Hinweis zum Switch/Relais
In der Regel muss das Relais ja immer nur einen kurzen Impuls an den Motor geben um den Tastendruck zu simulieren. Dieses Cover-Template schaltet das Relais nur ein. Entweder man sorgt über eine Automatisierung dafür, dass dieses nach 0.5Sekunden ca wieder abgeschaltet wird sobald es aktiviert wurde, oder man muss in allen 3 Aktionen (open-, close- und stop_cover) noch ein delay und anschließend ein turn_off einfügen.
Ich würde die Variante mit der Automatisierung bevorzugen. Denn so kann man den Switch auch aufs Dashboard legen oder an beliebiger anderer Stelle nutzen und kann sich sicher sein, dass es egal von wo es aufgerufen wird, immer wieder abgeschaltet wird.
Cover Template Code in configuration.yaml
cover:
- platform: template
covers:
garage_door:
device_class: garage
friendly_name: "Garage Door"
value_template: >
{% if states('binary_sensor.garage_tor_auf') == "on" %}
open
{% elif states('binary_sensor.garage_tor_zu') == "on" %}
closed
{% else %}
{% if as_timestamp(states.binary_sensor.garage_tor_zu.last_changed) > as_timestamp(states.binary_sensor.garage_tor_auf.last_changed) %}
opening
{% else %}
closing
{% endif %}
{% endif %}
open_cover:
service: switch.turn_on
data:
entity_id: switch.garagedoor
close_cover:
service: switch.turn_on
data:
entity_id: switch.garagedoor
stop_cover:
service: switch.turn_on
data:
entity_id: switch.garagedoor
icon_template: >
{% if states('binary_sensor.garage_tor_auf') == "on" %}
mdi:garage-variant
{% elif states('binary_sensor.garage_tor_zu') == "on" %}
mdi:garage-open-variant
{% else %}
garage-alert-variant
{% endif %}