Garagentor smart machen: ESP32-C3, Relais und Homebridge (inkl. CarPlay)

Enthält Affiliate-Links

Mein Garagentor soll smarter werden: Tor per Browser, Siri oder sogar aus dem Auto mit CarPlay öffnen und schließen, ohne dafür jedes Mal den Handsender suchen zu müssen. Ein ESP32-C3 übernimmt die Steuerung.

Der erste Versuch ging allerdings schief: Ich wollte den Hörmann-Innentaster über einen Optokoppler auslösen, direkt an der Taste, die das Tor öffnet. Hat nicht funktioniert. Statt weiter zu raten, habe ich auf ein fertiges 3-V-Relaismodul umgestellt, das potentialfrei schaltet. Das ist ohnehin die robustere Lösung, denn für den Antrieb sieht ein Relais genau so aus wie ein gedrückter Taster.

ESP32-C3 Mini mit Relaismodul

In diesem Beitrag zeige ich dir:

  1. wie du die Arduino IDE einrichtest und den ESP32-C3 vorbereitest,
  2. wie du das Relais anschließt,
  3. was die Firmware kann (Webinterface, einstellbare Triggerzeit, Cooldown),
  4. wie du das Ganze in Homebridge einbindest, als einfachen Schalter oder als Garagentor, das sogar in CarPlay auftaucht,
  5. und wie du alternativ einen iOS-Kurzbefehl nutzt.

Den kompletten Code und eine README gibt es am Ende zum Download.


Was du brauchst

  • ESP32-C3-Board (ich nutze einen ESP32-C3 Mini)
  • 3-V-1-Kanal-Relaismodul mit High-Level-Trigger und Optokoppler-Trennung
  • USB-Kabel (mit Datenleitungen, reine Ladekabel funktionieren nicht)
  • ein paar Dupont-Kabel und Litze zum Anschluss an den Taster
  • optional: ein Widerstand mit 10 kΩ
  • Computer mit Windows, macOS oder Linux
  • für den Teil mit Apple Home: ein Homebridge-Server im Heimnetz oder alternativ nur ein iPhone für den Kurzbefehl

Achtung: Gearbeitet wird ausschließlich an der Niedervolt-Leitung des Tasters. Netzspannung hat an dem Relaismodul nichts verloren. Wenn du dir unsicher bist, schau dir die Anleitung deines Antriebs an oder frag jemanden vom Fach.


Teil 1: Arduino IDE einrichten

Die Arduino IDE ist der einfachste Einstieg, um den ESP32-C3 zu programmieren.

IDE installieren

  1. Auf arduino.cc die aktuelle Arduino IDE 2.x für dein Betriebssystem herunterladen.
  2. Installieren und starten.

ESP32-Unterstützung hinzufügen

Die IDE kennt ESP32-Boards nicht von Haus aus. Das holen wir nach:

  1. Datei → Einstellungen (macOS: Arduino IDE → Einstellungen) öffnen.
  2. Im Feld „Zusätzliche Boardverwalter-URLs“ diese Adresse eintragen: https://espressif.github.io/arduino-esp32/package_esp32_index.json
  3. Mit OK bestätigen.
  4. Links in der Seitenleiste den Boardverwalter öffnen (oder Werkzeuge → Board → Boardverwalter).
  5. Nach „esp32“ suchen und das Paket „esp32 by Espressif Systems“ installieren. Das dauert einen Moment, es werden einige Hundert MB geladen.

Arduino IDE: Boardverwalter-URL eintragen

Bibliothek installieren

Die Firmware nutzt WiFiManager. Dadurch musst du keine WLAN-Zugangsdaten im Code speichern, sondern gibst sie später bequem über ein Webportal ein.

  1. Sketch → Bibliothek einbinden → Bibliotheken verwalten (oder das Bücher-Symbol links).
  2. Nach „WiFiManager“ suchen.
  3. Die Bibliothek von tzapu installieren.

Teil 2: ESP32-C3 vorbereiten

Board anschließen

  1. ESP32-C3 per USB mit dem Rechner verbinden.
  2. In der Arduino IDE Werkzeuge → Board → esp32 → ESP32C3 Dev Module wählen.
  3. Unter Werkzeuge → Port den passenden Port auswählen (unter Windows COMx, unter macOS/Linux etwas wie /dev/cu.usbmodem… bzw. /dev/ttyACM0).

Wichtige Einstellungen

Unter Werkzeuge sollte Folgendes gesetzt sein:

EinstellungWert
BoardESP32C3 Dev Module
USB CDC On BootEnabled (sonst siehst du im Serial Monitor nichts)
Upload SpeedStandardwert reicht
Portdein ESP32-C3

Arduino IDE: Boardeinstellungen für den ESP32-C3

Wenn der Port nicht auftaucht

Das passiert beim ESP32-C3 manchmal, vor allem beim ersten Flashen. Dann hilft der Download-Modus:

  1. BOOT-Taste gedrückt halten,
  2. dabei kurz die RESET-Taste drücken (oder bei Boards ohne Reset: USB-Kabel einstecken),
  3. BOOT loslassen. Der Port sollte jetzt erscheinen.

Nach dem Flashen einmal Reset drücken oder USB neu verbinden.


Teil 3: Verdrahtung

Der Aufbau ist erfreulich übersichtlich:

Relais-ModulESP32-C3
VCC3V3
GNDGND
INGPIO4

Die beiden Schaltkontakte COM und NO des Relais kommen parallel zum Hörmann-Innentaster, also an dieselben beiden Klemmen, an denen auch die Taste hängt. Die Polarität ist egal, das Relais ist ein reiner Schalter.

Verdrahtungsskizze

Zwei Tipps aus der Praxis:

  • Pulldown-Widerstand: Ein 10-kΩ-Widerstand zwischen IN und GND verhindert, dass das Relais beim Booten kurz anzieht, solange der Pin noch nicht definiert ist. Bei einem Garagentor will man das lieber nicht erleben.
  • Falls dein Modul invertiert schaltet (Low-Level-Trigger), änderst du in Config.h nur die Zeile #define RELAY_ACTIVE_LEVEL HIGH auf LOW.

Warum GPIO4? Der Pin ist beim ESP32-C3 unkritisch. Die Pins 2, 8 und 9 sind Strapping-Pins (beeinflussen den Bootvorgang), 18 und 19 hängen an USB. Die macht man besser nicht zum Schalten.


Teil 4: Firmware aufspielen

  1. ZIP-Datei am Ende des Beitrags herunterladen und entpacken.
  2. GarageDoorController.ino in der Arduino IDE öffnen. Die anderen Dateien (Config.h, Trigger.cpp usw.) öffnen sich automatisch als Tabs.
  3. Board und Port wie oben auswählen und auf Hochladen klicken.
  4. Nach dem Upload den Serial Monitor (115200 Baud) öffnen. Dort siehst du später die IP-Adresse.

WLAN einrichten

Beim ersten Start kennt der ESP dein WLAN noch nicht und macht deshalb selbst eins auf:

  1. Mit dem Handy oder Laptop mit dem WLAN GarageDoor-Setup verbinden.
  2. Das Konfigurationsportal öffnet sich (sonst im Browser die Adresse 192.168.4.1 aufrufen).
  3. Dein Heim-WLAN auswählen, Passwort eingeben, speichern.
  4. Der ESP startet neu und hängt sich ins Heimnetz.

WiFiManager von tzapu – Fertige Bibliothek in Arduino als Addon

Die IP-Adresse findest du im Serial Monitor oder in der Geräteliste deines Routers. Ich empfehle, im Router eine feste IP (DHCP-Reservierung) für den ESP zu vergeben. Die Beispiele unten verwenden 192.168.0.103. Ersetze das durch deine Adresse.


Teil 5: Was die Firmware kann

Im Browser unter http://192.168.0.103/ gibt es eine kleine Weboberfläche.

Funktionen:

  • Tor öffnen: ein Klick, das Relais schließt kurz und „drückt“ die Taste.
  • Triggerdauer: wie lange das Relais anzieht. Standard 1000 ms, einstellbar von 100 bis 5000 ms.
  • Cooldown: Nach einem Tastendruck ignoriert der ESP weitere Auslöseversuche für eine einstellbare Zeit. Standard sind 5 Sekunden, einstellbar von 0 bis 3600 Sekunden (0 schaltet ihn aus). Damit löst ein Doppelklick oder eine hektische Siri-Wiederholung das Tor nicht gleich wieder aus, nachdem es sich gerade in Bewegung gesetzt hat.
  • Status: Bereit, Trigger aktiv oder Cooldown (x s).
  • Einstellungen bleiben erhalten, auch nach einem Neustart oder Stromausfall.
  • Neustart und WLAN zurücksetzen direkt aus der Oberfläche.

HTTP-Schnittstelle, für alles, was später per Homebridge oder Kurzbefehl kommt:

AufrufFunktion
GET /openTor auslösen
GET /save?trigger=1000&cooldown=5Triggerdauer (ms) und Cooldown (s) speichern
GET /statusAntwortet mit ONLINE
GET /restartNeustart
GET /resetwifiWLAN-Daten löschen

Zum Testen reicht es, http://192.168.0.103/open im Browser aufzurufen. Wenn das Relais klickt und das Tor sich bewegt, ist die Hardware in Ordnung.

Wichtig: /open antwortet immer gleich, auch wenn der Aufruf wegen Cooldown ignoriert wurde. Ob das Tor wirklich ausgelöst hat, siehst du am Tor oder im Status der Weboberfläche.


Teil 6: Einbindung in Homebridge

Wenn du bereits Homebridge laufen hast, brauchst du nur noch wenige Zeilen.

Variante A: Einfacher Schalter

Das Plugin homebridge-http-switch legt in Apple Home einen Schalter an, der beim Antippen eine URL aufruft und sich sofort wieder ausschaltet („stateless“). Das passt perfekt zu einem Taster.

  1. In der Homebridge-Oberfläche unter Plugins nach homebridge-http-switch suchen und installieren.
  2. In der Config (Bereich accessories) ergänzen:
{
  "accessory": "HTTP-SWITCH",
  "name": "Garagentor",
  "switchType": "stateless",
  "onUrl": "http://192.168.0.103/open"
}
  1. Homebridge neu starten.
  2. In der Home-App erscheint der Schalter Garagentor. Antippen löst das Tor aus, der Schalter springt von selbst zurück.

Das funktioniert auch mit Siri („Hey Siri, schalte Garagentor ein“) und in Automationen.

Variante B: Als Garagentor, das in CarPlay auftaucht

Warum nicht einfach Variante A? Ganz einfach: CarPlay hat keinen Bock auf normale Schalter. Ein echtes Garagentor-Zubehör hingegen taucht anstandslos im Auto auf. Apple Home ist da ziemlich smart und bringt das Icon direkt ins Display, damit du das Tor im Anrollen öffnen kannst, ohne das Handy in die Hand zu nehmen.

Die Lösung dafür heißt – wer hätte es gedacht – Homebridge Http Garage Doors. Mit diesem Plugin simulieren wir einfach ein Zubehör, das beim Öffnen oder Schließen eine simple HTTP-URL triggert.

{
    "name": "Garage Door",
    "simulateTimeOpening": 12,
    "simulateTimeOpen": 0,
    "simulateTimeClosing": 12,
    "closeAfter": 0,
    "request": {
        "method": "GET",
        "url": "http://192.168.0.103/open"
    },
    "debug": false,
    "accessory": "HttpGarageDoors"
}

Dabei ist ein Punkt wichtig: Der Hörmann-Taster ist bei den meisten Antrieben ein Impulstaster, bei dem derselbe Tastendruck öffnet, stoppt und schließt. Meine Steuerung hat außerdem keinen Endschalter, sie kennt also die Position des Tores nicht. Deshalb rufen „Öffnen“ und „Schließen“ in der Config dieselbe URL /open auf. Welchen Zustand Apple Home anzeigt, hängt vom Plugin ab: Manche simulieren ihn zeitgesteuert, manche fragen eine Status-URL ab.

Hier hilft auch der Cooldown: Sendet Home beim Antippen mehrere Befehle kurz hintereinander, löst der ESP nur einmal aus.

Garagentor in der Home-App und in CarPlay

Teil 7: Alternative, iOS-Kurzbefehl

Wer keinen Homebridge-Server hat, kommt auch mit einem Kurzbefehl ans Ziel. Der funktioniert, solange das iPhone im selben WLAN ist wie der ESP – sonst muss erst eine VPN-Verbindung hergestellt werden, damit der Befehl lokal ausgeführt wird.
Hier im Bild unten sieht man meine Lösung dafür:

Starten kannst du ihn per Siri („Hey Siri, Garage öffnen“), als Icon auf dem Home-Bildschirm, als Widget oder über die Aktionstaste. Auch eine Automation beim Ankommen oder Wegfahren ist möglich. Lass dort unbedingt „Vor Ausführung bestätigen“ aktiv, sonst geht das Tor auf, nur weil die Ortung kurz spinnt.


Sicherheit

Die Firmware hat keine Authentifizierung. Jeder im selben Netzwerk, der die IP-Adresse kennt, kann das Tor öffnen.

  • Den ESP nicht per Portweiterleitung ins Internet stellen.
  • Für den Zugriff von unterwegs lieber den Apple-Home-Hub (Apple TV oder HomePod) oder ein VPN nutzen.
  • Wer ein separates IoT- oder Gäste-WLAN hat, kann den ESP dort betreiben, sofern Homebridge und iPhone ihn trotzdem erreichen.

Fehlersuche

ProblemMögliche Ursache
Relais klickt, Tor reagiert nichtCOM/NO nicht korrekt parallel zum Taster, Triggerdauer erhöhen
Relais klickt nichtFalscher GPIO, Modul braucht Low-Level-Trigger, VCC/GND prüfen
Relais klickt beim Booten10-kΩ-Pulldown zwischen IN und GND
Mehrfachklicks passiert nichtsNormal, solange der Cooldown läuft
Port wird nicht erkanntDownload-Modus (BOOT gedrückt halten), anderes USB-Kabel probieren
ESP nicht erreichbarIP im Router prüfen, http://<IP>/status aufrufen

Die eingeklebten Komponenten im selbst gedruckten Gehäuse

Downloads

Arduino Sketch für ESP-C3

Arduino Code für das Projekt Hörmann Fit2-868 smart machen.

Druckvorlage Gehäuse mit Deckel

Druckvorlage für 3D-Drucker. Gehäuse mit Deckel zum Aufkleben im STL Format.


Fazit

Mit einem ESP32-C3, einem günstigen Relaismodul und etwas Software wird aus dem Innentaster ein smarter Taster, den man per Browser, Siri, Kurzbefehl oder sogar aus dem Auto per CarPlay bedienen kann. Der Optokoppler war am Ende der falsche Weg. Das Relais macht genau das, was es soll, und lässt sich dabei auch noch leichter nachbauen.

Wenn du Fragen hast oder es nachbaust, schreib mir gern in die Kommentare.

Und ja, ein paar Links sind Affiliate-Links

Bevor jetzt jemand denkt, ich hätte plötzlich meine Liebe zum Online-Marketing entdeckt: Ja, in diesem Beitrag gibt es ein paar Affiliate-Links.

Wenn ihr über so einen Link etwas kauft, bekomme ich eine kleine Provision. Euch kostet das keinen Cent mehr. Und nein, ich werde dadurch auch nicht zum Millionär. Wahrscheinlich reicht es irgendwann für ein weiteres ESP32-Board, das dann wieder irgendwo auf dem Schreibtisch herumliegt. 😄

Verlinkt habe ich grundsätzlich die Sachen, die ich für das Projekt verwendet habe oder die ich für den beschriebenen Aufbau passend finde. Ihr müsst natürlich nicht über meine Links kaufen – der Garagenöffner funktioniert auch dann, wenn Amazon nicht weiß, wo ihr die Teile gekauft habt.

Kurz gesagt: Wenn ihr sowieso etwas davon braucht und meinen Link benutzt, freue ich mich. Wenn nicht, ist auch gut.

☕ Hat dir dieser Beitrag geholfen?
Ich stecke viel Herzblut und Zeit in diesen Blog. Wenn du mir danke sagen möchtest, kannst du mir hier einen virtuellen Kaffee spendieren: buymeacoffee oder Ko-fi. Vielen Dank für deine Unterstützung!

Von Tobi

Schreibe einen Kommentar

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