Zum Inhalt springen

Home Assistant Tutorial: Smarte Garagentor-Steuerung mit Positionssimulation & Template-Migration (2025)

Wer Home Assistant schon länger nutzt, kennt vielleicht die Warnmeldung: „Die veraltete platform: template-Syntax für cover wird entfernt.“ Spätestens mit Version 2026.6 ist Schluss. Es ist also Zeit zu handeln!

In diesem Tutorial zeige ich euch nicht nur, wie wir die Konfiguration auf den modernen Stand bringen, sondern wir bohren die Funktion gleich richtig auf. Wir verwandeln ein „dummes“ Garagentor (das nur Auf/Zu/Stopp kennt) in ein smartes Cover mit prozentualer Positionssteuerung und echter Statusanzeige.

Das Ziel

  • Keine Warnmeldungen mehr: Migration auf die moderne template: Integration.
  • Positionssteuerung: „Öffne Garage auf 50%“ (simuliert über Zeitmessung).
  • Echtzeit-Status: Anzeige von „Wird geöffnet…“ oder „Wird geschlossen…“.
  • Fehlerkorrektur: Synchronisation mit echten Tür-/Fensterkontakten (Anti-Prellen).

Voraussetzungen

Damit das funktioniert, benötigt ihr:

  1. Einen Aktor (Relais), der das Tor auslöst (z. B. Shelly oder LoraTap).
  2. Einen Tür-/Fensterkontakt unten (Tor geschlossen).
  3. Optional: Einen Kontakt oben (Tor offen).
  4. Stoppuhr: Die Zeit, die das Tor zum kompletten Öffnen und Schließen benötigt.

In meinem Beispiel: Öffnen = 13,8 Sekunden | Schließen = 20 Sekunden.


Schritt 1: Helfer anlegen (Das Gedächtnis)

Da unser Tor nicht weiß, wo es steht, müssen wir uns die Position merken. Dazu nutzen wir zwei Helfer in der configuration.yaml (oder via GUI).


input_number:
  garagentor_position:
    name: "Garagentor Position"
    initial: 0
    min: 0
    max: 100
    step: 1
    mode: box

input_text:
  garagentor_status:
    name: "Garagentor Status Intern"
    initial: "idle"

Schritt 2: Das Logik-Skript (Das Gehirn)

Hier passiert die Magie. Das Skript berechnet anhand der Fahrzeit, wo sich das Tor befinden müsste. Es kümmert sich auch um den „Stopp-Impuls“, wenn wir eine Zwischenposition (z. B. 50%) anfahren.

Besonderheit: Das Skript prüft während der Fahrt, ob die echten Sensoren (Aqara o.ä.) auslösen, um die Fahrt bei Bedarf abzubrechen.

Füge dies in deine scripts.yaml ein:


garagentor_fahre_auf_position:
  alias: "Garagentor Simulation mit Sensoren"
  mode: restart
  fields:
    target_position:
      description: "Zielposition in Prozent (0-100)"
      example: 50
  sequence:
    # 1. Richtung bestimmen & Status setzen (für die Anzeige)
    - choose:
        - conditions: "{{ target_position|int > states('input_number.garagentor_position')|int }}"
          sequence:
            - action: input_text.set_value
              target:
                entity_id: input_text.garagentor_status
              data:
                value: "opening"
        - conditions: "{{ target_position|int < states('input_number.garagentor_position')|int }}"
          sequence:
            - action: input_text.set_value
              target:
                entity_id: input_text.garagentor_status
              data:
                value: "closing"

    # 2. Start-Impuls an das Relais senden
    - action: switch.toggle
      target:
        entity_id: switch.loratap_garagentorsensor_garage_trigger # <-- DEIN SWITCH
    
    # 3. Schleife: Bewegung simulieren
    - repeat:
        while:
          - condition: template
            # Fahre solange Ziel nicht erreicht UND keine Sensoren die Endlage melden
            value_template: >
              {{ 
                 states('input_number.garagentor_position')|int != target_position|int 
                 and not (is_state('binary_sensor.aqara_door_window_garage_01_contact', 'off') and states('input_text.garagentor_status') == 'closing')
                 and not (is_state('binary_sensor.aqara_door_window_garage_contact', 'off') and states('input_text.garagentor_status') == 'opening')
              }}
        sequence:
          - delay:
              # Zeitberechnung: 13.8s / 100 = 0.138s pro % | 20s / 100 = 0.2s pro %
              seconds: >
                {% if states('input_text.garagentor_status') == 'opening' %} 0.138 {% else %} 0.2 {% endif %}
          - action: input_number.set_value
            target:
              entity_id: input_number.garagentor_position
            data:
              value: >
                {% set current = states('input_number.garagentor_position')|int %}
                {% if states('input_text.garagentor_status') == 'opening' %} {{ current + 1 }} {% else %} {{ current - 1 }} {% endif %}

    # 4. Stop-Impuls (Nur nötig bei Zwischenpositionen, nicht bei 0% oder 100%)
    - if:
        - condition: template
          value_template: >
            {{ target_position|int > 0 and target_position|int < 100 
               and is_state('binary_sensor.aqara_door_window_garage_01_contact', 'on') 
               and is_state('binary_sensor.aqara_door_window_garage_contact', 'on') 
            }}
      then:
        - action: switch.toggle
          target:
            entity_id: switch.loratap_garagentorsensor_garage_trigger

    # 5. Reset des Status
    - action: input_text.set_value
      target:
        entity_id: input_text.garagentor_status
      data:
        value: "idle"

Schritt 3: Das moderne Cover-Template

Jetzt definieren wir das Gerät selbst. Wichtig: Wir nutzen nicht mehr platform: template (alt), sondern die moderne template: Integration in der configuration.yaml.


template:
  - cover:
      - name: "Garagentor"
        unique_id: cover_garagentor_pro
        device_class: garage
        # Hier holen wir die Position aus dem Helfer
        position: "{{ states('input_number.garagentor_position') | int }}"
        
        # Status-Logik: Priorisiert den Skript-Status ("opening"/"closing")
        state: >-
          {% if is_state('input_text.garagentor_status', 'opening') %} opening
          {% elif is_state('input_text.garagentor_status', 'closing') %} closing
          {% elif states('input_number.garagentor_position')|int == 0 %} closed
          {% else %} open
          {% endif %}

        # Aktionen rufen unser Skript auf
        set_cover_position:
          - action: script.garagentor_fahre_auf_position
            data:
              target_position: "{{ position }}"
        open_cover:
          - action: script.garagentor_fahre_auf_position
            data:
              target_position: 100
        close_cover:
          - action: script.garagentor_fahre_auf_position
            data:
              target_position: 0
        stop_cover:
          - action: switch.toggle
            target:
              entity_id: switch.loratap_garagentorsensor_garage_trigger
          - action: script.turn_off
            target:
              entity_id: script.garagentor_fahre_auf_position
          - action: input_text.set_value
            target:
              entity_id: input_text.garagentor_status
            data:
              value: "idle"
            
        icon: >-
          {% set status = states('input_text.garagentor_status') %}
          {% set pos = states('input_number.garagentor_position')|int %}
          {% if status == 'opening' %} mdi:garage-open-up
          {% elif status == 'closing' %} mdi:garage-open-down
          {% elif pos == 0 %} mdi:garage-variant
          {% else %} mdi:garage-open-variant
          {% endif %}

Schritt 4: Synchronisierung & Anti-Prellen

Was passiert, wenn die Simulation sagt „Tor ist bei 50%“, aber das echte Tor ist schon unten angekommen (weil es schneller war oder manuell bedient wurde)? Wir brauchen Automationen, die die Position „hart“ korrigieren.

Wichtig: Sensoren neigen zum „Prellen“ (kurzes Wackeln beim Aufprall). Damit das Skript nicht beim Starten sofort abbricht, bauen wir eine 1-Sekunden-Verzögerung und eine Bedingung ein.

Füge dies in deine automations.yaml ein:


- alias: "Garagentor Sync: Position UNTEN erreicht"
  trigger:
    - platform: state
      entity_id: binary_sensor.aqara_door_window_garage_01_contact
      to: "off"
      for: "00:00:01" # Entprellen: Muss 1 Sekunde stabil sein
  condition:
    - condition: not
      conditions:
        - condition: state
          entity_id: input_text.garagentor_status
          state: "opening" # Nicht auslösen, wenn wir gerade losfahren
  action:
    - action: script.turn_off
      target:
        entity_id: script.garagentor_fahre_auf_position
    - action: input_number.set_value
      target:
        entity_id: input_number.garagentor_position
      data:
        value: 0
    - action: input_text.set_value
      target:
        entity_id: input_text.garagentor_status
      data:
        value: "idle"

# Analog dazu eine Automation für "OBEN" erstellen (Value 100, Condition "not closing").

Bonus: Dashboard „Ankunftskarte“

Als kleines Extra: Ein Button zum Öffnen der Haustür, der nur angezeigt wird, wenn man gerade nach Hause gekommen ist (für 5 Minuten).

  1. Erstelle einen Timer-Helfer (timer.ankunft_timer, Dauer 5 Min).
  2. Erstelle eine Automation: Wenn person.xy zu home wechselt, starte den Timer.
  3. Nutze diesen YAML-Code für eine Mushroom-Karte:

type: vertical-stack
cards:
  - type: custom:mushroom-title-card
    title: "Willkommen Zuhause"
  - type: conditional
    conditions:
      - entity: timer.ankunft_timer
        state: "active"
    card:
      type: custom:mushroom-entity-card
      entity: switch.vordertur_summer
      name: "Tür jetzt öffnen"
      tap_action:
        action: toggle

Viel Spaß beim Nachbauen! Jetzt ist euer Garagentor bereit für die Zukunft.

Nächster Schritt:Home Assistant – Leitfaden (DE)

Bewerte diesen Beitrag

Dein Feedback ist mir wichtig! Hat dir der Beitrag geholfen oder fehlte dir etwas? Schreib’s mir gerne in die Kommentare oder bewerte den Artikel – so kann ich meine Inhalte noch besser machen.

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Support & Hilfe

Du hast eine Frage oder brauchst Unterstützung? Über meinen Support kannst du ganz einfach ein Ticket erstellen – ich helfe dir so schnell wie möglich weiter.

Meine Produktempfehlungen für dich

Einige der folgenden Produktlinks sind sogenannte Affiliate-Links. Wenn du darüber etwas kaufst, erhalte ich eine kleine Provision – für dich bleibt der Preis natürlich gleich.

Raspi Pi 5SonoffFritz-Box 5590Fritz-Repeater 6000Ecowitt Wetterstation
Raspberry Pi 5 8GB Starter-Kit | 128GB Ultra Edition | 45W Netzteil | Offizielles Gehäuse mit Lüfter | 4K Micro HDMI Kabel 1m | Alu-Kühlkörper
Raspberry Pi 5 8GB Starter-Kit | 128GB Ultra Edition | 45W Netzteil | Offizielles Gehäuse mit Lüfter | 4K Micro HDMI Kabel 1m | Alu-Kühlkörper*
von smart-home-komponente
  • Raspberry Pi 5 8GB Quad-core ARMA76 (64 Bits - 2,4 GHz)
  • Raspberry Pi 5 Gehäuse mit Lüfter und Kühlkörper
  • Raspberry Pi 5 Netzteil 5,1 V / 5A / 45W
  • 4K HDMI zu Micro HDMI Kabel 1m
  • Ultra 64GB microSDHC + SD-Karten-Adapter
 Preis: € 154,90 Jetzt auf Amazon kaufen*
Preis inkl. MwSt., zzgl. Versandkosten
Zuletzt aktualisiert am 26. Dezember 2025 um 9:57 . Ich weise darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.
SONOFF Zigbee 3.0 USB Dongle Plus,Zigbee Gateway TI CC2652P + CP2102N Zigbee USB Stick,Zigbee Hub für ZHA in Home Assistant or Zigbee2MQTT,Open HAB etc.
SONOFF Zigbee 3.0 USB Dongle Plus,Zigbee Gateway TI CC2652P + CP2102N Zigbee USB Stick,Zigbee Hub für ZHA in Home Assistant or Zigbee2MQTT,Open HAB etc.*
von SONOFF
  • Vorgeflasht mit Z-Stack 3.x.0-Koordinator-Firmware
  • Basis auf TI CC2652P + CP2102(N)
  • Dieser zigbee 3.0 USB-Dongle-p als ZigBee-Gateway zur Verwaltung von Untergeräten in Open-Source-Plattformen mit HomeAssistant oder Zigbee2MQTT
  • SMA-Schnittstelle externe Antenne,Aluminiumgehäuse reduziert effektiv Signalstörungen von Peripheriegeräten, +20dBm Ausgangsverstärkung
  • Kann in ZigBee-Routing-Firmware flashen, als Router im ZigBee-Netzwerk die Netzwerkreichweite erweitern
Unverb. Preisempf.: € 29,74 Du sparst: € 4,85 (-16%)  Preis: € 24,89 Jetzt auf Amazon kaufen*
Preis inkl. MwSt., zzgl. Versandkosten
Zuletzt aktualisiert am 26. Dezember 2025 um 9:57 . Ich weise darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.
FRITZ!Box 5590 Fiber | Router für einen Glasfaseranschluss (Wi-Fi 6, bis 2.400 MBit/s (5 GHz) und 1.200 MBit/s (2,4 GHz), WLAN Mesh, DECT-Basis, 2,5-Gigabit-LAN-Port, geeignet für Deutschland)
FRITZ!Box 5590 Fiber | Router für einen Glasfaseranschluss (Wi-Fi 6, bis 2.400 MBit/s (5 GHz) und 1.200 MBit/s (2,4 GHz), WLAN Mesh, DECT-Basis, 2,5-Gigabit-LAN-Port, geeignet für Deutschland)*
von AVM
  • WLAN-Router mit integriertem Glasfasermodem für einen direkten Anschluss an alle in Deutschland gängigen Glasfaseranschlüsse, die passenden FRITZ!SFP-Module AON und GPON sind im Lieferumfang enthalten
  • Mehr Performance, Flexibilität und stabilste Verbindungen mit modernem Wi-Fi 6: WLAN (4x4) mit bis zu 2.400 MBit/s (5 GHz) und 1.200 MBit/s (2,4 GHz) für eine Vielzahl an Endgeräten und parallelen Anwendungen
  • Mesh Master-Funktion: die FRITZ!Box fasst verteilte WLAN-Zugangspunkte (z. B. mehrere FRITZ!Repeater) zu einem intelligenten WLAN-Netz zusammen und steuert sie so, dass die genutzten Endgeräte im Heimnetz immer am Zugangspunkt mit der besten Verbindung angemeldet sind
  • VoIP-Telefonanlage mit vielseitigen Komfortfunktionen für alle Telefone (Analog-, DECT- und IP-Telefone) sowie DECT-Basis für bis zu sechs Schnurlos-Telefone und zur Steuerung von Smarthome-Geräten, z. B. die schaltbaren Steckdosen FRITZ!DECT 200/210 oder der Heizkörperregler FRITZ!DECT 302
  • 4 ultraschnelle Gigabit-LAN-Anschlüsse für Computer, Fernseher und andere Netzwerk-Geräte, 1x 2,5 Gigabit-WAN-Anschluss, 2x USB 3.0-Anschluss für Drucker und Speicher im Netz, SFP-Cage für ein FRITZ!SFP Modul
  • Lieferumfang: FRITZ!Box 5590 Fiber, 1x FRITZ!SFP AON, 1x FRITZ!SFP GPON, 1x Netzteil, 4m Glasfaserkabel (LC/APC - LC/APC), 1,5m LAN-Kabel, Installationsanleitung
Unverb. Preisempf.: € 279,00 Du sparst: € 80,00 (-29%)  Preis: € 199,00 Jetzt auf Amazon kaufen*
Preis inkl. MwSt., zzgl. Versandkosten
Zuletzt aktualisiert am 26. Dezember 2025 um 9:57 . Ich weise darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.
FRITZ!Repeater 6000 (WiFi 6 Repeater mit drei Funkeinheiten: 5 GHz (2 x bis zu 2.400 MBit/s), 2,4 GHz (bis zu 1.200 MBit/s), 2,5-Gigabit-LAN, deutschsprachige Version)
FRITZ!Repeater 6000 (WiFi 6 Repeater mit drei Funkeinheiten: 5 GHz (2 x bis zu 2.400 MBit/s), 2,4 GHz (bis zu 1.200 MBit/s), 2,5-Gigabit-LAN, deutschsprachige Version)*
von AVM
  • Innovatives und schnelles WiFi 6 ausgelegt für ein anspruchsvolles Heimnetz mit einer Vielzahl an gleichzeitig verwendeten WLAN-Endgeräten
  • Intelligente und automatische Bandauswahl im laufenden Betrieb: Drei Funkeinheiten für ein High-End WLAN mit bis zu 6.000 MBit/s (WLAN AX)
  • Ultraschneller Gigabit-LAN-Anschluss für den Aufbau einer LAN-Brücke oder für Netzwerkgeräte ohne WLAN-Funktion
  • WLAN Mesh: Mehrere WLAN-Zugangspunkte werden zu einem WLAN-Netz mit optimaler Leistung zusammengefasst, kompatibel zu allen gängigen WLAN-Routern, einfache und sichere WLAN-Einrichtung per Knopfdrucküber WPS
  • Lieferumfang: FRITZ!Repeater 6000, Installationsanleitung, 1x Netzwerkkabel und 1x Netzteil
Unverb. Preisempf.: € 259,00 Du sparst: € 59,01 (-23%)  Preis: € 199,99 Jetzt auf Amazon kaufen*
Preis inkl. MwSt., zzgl. Versandkosten
Zuletzt aktualisiert am 26. Dezember 2025 um 9:57 . Ich weise darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.
ECOWITT Wittboy Wetterstation mit Außensensor GW2001, 7-in-1 Außensensor WS90 mit Wi-Fi/Kabel-Gateway GW2000 Genaue Wettervorhersagedaten für Haus, Garten und Bauernhof 868 MHz
ECOWITT Wittboy Wetterstation mit Außensensor GW2001, 7-in-1 Außensensor WS90 mit Wi-Fi/Kabel-Gateway GW2000 Genaue Wettervorhersagedaten für Haus, Garten und Bauernhof 868 MHz*
von ECOWITT
  • 【Multifunktionale Funk-Wetterstation für Zuhause】 Die Ecowitt Wittboy professionelle Wetterstation wird mit einem WLAN-Hub-Gateway und einem 7-in-1-Außensensor geliefert. Über einen drahtlosen/kabelgebundenen Gateway-Hub GW2000 können wir nach der WLAN-Konfiguration alle Wettervorhersagen des Tages auf der Ecowitt-App oder anderen Geräten ablesen. Die neueste Version der Wetterstation ist kleiner, intelligenter und einfacher zu bedienen. Frequenz: 868 MHz.
  • 【7 in 1 Wetterstation mit kabellosem Außensensor】: Ecowitt WittBoy Wetterstation Der Außensensor umfasst einen berührbaren Regensensor, einen Licht- und UV-Sensor, LED-Anzeige, ein Solarpanel, einen Ultraschall-Windgeschwindigkeitssensor, einen Temperatur- und Feuchtigkeitssensor im Innenbereich, eine Nordausrichtungsanzeige, die Außentemperatur und -feuchtigkeit, Windgeschwindigkeit und -richtung, Niederschlag und UV-Licht erkennen kann. Feste Schraube (Montage auf einer Stange mit 2,5 cm Durchmesser).
  • 【3-in-1 GW2000 kabelgebundener / kabelloser Gateway-Hub】 Bietet 3 WLAN-Konfigurationsmethoden. Ausgestattet mit einem fortschrittlichen 3-in-1-Sondensensor für Temperatur, Luftfeuchtigkeit und Luftdruck mit OTA-Technologie kann der GW2000 Hub die Firmware automatisch aktualisieren, wenn WLAN angeschlossen ist. Die Firmware der Außenwetterstation muss manuell aktualisiert werden. Voraussetzung: GW2000 Gateway mit Ihrem Router verbunden mit Internetzugang aus dem Netzwerk
  • 【Drahtlose / kabelgebundene Verbindung】Verbinden Sie sich mit WU oder WeatherCloud und anderen benutzerdefinierten Websites (wenn die Website das gleiche Protokoll wie Wunderground oder Ecowitt hat). Mit WU können Sie lokale persönliche Wetterstationsdaten anzeigen, speichern, analysieren, teilen und vergleichen und schöne anpassbare Diagramme und Grafiken verwenden, um Gemeinschaftswetterhistorie-Daten sowie E-Mail-Benachrichtigungen zu erstellen.
  • 【Pairing mit verschiedenen Sensoren】 Der WLAN Wetterstation Hub GW2000 kann mit verschiedenen Ecowitt Funksensoren (separat erhältlich) und anderen zu entwickelnden Sensoren gekoppelt werden, z. B. WN34-Thermometer, bis zu 4 WH41/WH43 Luftqualitätssensoren / WH55 Wasserleckdetektor, 1 × WH40 Regenmesser Sensor / WH45 Luftqualitätssensoren / Windmesser WS68 Sensor / WH57 Blitzsensor usw.
  • Einige dieser Produkte haben einen kostenlosen UK-Stecker, nicht alle von ihnen, können nicht für den europäischen Standardstecker geeignet sein, aber die Verteilung der Netzwerkkabel ist ein USB-Stecker, um die Bedürfnisse der Kunden zu erfüllen, beeinträchtigt nicht die Verwendung des Produkts, wenn die Steckdose nicht zutrifft, ignorieren Sie sie bitte, ich hoffe, kein Missverständnis zu verursachen.
  • Unsere Präzisions-Temperatur- und Feuchtigkeitsmodule werden leicht vom Meerwasser angegriffen. Wenn wir also am Strand oder auf einer Insel sein müssen, können wir keine konventionellen Produkte verwenden und benötigen bessere Temperatur- und Feuchtigkeitssensoren mit Keramikkartuschen, kontaktieren Sie uns bitte.
  • Achtung: WS90 Outdoor-Wetterstation-Produkte haben mehr Technologie zu verbessern, aufgrund der hohen Empfindlichkeit, so dass der Wind weht, und ein leichter Regen kann zu Datenschwankungen führen, die Daten sind ungenau. Wenn Sie hohe Anforderungen an die Datengenauigkeit haben, empfehlen wir Ihnen wh40 zu kaufen und mit ws90 zu vergleichen, um Korrekturwerte zu machen. Wenn Sie keine genauen Anforderungen an die Niederschlagsdaten haben, dann ist WS90 richtig.
Unverb. Preisempf.: € 269,89 Du sparst: € 24,90 (-9%)  Preis: € 244,99 Jetzt auf Amazon kaufen*
Preis inkl. MwSt., zzgl. Versandkosten
Zuletzt aktualisiert am 26. Dezember 2025 um 9:57 . Ich weise darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.

Transparenzhinweis

*Die mit Sternchen markierten Links sind sogenannte „Affiliate-Links“. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Wird über diese ein Einkauf getätigt, werde ich mit einer kleinen Provision beteiligt – ohne das Kosten für dich entstehen. Vielen Dank für deinen Support!

Gerne darfst du aber auch meine Arbeit über eine Pay Pal Spende unterstützen.

Beitragsversion

Dieser Beitrag wird regelmäßig aktualisiert, um dir stets die aktuellsten Informationen zu bieten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

The maximum upload file size: 5 MB. You can upload: image. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here