WATTZAHLS.DE← ESPHome-Serie
FOLGE 5 · ESPHOME FÜR ANFÄNGER

ESPHome Türkontakt mit ESP32:
Tür auf, Tür zu in Home Assistant

Ein Reedkontakt oder Endschalter kennt nur zwei Zustände. Genau deshalb ist er perfekt für ESPHome: offen oder geschlossen, gedrückt oder nicht gedrückt, Tor oben oder Tor unten.

Mit zwei Drähten wird aus einem simplen Kontakt ein Home-Assistant-Sensor.

Felix erklärt Türkontakte mit ESPHome
WATT KANN ICH DAMIT MACHEN?
🚪 Tür & Fenster

Erkennen, ob etwas offen oder geschlossen ist.

📬 Briefkasten

Klappe bewegt? Home Assistant kann eine Nachricht schicken.

🚗 Garagentor

Endschalter melden „ganz offen“ oder „ganz geschlossen“.

🔘 Taster

Ein einfacher Druck kann eine Automation, Szene oder ein Skript auslösen.

🔌 Einfachster Aufbau

Ein Anschluss des Kontakts kommt an einen freien GPIO, der andere an GND. Im ESP32 aktivieren wir den internen Pull-up-Widerstand.

GPIO18KontaktGND

Watt ist ein Pull-up?

Ist der Kontakt offen, darf der GPIO nicht elektrisch „in der Luft hängen“. Der interne Pull-up zieht ihn deshalb auf einen definierten HIGH-Zustand. Schließt der Kontakt nach GND, wird daraus LOW.

1

Kontakt als Binary Sensor anlegen

Für einen typischen Reedkontakt, der bei geschlossener Tür den GPIO mit GND verbindet, reicht folgende Grundkonfiguration. device_class: door sorgt dafür, dass Home Assistant den Zustand passend als Tür darstellt.

binary_sensor:
  - platform: gpio
    name: "Terrassentuer"
    device_class: door
    pin:
      number: GPIO18
      mode:
        input: true
        pullup: true
💡 Warum hier kein inverted: true?

Bei unserem Beispiel ist der Reedkontakt bei geschlossener Tür geschlossen und zieht den Pin auf LOW. LOW bedeutet dann „Tür geschlossen“, HIGH bedeutet „Tür offen“. Das passt direkt zur Home-Assistant-Türlogik. Bei einem anders arbeitenden Kontakt kann es genau umgekehrt sein – dann hilft inverted: true.

WENN DER KONTAKT FLATTERT

Entprellen

Mechanische Kontakte können beim Umschalten für wenige Millisekunden mehrfach hin- und herspringen. Das nennt man Prellen.

ESPHome filtert

Mit delayed_on_off akzeptieren wir den neuen Zustand erst, wenn er kurz stabil geblieben ist.

binary_sensor:
  - platform: gpio
    name: "Terrassentuer"
    device_class: door
    pin:
      number: GPIO18
      mode:
        input: true
        pullup: true
    filters:
      - delayed_on_off: 30ms
2

Offen und geschlossen prüfen

Nach dem Update öffnest du die ESPHome-Logs oder direkt die Entität in Home Assistant. Tür schließen, Tür öffnen – der Zustand muss jeweils sauber wechseln. Zeigt Home Assistant genau das Gegenteil, ergänzen wir inverted: true.

pin:
  number: GPIO18
  inverted: true
  mode:
    input: true
    pullup: true

🚗 Praxisidee: Garagentor mit zwei Endschaltern

Mit zwei Kontakten wird es richtig interessant:

Damit lässt sich später in Home Assistant sogar „öffnet“, „schließt“ oder „Zwischenposition“ ableiten. Genau solche Projekte machen aus ESPHome mehr als nur Basteln.

⚠️ GPIO ist nicht gleich GPIO

Nicht jeder Pin ist auf jedem ESP32-Board gleich geeignet. Einige Pins sind beim Start oder für Flash-Funktionen reserviert. Deshalb gilt bei einem konkreten Board: Pinbelegung kurz prüfen, bevor du viele Kabel anschließt.

🤖 KI-Hilfe zum Kopieren

Prompt: „Ich möchte mit ESPHome einen Reedkontakt an einem ESP32 als Türsensor verwenden. Der Kontakt liegt zwischen GPIO18 und GND und ist bei geschlossener Tür geschlossen. Erstelle mir die YAML-Konfiguration mit internem Pull-up, passender device_class und 30 ms Entprellung. Erkläre mir außerdem, wann ich inverted: true brauche.“

NÄCHSTE FOLGE

Mehr als 0 und 1: analoge Sensoren

In Folge 6 geht es um Werte zwischen „aus“ und „an“: Helligkeit, Spannung, Druck oder Füllstand. Dann wird aus dem simplen GPIO ein echter Messkanal.

Folge 6: Analoge Werte & LDR → · Serienübersicht

Technikstand September 2026

ESPHome nutzt für einfache Kontakte den gpio-Binary-Sensor. Interne Pull-up-Widerstände lassen sich im Pin-Schema aktivieren; invertierte Logik wird bei Bedarf mit inverted abgebildet. Kurze Filter wie delayed_on_off helfen beim Entprellen mechanischer Kontakte.

ESPHome: GPIO Binary Sensor ↗
ESPHome: Binary Sensor Filters ↗

WEITER IM KURS

← Relais · Alle 15 Folgen · LDR →