Garagentor mit Relais und 2 Türsensoren in Home Assistant (Cover Template)

WS2812 ECO 1M 144 LEDs RGB BTF-LIGHTING Individuell adressierbar WS2812 Legierungsdraht 144Pixels/m 5050 SMD Flexibler Lichtstreifen Schwarz PCB DC 5V für Heimdekoration IP30 Nicht-Wasserdicht
WS2812 ECO 1M 144 LEDs RGB BTF-LIGHTING Individuell adressierbar WS2812 Legierungsdraht 144Pixels/m 5050 SMD Flexibler Lichtstreifen Schwarz PCB DC 5V für Heimdekoration IP30 Nicht-Wasserdicht
13,99 €

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