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.
Inhaltsverzeichnis
- 1 Das Ziel
- 2 Voraussetzungen
- 3 Schritt 1: Helfer anlegen (Das Gedächtnis)
- 4 Schritt 2: Das Logik-Skript (Das Gehirn)
- 5 Schritt 3: Das moderne Cover-Template
- 6 Schritt 4: Synchronisierung & Anti-Prellen
- 7 Bonus: Dashboard „Ankunftskarte“
- 8 Bewerte diesen Beitrag
- 9 Support & Hilfe
- 10 Meine Produktempfehlungen für dich
- 11 Transparenzhinweis
- 12 Beitragsversion
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:
- Einen Aktor (Relais), der das Tor auslöst (z. B. Shelly oder LoraTap).
- Einen Tür-/Fensterkontakt unten (Tor geschlossen).
- Optional: Einen Kontakt oben (Tor offen).
- 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).
- Erstelle einen Timer-Helfer (
timer.ankunft_timer, Dauer 5 Min). - Erstelle eine Automation: Wenn
person.xyzuhomewechselt, starte den Timer. - 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.
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.
- 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
- 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
- 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
- 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
- 【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.
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.




