ESP32 IR-Fernbedienung für Home Assistant bauen
Fernseher, Klimaanlage, Stereoanlage oder ältere LED-Beleuchtung: Im Haushalt gibt es noch erstaunlich viele Geräte, die mit einer klassischen Infrarot-Fernbedienung gesteuert werden. Eine direkte Home-Assistant-Integration besitzen diese Geräte häufig nicht. Genau hier kann ein kleiner ESP32 helfen.
Mit einem ESP32, einer IR-LED und ESPHome lässt sich für wenige Euro eine eigene WLAN-IR-Fernbedienung bauen. Home Assistant kann damit anschließend die gleichen Infrarotbefehle senden wie die ursprüngliche Fernbedienung.
Noch praktischer wird das Projekt mit einem zusätzlichen IR-Empfänger. Damit können wir zunächst die Signale einer vorhandenen Fernbedienung auslesen und anschließend über den ESP32 wieder aussenden.
Hinweis: Dieser Artikel enthält Affiliate-Links. Bei einem Kauf über einen gekennzeichneten Link erhalte ich eine kleine Provision. Für dich bleibt der Preis unverändert.
Was kann die ESP32 IR-Fernbedienung?
Unser ESP32 funktioniert später als kleiner IR-Sender im WLAN. Home Assistant schickt einen Befehl an ESPHome und der ESP32 erzeugt daraus das passende Infrarotsignal.
Damit lassen sich beispielsweise folgende Geräte steuern:
- Fernseher
- AV-Receiver
- Stereoanlagen
- Klimaanlagen
- Ventilatoren
- LED-Beleuchtungen mit IR-Fernbedienung
- ältere Beamer
- weitere Geräte mit Infrarot-Fernbedienung
Das Gerät selbst muss dabei weder WLAN noch Zigbee, Matter oder eine Cloud-Anbindung besitzen.
Diese Bauteile benötigen wir
Für den einfachen IR-Sender brauchen wir nur wenige Komponenten. Wenn du zusätzlich vorhandene Fernbedienungen auslesen möchtest, kommt ein IR-Empfänger hinzu.
- ESP32 Development Board
- 940-nm-Infrarot-LED
- Vorwiderstand
- NPN-Transistor für eine kräftigere Ansteuerung der IR-LED
- IR-Empfänger, beispielsweise VS1838B oder TSOP38238
- Dupont-Kabel beziehungsweise Breadboard
- USB-Netzteil
- optional kleines Gehäuse
ESP32 Development Boards:
ESP32 Boards bei Amazon ansehen*
IR-Sender und IR-Empfänger:
IR-Sender- und Empfänger-Module bei Amazon ansehen*
Elektronik-Bauteilsets:
Bauteilsets mit Widerständen und Transistoren bei Amazon ansehen*
Warum die IR-LED nicht einfach direkt anschließen?
Für einen ersten Test kann eine IR-LED mit passendem Vorwiderstand direkt über einen GPIO angesteuert werden. Für eine dauerhaft brauchbare Fernbedienung würde ich allerdings eine Transistorstufe verwenden.
Eine Fernbedienung sendet ihre Infrarotsignale mit kurzen Impulsen. Für eine ordentliche Reichweite benötigt die IR-LED dabei einen höheren Strom, als ein GPIO des ESP32 sinnvoll liefern sollte. Ein Transistor übernimmt deshalb das eigentliche Schalten der LED.
IR-Sender mit ESP32 verbinden
Für dieses Beispiel verwenden wir GPIO17 als Ausgang. Der GPIO steuert über einen Basiswiderstand einen NPN-Transistor an. Dieser schaltet wiederum die IR-LED.
| Bauteil | ESP32 / Anschluss |
|---|---|
| Transistor Basis | GPIO17 über Basiswiderstand |
| Transistor Emitter | GND |
| IR-LED | über passenden Vorwiderstand und Transistor |
| IR-Empfänger OUT | GPIO16 |
| IR-Empfänger GND | GND |
| IR-Empfänger Versorgung | passend zum verwendeten Modul |
[Bild-Platzhalter: Schaltplan ESP32 mit IR-LED, Transistor, Widerständen und IR-Empfänger]
Bei IR-Empfängermodulen solltest du vor dem Anschluss unbedingt das Datenblatt beziehungsweise die Pin-Beschriftung deines konkreten Moduls kontrollieren. Die Reihenfolge von Versorgung, Masse und Signalausgang ist nicht bei jedem Modul gleich.
ESPHome als Grundlage
Auch für dieses Projekt verwenden wir ESPHome. Dadurch müssen wir keine eigene Firmware programmieren und bekommen eine direkte Verbindung zu Home Assistant.
Wenn du noch weitere Projekte suchst, lohnt sich ein Blick in meine ESP8266- und ESP32-Übersicht. Dort findest du weitere Ideen rund um ESPHome und selbst gebaute Smart-Home-Sensoren.
IR-Empfänger in ESPHome einrichten
Ich würde zuerst den Empfänger konfigurieren. Damit können wir herausfinden, welche Signale die vorhandene Fernbedienung tatsächlich sendet.
remote_receiver:
pin:
number: GPIO16
inverted: true
mode:
input: true
pullup: true
dump: all
Mit dump: all versucht ESPHome, empfangene IR-Signale zu erkennen und im Log auszugeben.
Nach dem Flashen öffnest du die Logs des ESP32 und drückst eine Taste auf der Originalfernbedienung. Halte die Fernbedienung dabei direkt auf den Empfänger.
Im Log sollte nun das erkannte Signal erscheinen.
[Bild-Platzhalter: ESPHome-Log mit erkanntem IR-Befehl einer Fernbedienung]
Welche IR-Protokolle gibt es?
IR-Fernbedienungen senden nicht alle das gleiche Signal. Verschiedene Hersteller und Geräte verwenden unterschiedliche Protokolle. ESPHome unterstützt zahlreiche verbreitete Varianten.
Im Log kann beispielsweise ein erkanntes NEC-, Sony-, RC5- oder anderes unterstütztes Signal auftauchen. Wird das Protokoll sauber erkannt, ist das spätere Senden relativ einfach.
Falls ESPHome das Protokoll nicht erkennt, können alternativ die Rohdaten des Signals ausgewertet und wieder ausgesendet werden.
IR-Sender in ESPHome einrichten
Jetzt konfigurieren wir GPIO17 als Ausgang für unsere IR-Sendestufe.
remote_transmitter:
pin: GPIO17
carrier_duty_percent: 50%
Damit steht der Sender grundsätzlich zur Verfügung. Welcher Befehl gesendet wird, legen wir anschließend über eine Aktion fest.
Ersten IR-Befehl senden
Angenommen, ESPHome hat beim Drücken der Power-Taste ein NEC-Signal erkannt. Dann können wir einen Button anlegen, der genau diesen Befehl wieder sendet.
button:
- platform: template
name: "Fernseher Power"
on_press:
- remote_transmitter.transmit_nec:
address: 0x1234
command: 0xABCD
Wichtig: Die Werte im Beispiel sind Platzhalter. Du musst hier die Werte einsetzen, die du zuvor von deiner eigenen Fernbedienung ausgelesen hast.
Nach dem Übertragen erscheint der Button als Entität in Home Assistant. Ein Druck darauf löst den entsprechenden IR-Befehl aus.
Mehrere Tasten anlegen
Nach dem ersten funktionierenden Befehl ist der Rest hauptsächlich Fleißarbeit. Du kannst die wichtigsten Tasten deiner Fernbedienung nacheinander einlesen und entsprechende Buttons erstellen.
- Power
- Lautstärke +
- Lautstärke −
- Mute
- Eingangsquelle
- Programm + und −
- weitere gerätespezifische Funktionen
Ich würde allerdings nicht unbedingt jede einzelne Taste nachbauen. Für Automationen reichen häufig Power, Eingang und einige wenige weitere Funktionen.
IR-Befehle in Home Assistant verwenden
Sobald die Buttons in Home Assistant vorhanden sind, lassen sie sich ganz normal in Dashboards, Skripten und Automationen verwenden.
Damit wird auch ein älteres Gerät plötzlich Teil des Smart Homes. Ein Fernseher könnte beispielsweise zusammen mit Beleuchtung und Steckdosen in eine Automation eingebunden werden.
[Bild-Platzhalter: Home-Assistant-Dashboard mit Buttons für Power, Lautstärke und Eingang]
Beispiel: Fernsehabend mit einem Tastendruck
Eine einfache Szene könnte mehrere Aktionen miteinander kombinieren. Über einen Button „Fernsehabend“ lässt sich beispielsweise die Beleuchtung dimmen, eine Steckdose einschalten und anschließend der Fernseher beziehungsweise AV-Receiver per Infrarot starten.
Genau bei solchen Kombinationen spielt Home Assistant seine Stärke aus. Dem System ist letztlich egal, ob ein Gerät über Zigbee, WLAN, ESPHome oder einen selbst gebauten IR-Sender gesteuert wird.
Klimaanlage über ESP32 steuern
Ein weiterer interessanter Anwendungsfall sind Klimaanlagen. Viele Split-Klimageräte besitzen eine Infrarot-Fernbedienung, aber keine lokale Smart-Home-Schnittstelle.
Hier gibt es allerdings eine Besonderheit: Klimaanlagen übertragen über die Fernbedienung häufig nicht nur einen einfachen Tastencode. Stattdessen enthält das IR-Signal den kompletten aktuellen Zustand mit Temperatur, Betriebsmodus, Lüfterstufe und weiteren Einstellungen.
Für solche Geräte würde ich prüfen, ob ESPHome das verwendete Klimaanlagen-Protokoll direkt unterstützt. Das ist wesentlich komfortabler, als zahlreiche lange Rohsignale einzeln zu speichern.
Wenn ESPHome das Signal nicht erkennt
Nicht jede Fernbedienung wird automatisch einem bekannten Protokoll zugeordnet. Das bedeutet aber noch nicht, dass das Gerät ungeeignet ist.
ESPHome kann auch rohe Pulsfolgen ausgeben. Diese sogenannten Raw-Daten lassen sich anschließend wieder über den IR-Sender übertragen. Das ist weniger elegant und benötigt mehr Konfiguration, funktioniert aber bei vielen ungewöhnlichen Fernbedienungen.
Reichweite des IR-Senders verbessern
Wenn der Aufbau auf dem Schreibtisch funktioniert, aus zwei Metern Entfernung aber nicht mehr, liegt das meistens am Sender und nicht an ESPHome.
Eine einzelne schwach angesteuerte IR-LED erreicht schnell ihre Grenzen. Deshalb würde ich für den endgültigen Aufbau eine Transistorstufe verwenden. Bei Bedarf können auch mehrere IR-LEDs in unterschiedliche Richtungen abstrahlen.
Der Standort spielt ebenfalls eine Rolle. Infrarot benötigt im Gegensatz zu WLAN eine brauchbare optische Verbindung zum Empfänger des Geräts. Reflexionen an Wänden funktionieren teilweise erstaunlich gut, darauf würde ich mich bei der Montage aber nicht verlassen.
Kann man die IR-LED mit dem Smartphone sehen?
Das menschliche Auge kann das Infrarotlicht der Fernbedienung nicht sehen. Für einen schnellen Funktionstest hilft häufig eine Smartphone-Kamera.
Richte die Kamera auf die IR-LED und löse einen Befehl aus. Je nach Smartphone und dessen IR-Filter ist das Blinken der LED auf dem Display sichtbar. Das ersetzt keine richtige Messung, hilft bei der Fehlersuche aber erstaunlich oft.
ESP32 IR-Fernbedienung in ein Gehäuse bauen
Nach den ersten Tests würde ich den Aufbau von Breadboard und losen Kabeln befreien. ESP32 und Elektronik passen problemlos in ein kleines Kunststoffgehäuse.
Die IR-LED sollte dabei freie Sicht nach außen haben. Alternativ kann sie durch eine passende Öffnung im Gehäuse geführt werden.
Kleine Elektronikgehäuse bei Amazon ansehen*
ESP32 IR-Fernbedienung oder fertiger IR-Blaster?
Natürlich kann man auch einen fertigen WLAN-IR-Blaster kaufen. Solche Geräte sind kompakt und sofort einsatzbereit. Der Selbstbau mit ESP32 hat dafür den Vorteil, dass wir genau wissen, was im Gerät passiert und keine zusätzliche Hersteller-Cloud benötigen.
Außerdem lässt sich der ESP32 später erweitern. Ein Temperatur- oder Helligkeitssensor kann problemlos im gleichen Gehäuse untergebracht werden.
Wer lieber ein fertiges Gerät verwenden möchte, findet entsprechende Geräte beispielsweise hier:
IR-Blaster bei Amazon ansehen*
Weitere ESP32-Projekte für Home Assistant
Wenn du nach diesem Projekt noch einen ESP32 übrig hast, lässt sich damit deutlich mehr machen. Besonders interessant ist beispielsweise mein ESP32 Präsenzmelder mit LD2410 und ESPHome. Dort erkennt ein günstiger mmWave-Radarsensor, ob sich tatsächlich noch jemand im Raum befindet.
Auch ein selbst gebauter Temperatursensor ist ein guter Einstieg in ESPHome. Weitere Projekte und Grundlagen findest du in meiner ESP8266- und ESP32-Übersicht.
Fazit: Alte Geräte für wenige Euro in Home Assistant integrieren
Eine ESP32 IR-Fernbedienung ist ein schönes Beispiel dafür, wie sich ältere Geräte mit wenig Aufwand in ein modernes Smart Home holen lassen. ESP32, IR-LED und einige Kleinteile kosten nur wenige Euro und ESPHome übernimmt einen Großteil der Softwarearbeit.
Ich würde direkt einen IR-Empfänger mit einbauen. Damit können vorhandene Fernbedienungen ausgelesen werden und das Projekt bleibt flexibel. Sobald die ersten Befehle funktionieren, lassen sich Fernseher, Receiver, Beleuchtung oder andere IR-Geräte direkt aus Home Assistant heraus steuern und in Automationen einbauen.
* Affiliate-Link: Bei einem Kauf über einen gekennzeichneten Link erhalte ich eine Provision. Für dich bleibt der Preis unverändert.

