Home Assistant: Garagentor mit Zigbee-Sensor und Shelly steuern
Garagentor smart machen mit Home Assistant, Zigbee-Kontaktsensor und Shelly Wave 1PM. Komplette Anleitung mit YAML-Code, Button-Card und Automatisierungen.
- Einleitung: Warum dein Garagentor smart werden sollte
- Das brauchst du: Einkaufsliste
- Wie funktioniert das Setup?
- Hardware-Einbau: Schritt für Schritt
- Home Assistant Integration
- YAML-Konfiguration: Cover-Entität erstellen
- Dashboard: Button-Card für schicke Steuerung
- Automatisierungen: Smart Home Intelligence
- Troubleshooting: Bekannte Probleme und Lösungen
- Zusatz-Tipps: Level Up dein Setup
- 🛒 Verwendete Hardware
- 🛒 Verwendete Hardware
- Fazit: Dein smarter Einstieg
Einleitung: Warum dein Garagentor smart werden sollte#
Kennst du das? Du liegst abends im Bett und fragst dich: „Habe ich das Garagentor wirklich zugemacht?" Oder du stehst an der Haustür und merkst, dass du das Tor offen gelassen hast. Mit einem smarten Garagentor gehören diese Sorgen der Vergangenheit an.
In diesem Tutorial zeige ich dir, wie du dein bestehendes Garagentor mit Home Assistant, einem Zigbee-Kontaktsensor und einem Shelly Wave 1PM zu einem vollwertigen Smart-Home-Gerät machst. Du kannst:
- Status abfragen: Ist das Tor offen oder geschlossen?
- Fernsteuerung: Tor per Smartphone, Tablet oder Sprachbefehl öffnen/schließen
- Automatisierungen: Benachrichtigungen wenn das Tor länger als 10 Minuten offen ist
- Leistungsmessung: Überwache den Stromverbrauch des Motors
Das Beste: Die Lösung kostet unter 50 Euro und ist in wenigen Stunden umgesetzt – auch ohne Elektrotechnik-Studium.
Das brauchst du: Einkaufsliste#
Hardware#
Komponente Beschreibung Preis (ca.) Kauflink
Aqara Tür-/Fenstersensor Zigbee-Kontaktsensor für den Tor-Status ~15 € Amazon Shelly Wave 1PM Z-Wave Schaltaktor mit Leistungsmessung (schaltet den Motor) ~25 € Amazon/Shelly Shop Abzweigdose Größere Dose (mind. 85x85mm tief) für Shelly + WAGO-Klemmen ~5 € Baumarkt WAGO-Klemmen Sortiment 221er Serie (2-, 3-, 5-Leiter) ~10 € Baumarkt NYM-Kabel Falls zusätzliche Leitungen nötig (5x1,5mm²) variabel Baumarkt
Optional:
- RC-Snubber (0,1µF / 100Ω) zur Relaiskontakt-Schonung bei induktiven Lasten
Software#
- Home Assistant (Core, OS oder Supervised)
- Zigbee-Integration: z.B. Zigbee2MQTT oder ZHA mit Coordinator (ConBee II, Sonoff ZBDongle)
- Z-Wave-Integration: Z-Wave JS mit USB-Stick (Aeotec Z-Stick, Zooz)
Wie funktioniert das Setup?#
Das Prinzip ist simpel:
- Kontaktsensor am Tor: Der Aqara-Sensor meldet „offen" oder „geschlossen"
- Shelly Wave 1PM am Motor: Schaltet die vorhandene Taster-Eingabe des Garagentorantriebs
- Home Assistant koordiniert: Liest Status, löst Schaltvorgänge aus, automatisiert Aktionen
Wichtig: Wir ändern nichts an der Motor-Steuerung! Wir simulieren nur einen Tasterdruck – genau wie dein vorhandener Wandtaster.
Hardware-Einbau: Schritt für Schritt#
Vorbereitung: Sicherheit geht vor!#
⚠️ Bevor du anfängst:
- Sicherung raus und gegen Wiedereinschalten sichern
- Spannungsfreiheit prüfen (zweipolig mit Duspol/Multimeter)
- Fotos der aktuellen Verkabelung machen (vor dem Lösen!)
Schritt 1: Kontaktsensor montieren#
Der Aqara-Sensor besteht aus zwei Teilen:
- Hauptsensor (mit Batterie): an der feststehenden Zarge
- Magnet: am beweglichen Torflügel
Montage:
- Befestige den Hauptsensor mit doppelseitigem Klebeband oder kleinen Schrauben an der Garagenwand (oben, wo das Tor im geschlossenen Zustand anliegt)
- Klebe den Magneten direkt gegenüber ans Tor (Abstand <2cm im geschlossenen Zustand)
- Teste die Funktion: Sensor-LED blinkt beim Öffnen/Schließen
Tipp: Aqara-Sensoren lassen sich über Zigbee2MQTT oder ZHA in Home Assistant einbinden. Im Beispiel heißt die Entity: binary_sensor.0x00158d000a988f21_contact
Schritt 2: Shelly Wave 1PM verkabeln#
Hier wird’s elektrisch – daher die Sicherheit nochmals betonen!
2.1 Zentrale Abzweigdose vorbereiten#
Finde die Dose, in der die Zuleitung (230V) und die Motor-Leitung zusammenkommen. Oft ist das eine bestehende Dose in der Nähe des Antriebs oder der Wandtaster.
Empfehlung: Nutze eine größere, tiefere Abzweigdose (mind. 85mm tief), damit Shelly + WAGO-Klemmen sauber Platz haben.
2.2 WAGO-Sammelklemmen setzen#
Baue folgende Busse auf (= Sammelschienen mit WAGO 221):
- PE-Bus (grün/gelb): Alle Schutzleiter zusammen
- N-Bus (blau): Alle Neutralleiter zusammen + Pigtail zu Shelly N
- L-Bus (braun/schwarz): Dauerphase von Zuleitung + Pigtail zu Shelly L
- Shelly O (Ausgang): Geschaltete Phase zum Motor (bzw. Motor-Taster-Eingang)
- SW-Return: Falls du einen physischen Taster parallel betreiben willst
Schaltplan-Logik (vereinfacht):
Zuleitung (230V)
├─ PE → PE-Bus (grün/gelb)
├─ N → N-Bus (blau) → Shelly N
└─ L → L-Bus (braun) → Shelly L
Shelly O → Motor-Taster-Eingang (simuliert Tasterdruck)
Motor N ← N-Bus
Wichtig: Der Shelly schaltet nur die Phase zum Motor-Steuereingang (wie ein Taster). Der Motor selbst hat weiterhin seine eigene Stromversorgung!
2.3 Shelly-Anschlüsse#
Der Shelly Wave 1PM hat folgende Klemmen:
- L: Dauerphase (230V)
- N: Neutralleiter
- O: Schaltausgang (zu Motor)
- SW: Eingang für physischen Taster (optional)
Anschluss:
- L → von L-Bus (WAGO)
- N → von N-Bus (WAGO)
- O → zur Motor-Steuerung (Taster-Anschluss, oft als „AUF/ZU/IMPULS" beschriftet)
- SW → optionaler physischer Taster (falls du weiterhin einen Wandtaster nutzen willst)
Z-Wave Einbindung:
- Setze den Shelly in Pairing-Modus (3x kurz an L drücken oder per Button am Gerät)
- In Home Assistant: Z-Wave JS → „Node hinzufügen"
Nach erfolgreicher Anmeldung erscheint der Shelly mit Entities wie:
switch.garagentorsensor.garagentor_shelly_resetter_leistung(Power in Watt)
Home Assistant Integration#
Voraussetzungen#
Stelle sicher, dass folgende Integrationen eingerichtet sind:
- Zigbee2MQTT oder ZHA (für den Kontaktsensor)
- Z-Wave JS (für den Shelly Wave 1PM)
Entity-Namen#
Nach der Einbindung hast du folgende Entities (Beispiel):
# Kontaktsensor (Zigbee)
binary_sensor.0x00158d000a988f21_contact
# off = geschlossen
# on = offen
# Shelly Wave 1PM (Z-Wave)
switch.garagentor # Schalter (toggle = Puls senden)
sensor.garagentor_shelly_resetter_leistung # Leistung in Watt
YAML-Konfiguration: Cover-Entität erstellen#
Home Assistant hat einen Device-Type „Cover" für Garagentore. Wir erstellen eine Template-Cover-Entity, die Status und Steuerung kombiniert.
configuration.yaml#
# Cover für Garagentor (Template)
cover:
- platform: template
covers:
garagentor:
friendly_name: "Garagentor"
device_class: garage
# Status: offen/geschlossen basierend auf Kontaktsensor
value_template: >-
closed
open
# Öffnen/Schließen = Puls senden (Shelly toggle)
open_cover:
- service: script.garage_button_pulse
close_cover:
- service: script.garage_button_pulse
stop_cover:
- service: script.garage_button_pulse
# Icon basierend auf Status
icon_template: >-
mdi:garage
mdi:garage-open
Script: Puls-Funktion#
Der Motor braucht nur einen kurzen Impuls (wie beim Taster). Wir nutzen ein Script:
# scripts.yaml
garage_button_pulse:
alias: "Garagentor Taster-Impuls"
sequence:
# 1. State prüfen BEVOR wir schalten (Race Condition vermeiden!)
- condition: template
value_template: >
}
# 2. Shelly EIN (Motor startet)
- service: switch.turn_on
target:
entity_id: switch.garagentor
# 3. Warten (Puls-Dauer)
- delay:
milliseconds: 500
# 4. Shelly AUS (Puls beendet)
- service: switch.turn_off
target:
entity_id: switch.garagentor
mode: single # Verhindert parallele Ausführungen
Wichtig: Die Condition prüft die Leistung des Motors. Wenn der Motor bereits läuft (>130W), wird kein neuer Puls gesendet. Das verhindert die Race Condition (dazu mehr unter Troubleshooting).
Dashboard: Button-Card für schicke Steuerung#
Die Standard-Cover-Entity funktioniert, sieht aber langweilig aus. Mit der Button-Card (HACS) wird’s hübsch:
Installation Button-Card#
- HACS öffnen
- Frontend → „Button Card" suchen und installieren
- Home Assistant neu starten
Lovelace-Konfiguration#
type: custom:button-card
entity: cover.garagentor
name: Garagentor
show_state: true
show_icon: true
icon: mdi:garage
tap_action:
action: toggle
hold_action:
action: more-info
state:
- value: open
color: red
icon: mdi:garage-open
- value: closed
color: green
icon: mdi:garage
styles:
card:
- height: 120px
- font-size: 16px
icon:
- width: 60px
Ergebnis: Ein großer Button, der rot wird wenn das Tor offen ist, grün wenn geschlossen. Tippen = Toggle.
Automatisierungen: Smart Home Intelligence#
1. Benachrichtigung bei offenem Tor#
# automations.yaml
- id: garage_door_open_notification
alias: "Garagentor offen: Benachrichtigung"
trigger:
- platform: state
entity_id: binary_sensor.0x00158d000a988f21_contact
to: "on"
for:
minutes: 10
action:
- service: notify.mobile_app # oder notify.telegram etc.
data:
title: "⚠️ Garagentor offen"
message: "Das Garagentor ist seit 10 Minuten offen!"
2. Automatisches Schließen nachts#
- id: garage_door_auto_close_night
alias: "Garagentor automatisch schließen (nachts)"
trigger:
- platform: time
at: "22:00:00"
condition:
- condition: state
entity_id: binary_sensor.0x00158d000a988f21_contact
state: "on"
action:
- service: cover.close_cover
target:
entity_id: cover.garagentor
- service: notify.mobile_app
data:
message: "Garagentor wurde automatisch geschlossen (22 Uhr)"
3. Auto-Status tracken (Optional)#
Wenn du wissen willst, ob dein Auto in der Garage steht:
# input_boolean.yaml
input_boolean:
auto_in_garage:
name: Auto in Garage
icon: mdi:car
# Automation: Auto fährt rein
- id: car_enters_garage
alias: "Auto fährt in Garage"
trigger:
- platform: state
entity_id: binary_sensor.0x00158d000a988f21_contact
from: "on"
to: "off"
condition:
# Nur zählen wenn Tor länger als 30s offen war (vermeidet Fehlauslösung)
- condition: template
value_template: >
}
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.auto_in_garage
Troubleshooting: Bekannte Probleme und Lösungen#
Problem 1: Race Condition beim Toggle#
Symptom: Manchmal reagiert das Tor nicht auf den Befehl, oder es stoppt mitten in der Bewegung.
Ursache: Wenn der Motor bereits läuft und du erneut einen Puls sendest, interpretiert der Antrieb das als „STOP"-Befehl.
Lösung: Prüfe die Leistung des Motors vor dem Schalten:
# Im Script (siehe oben)
- condition: template
value_template: >
}
Wenn die Leistung >130W ist, läuft der Motor noch – dann wird kein neuer Puls gesendet.
Problem 2: Shelly schaltet nicht#
Checkliste:
- Ist der Shelly in Z-Wave JS angemeldet? (Status prüfen)
- Ist die Verkabelung korrekt? (L, N, O geprüft?)
- Ist die Last am O-Ausgang korrekt angeschlossen?
- Teste manuell:
Developer Tools → Services → switch.turn_on → entity_id: switch.garagentor
Problem 3: Kontaktsensor meldet falschen Status#
Mögliche Ursachen:
- Magnet zu weit vom Sensor entfernt (max. 2cm Abstand!)
- Batterie leer (CR2032 Knopfzelle)
- Zigbee-Verbindung instabil (Router/Repeater zu weit weg?)
Lösung:
- Positionierung prüfen (Magnet näher ran)
- Batterie tauschen
- Zigbee-Mesh optimieren (mehr Repeater/Router-Devices)
Problem 4: Motor reagiert zu schnell/langsam#
Anpassung der Puls-Dauer:
Im Script garage_button_pulse kannst du die delay-Zeit anpassen:
- delay:
milliseconds: 500 # Standard
# Teste: 300, 700, 1000 je nach Motor
Manche Motoren brauchen längere Impulse (>700ms), andere reagieren schon bei 300ms.
Zusatz-Tipps: Level Up dein Setup#
Leistungsmessung nutzen#
Der Shelly Wave 1PM misst den Stromverbrauch. Nutze das:
# Sensor für „Motor läuft"
binary_sensor:
- platform: template
sensors:
garagentor_motor_running:
friendly_name: "Garagentor Motor läuft"
value_template: >
}
So kannst du z.B. eine Automatisierung bauen, die dich warnt, wenn der Motor länger als 30 Sekunden läuft (= Problem/Blockierung).
Sprachsteuerung#
Mit Home Assistant + Google Home / Alexa:
# Expose in Google Home/Alexa
homeassistant:
customize:
cover.garagentor:
google_assistant: true
alexa: true
Sprachbefehl: „Hey Google, öffne das Garagentor"
NFC-Tag am Auto#
Klebe einen NFC-Tag ins Auto (z.B. an die Sonnenblende). Mit der Home Assistant Companion App kannst du das Tor per NFC-Scan öffnen:
- NFC-Tag schreiben → Home Assistant Action →
cover.open_cover→cover.garagentor - Smartphone ans Tag halten = Tor öffnet sich
🛒 Verwendete Hardware#
Die in diesem Guide verwendeten Komponenten:
- 📡 Aqara Tür-/Fensterkontakt MCCGQ11LM — Zigbee Kontaktsensor, klein und zuverlässig
- 🔌 Shelly Wave 1PM — Z-Wave Relais mit Leistungsmessung
- 📡 Zigbee USB-Coordinator (ConBee II) — USB-Stick für Zigbee-Netzwerk
- 🖥️ Raspberry Pi 5 für Home Assistant — Perfekter Home Assistant Host
- 💾 Home Assistant SkyConnect — Zigbee + Thread Stick für HA
🛒 Verwendete Hardware#
Die in diesem Guide verwendeten Komponenten:
- 📡 Aqara Tür-/Fensterkontakt MCCGQ11LM — Zigbee Kontaktsensor, klein und zuverlässig
- 🔌 Shelly Wave 1PM — Z-Wave Relais mit Leistungsmessung
- 📡 Zigbee USB-Coordinator (ConBee II) — USB-Stick für Zigbee-Netzwerk
- 🖥️ Raspberry Pi 5 für Home Assistant — Perfekter Home Assistant Host
- 💾 Home Assistant SkyConnect — Zigbee + Thread Stick für HA
Fazit: Dein smarter Einstieg#
Mit weniger als 50 Euro und einem Nachmittag Arbeit hast du dein Garagentor ins Smart Home integriert. Du kannst:
✅ Status jederzeit abfragen
✅ Per App/Dashboard/Sprache steuern
✅ Automatisierungen nutzen (Benachrichtigungen, Auto-Close)
✅ Stromverbrauch überwachen
Nächste Schritte:
- Weitere Sensoren einbinden (z.B. Temperatursensor für Garagenklima)
- Integration mit Alarmanlage (Tor offen = Alarm deaktiviert)
- Präsenz-Erkennung (Auto in Garage = Anwesenheit)
Viel Spaß beim Nachmachen – und wenn du Fragen hast, schreib mir gerne!
Weiterführende Tutorials auf homelab-guide.de:
- Docker auf Proxmox einrichten — Docker-Host für Home Assistant und andere Services aufsetzen
- Zabbix Monitoring im Homelab — Überwache dein Smart Home und deine Server
- Nginx Reverse Proxy einrichten — Home Assistant über HTTPS von außen erreichbar machen
Weiterführende Links:
Disclaimer: Arbeiten an elektrischen Anlagen dürfen nur von qualifizierten Personen durchgeführt werden. Bei Unsicherheit einen Elektriker konsultieren. Die Umsetzung erfolgt auf eigene Gefahr.
Einige Links auf dieser Seite sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision — für dich ändert sich am Preis nichts. So unterstützt du diesen Blog und ermöglichst weitere kostenlose Tutorials. Danke! 🙏
[« Vorherige]
Docker Container richtig sichern und wiederherstellen — Backup-Guide