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.


In diesem Beitrag zeige ich dir:
- wie du die Arduino IDE einrichtest und den ESP32-C3 vorbereitest,
- wie du das Relais anschließt,
- was die Firmware kann (Webinterface, einstellbare Triggerzeit, Cooldown),
- wie du das Ganze in Homebridge einbindest, als einfachen Schalter oder als Garagentor, das sogar in CarPlay auftaucht,
- 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
- Auf arduino.cc die aktuelle Arduino IDE 2.x für dein Betriebssystem herunterladen.
- Installieren und starten.
ESP32-Unterstützung hinzufügen
Die IDE kennt ESP32-Boards nicht von Haus aus. Das holen wir nach:
- Datei → Einstellungen (macOS: Arduino IDE → Einstellungen) öffnen.
- Im Feld „Zusätzliche Boardverwalter-URLs“ diese Adresse eintragen:
https://espressif.github.io/arduino-esp32/package_esp32_index.json - Mit OK bestätigen.
- Links in der Seitenleiste den Boardverwalter öffnen (oder Werkzeuge → Board → Boardverwalter).
- Nach „esp32“ suchen und das Paket „esp32 by Espressif Systems“ installieren. Das dauert einen Moment, es werden einige Hundert MB geladen.


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.
- Sketch → Bibliothek einbinden → Bibliotheken verwalten (oder das Bücher-Symbol links).
- Nach „WiFiManager“ suchen.
- Die Bibliothek von tzapu installieren.
Teil 2: ESP32-C3 vorbereiten
Board anschließen
- ESP32-C3 per USB mit dem Rechner verbinden.
- In der Arduino IDE Werkzeuge → Board → esp32 → ESP32C3 Dev Module wählen.
- 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:
| Einstellung | Wert |
|---|---|
| Board | ESP32C3 Dev Module |
| USB CDC On Boot | Enabled (sonst siehst du im Serial Monitor nichts) |
| Upload Speed | Standardwert reicht |
| Port | dein ESP32-C3 |


Wenn der Port nicht auftaucht
Das passiert beim ESP32-C3 manchmal, vor allem beim ersten Flashen. Dann hilft der Download-Modus:
- BOOT-Taste gedrückt halten,
- dabei kurz die RESET-Taste drücken (oder bei Boards ohne Reset: USB-Kabel einstecken),
- 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-Modul | ESP32-C3 |
|---|---|
| VCC | 3V3 |
| GND | GND |
| IN | GPIO4 |
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.
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.hnur die Zeile#define RELAY_ACTIVE_LEVEL HIGHaufLOW.

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
- ZIP-Datei am Ende des Beitrags herunterladen und entpacken.
GarageDoorController.inoin der Arduino IDE öffnen. Die anderen Dateien (Config.h,Trigger.cppusw.) öffnen sich automatisch als Tabs.- Board und Port wie oben auswählen und auf Hochladen klicken.
- 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:
- Mit dem Handy oder Laptop mit dem WLAN
GarageDoor-Setupverbinden. - Das Konfigurationsportal öffnet sich (sonst im Browser die Adresse
192.168.4.1aufrufen). - Dein Heim-WLAN auswählen, Passwort eingeben, speichern.
- Der ESP startet neu und hängt sich ins Heimnetz.

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 aktivoderCooldown (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:
| Aufruf | Funktion |
|---|---|
GET /open | Tor auslösen |
GET /save?trigger=1000&cooldown=5 | Triggerdauer (ms) und Cooldown (s) speichern |
GET /status | Antwortet mit ONLINE |
GET /restart | Neustart |
GET /resetwifi | WLAN-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.
- In der Homebridge-Oberfläche unter Plugins nach
homebridge-http-switchsuchen und installieren. - In der Config (Bereich
accessories) ergänzen:
{
"accessory": "HTTP-SWITCH",
"name": "Garagentor",
"switchType": "stateless",
"onUrl": "http://192.168.0.103/open"
}
- Homebridge neu starten.
- 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.


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
| Problem | Mögliche Ursache |
|---|---|
| Relais klickt, Tor reagiert nicht | COM/NO nicht korrekt parallel zum Taster, Triggerdauer erhöhen |
| Relais klickt nicht | Falscher GPIO, Modul braucht Low-Level-Trigger, VCC/GND prüfen |
| Relais klickt beim Booten | 10-kΩ-Pulldown zwischen IN und GND |
| Mehrfachklicks passiert nichts | Normal, solange der Cooldown läuft |
| Port wird nicht erkannt | Download-Modus (BOOT gedrückt halten), anderes USB-Kabel probieren |
| ESP nicht erreichbar | IP im Router prüfen, http://<IP>/status aufrufen |

Downloads
Arduino Code für das Projekt Hörmann Fit2-868 smart machen.
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!
