smarthome-tricks.de

ESP32 WLAN-Taster für Home Assistant selber bauen: ESPHome DIY-Projekt

Manchmal sind die einfachsten Smart-Home-Projekte die praktischsten. Für dieses kleine Sonntagsprojekt bauen wir aus einem ESP32 und einem einfachen Taster einen eigenen WLAN-Taster für Home Assistant.

Damit lässt sich später fast alles auslösen, was Home Assistant steuern kann: eine Lampe einschalten, alle Geräte im Wohnzimmer ausschalten, eine Szene starten oder beispielsweise die Rollläden herunterfahren. Die Hardware kostet nur wenige Euro und der Aufbau funktioniert zunächst komplett auf einem Breadboard.

Hinweis: Dieser Artikel enthält Affiliate-Links. Wenn du über einen mit * gekennzeichneten Link etwas kaufst, erhalte ich eine kleine Provision. Für dich ändert sich der Preis nicht. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

Was wir für den ESP32 WLAN-Taster brauchen

Für den ersten Test reichen bereits vier Komponenten:

Wer häufiger mit ESP32, ESP8266 oder Arduino arbeitet, kann bei Breadboard, Kabeln und Tastern ruhig zu einem größeren Set greifen. Die Teile braucht man bei vielen weiteren Projekten wieder.

ESP32 DevKit bei Amazon ansehen*

Taster-Set für Arduino und ESP32 bei Amazon ansehen*

Breadboard und Jumper-Kabel bei Amazon ansehen*

Was macht unser smarter Taster?

Der ESP32 hängt in unserem Beispiel per WLAN im Heimnetz und wird mit ESPHome betrieben. Der angeschlossene Taster wird als binärer Sensor an Home Assistant übertragen.

Drücken wir den Taster, erkennt Home Assistant den Tastendruck und kann darauf mit einer Automation reagieren. Welche Aktion ausgeführt wird, bestimmen wir später in Home Assistant. Dadurch bleibt der Aufbau flexibel.

Falls du ESPHome bisher noch nicht eingesetzt hast, findest du hier meine Einführung: Was ist ESPHome?

Taster mit dem ESP32 verbinden

Für den Taster benötigen wir lediglich zwei Leitungen. In meinem Beispiel verwende ich GPIO27.

TasterESP32
Anschluss 1GPIO27
Anschluss 2GND

Ein zusätzlicher Widerstand ist für diesen einfachen Aufbau nicht erforderlich. Wir aktivieren in ESPHome den internen Pull-up-Widerstand des ESP32. Dadurch liegt der Eingang normalerweise auf HIGH. Beim Drücken des Tasters wird GPIO27 mit GND verbunden.

ESPHome für den WLAN-Taster konfigurieren

Das ESP32-Board kannst du wie gewohnt im ESPHome Device Builder anlegen. Wer ESPHome noch nicht mit Home Assistant verbunden hat, findet hier die passende Anleitung: ESPHome mit Home Assistant verbinden.

In der Konfiguration ergänzen wir anschließend unseren Taster:

binary_sensor:
  - platform: gpio
    name: "ESP32 Smart Button"
    id: smart_button
    pin:
      number: GPIO27
      mode:
        input: true
        pullup: true
      inverted: true
    filters:
      - delayed_on_off: 20ms

Durch inverted: true wird der gedrückte Taster als eingeschaltet erkannt. Die Verzögerung von 20 Millisekunden dient zur Entprellung des mechanischen Tasters.

Nach dem Speichern wird die Konfiguration auf den ESP32 übertragen. Danach sollte in Home Assistant ein neuer binärer Sensor mit dem Namen „ESP32 Smart Button“ auftauchen.

Eine Automation in Home Assistant erstellen

Jetzt wird aus dem einfachen Taster ein richtiger Smart-Home-Schalter.

Öffne in Home Assistant Einstellungen → Automationen & Szenen und erstelle eine neue Automation. Als Auslöser verwenden wir den ESP32-Taster beziehungsweise den Zustandswechsel auf „Ein“.

Als Aktion kannst du beispielsweise eine Lampe umschalten:

Der große Vorteil dabei ist, dass der ESP32 selbst nichts über die später gesteuerte Lampe wissen muss. Die komplette Logik liegt in Home Assistant.

Was kann man mit dem WLAN-Taster steuern?

Genau hier wird das kleine Projekt interessant. Ein Tastendruck kann beispielsweise folgende Aktionen auslösen:

Man könnte einen solchen Taster zum Beispiel neben dem Bett, am Schreibtisch oder am Ausgang der Wohnung platzieren.

Eine LED ergänzen

Wer noch ein paar Minuten weiterbasteln möchte, kann zusätzlich eine LED anschließen. Damit lässt sich beispielsweise anzeigen, ob eine bestimmte Szene aktiv ist.

Dazu benötigen wir eine LED und einen passenden Vorwiderstand. Für typische LEDs eignet sich beispielsweise ein Widerstand im Bereich von 220 bis 330 Ohm.

LEDs und Widerstände bei Amazon ansehen*

Die LED könnte beispielsweise über GPIO18 angeschlossen werden:

LEDESP32
Anode über VorwiderstandGPIO18
KathodeGND

In ESPHome lässt sie sich anschließend als Licht anlegen:

output:
  - platform: gpio
    pin: GPIO18
    id: status_led_output

light:
  - platform: binary
    name: "ESP32 Taster LED"
    output: status_led_output

Die LED erscheint damit ebenfalls in Home Assistant und kann dort in Automationen verwendet werden.

Vom Breadboard ins Gehäuse

Für den ersten Test würde ich den kompletten Aufbau auf dem Breadboard lassen. Funktioniert alles zuverlässig, kann der ESP32 zusammen mit dem Taster in ein kleines Kunststoffgehäuse eingebaut werden.

Kleine Elektronikgehäuse bei Amazon ansehen*

Für den Anfang würde ich den ESP32 einfach über ein USB-Netzteil versorgen. Ein normaler ESP32-DevKit-Aufbau mit ständig aktivem WLAN eignet sich nur eingeschränkt für einen längerfristigen Batteriebetrieb. Dafür müsste man das Projekt später beispielsweise mit Deep Sleep und einer dafür geeigneten Hardware erweitern.

ESP8266 funktioniert ebenfalls

Das Projekt lässt sich genauso mit einem ESP8266 beziehungsweise einem Wemos D1 Mini umsetzen. Dann muss lediglich ein geeigneter GPIO gewählt und die ESPHome-Konfiguration entsprechend auf das verwendete Board angepasst werden.

Wemos D1 Mini ESP8266 bei Amazon ansehen*

Fazit: kleines ESP32-Projekt mit echtem Nutzen

Ein ESP32, ein Taster und zwei Kabel reichen bereits für ein brauchbares kleines Smart-Home-Projekt. Gerade für den Einstieg in ESPHome gefällt mir dieser Aufbau, weil man das Zusammenspiel aus GPIO, ESPHome, Home Assistant und Automationen sehr schnell versteht.

Danach lässt sich das Projekt fast beliebig erweitern. Eine LED, mehrere Taster, ein kleines OLED-Display oder sogar ein Drehregler können aus dem einfachen WLAN-Taster später eine kleine eigene Smart-Home-Bedieneinheit machen.

Weitere Projekte und Grundlagen findest du in meiner ESP8266-, ESP32- und Arduino-Übersicht.

Die mobile Version verlassen