mmWave-Präsenzmelder mit LD2410 und ESPHome bauen
Präsenzmelder für Home Assistant selbst bauen: ESP32 und LD2410 mit ESPHome, damit das Licht anbleibt, solange jemand still im Raum sitzt.
Von Nathan Base
Jeder, der Licht mit einem normalen Bewegungsmelder automatisiert, kennt den Moment: Du sitzt ruhig am Schreibtisch, liest oder tippst, und nach ein paar Minuten geht das Licht aus. Du winkst, es geht wieder an, und zehn Minuten später passiert das Gleiche. Der Grund ist die Technik. Ein klassischer PIR-Bewegungsmelder reagiert auf Wärme, die sich durch den Raum bewegt, und ein Mensch, der still sitzt, ist für ihn praktisch unsichtbar.
Ein mmWave-Radar löst genau dieses Problem. Es misst winzige Bewegungen wie das Heben und Senken des Brustkorbs beim Atmen und erkennt deshalb auch, dass jemand im Raum ist, der sich gerade nicht rührt. Fertige Präsenzmelder mit dieser Technik kosten oft 40 bis 80 Euro. Mit einem LD2410 und einem ESP32 baust Du Dir einen für rund 10 Euro, der lokal mit Home Assistant spricht und ohne Cloud auskommt.
Diese Anleitung zeigt den kompletten Weg von der Verkabelung über die ESPHome-Konfiguration bis zur Licht-Automation, die nicht mehr ausgeht, solange jemand da ist. Stand ist ESPHome 2026.10 und Home Assistant 2026.11. Die Konfiguration folgt der offiziellen ESPHome-Dokumentation zum LD2410.
Was Du brauchst
Die Hardware ist überschaubar und für ein einzelnes Zimmer schnell beisammen:
- Ein ESP32-Entwicklungsboard, zum Beispiel ein ESP32 DevKit (Affiliate Link) mit USB-Anschluss.
- Ein HLK-LD2410C (Affiliate Link). Die Variante C hat eine Stiftleiste mit 2,54 mm Abstand, an die Du normale Jumperkabel stecken kannst. Beim Grundmodell ohne Buchstaben sind die Pins so eng, dass Du ein spezielles Kabel brauchst.
- Vier Jumperkabel (Buchse auf Buchse) und ein USB-Netzteil mit mindestens 1 A.
- Eine laufende Home-Assistant-Installation mit dem ESPHome Device Builder. Wenn Du noch keine hast, hilft Dir die Anleitung Home Assistant auf dem Raspberry Pi installieren weiter.
Löten musst Du nicht. Wenn Du schon einmal einen Sensor mit ESPHome eingebunden hast, etwa beim Feinstaubsensor selbst bauen: PMS7003 mit ESPHome, kommt Dir der Ablauf bekannt vor.
So funktioniert der LD2410
Der LD2410 sendet Radarwellen im 24-GHz-Band aus und wertet die Reflexionen aus. Er teilt den Raum vor sich in neun Entfernungsbereiche ein, die sogenannten Gates. Standardmäßig ist jedes Gate 0,75 Meter tief, Gate 0 liegt also direkt vor dem Sensor und Gate 8 bei rund sechs Metern.
Für jedes Gate kennt der Sensor zwei Schwellen: eine für Bewegung und eine für ruhige Anwesenheit. Liegt die gemessene Energie in einem Gate über der jeweiligen Schwelle, meldet der Sensor ein Ziel. Daraus ergeben sich drei Zustände, die Du später in Home Assistant siehst:
- Bewegung: Jemand läuft durch den Raum.
- Ruhige Person: Jemand ist da, bewegt sich aber kaum.
- Anwesenheit: Eines von beiden trifft zu. Diesen Zustand nutzt Du für die Licht-Automation.
Wichtig für die Einrichtung: Radar geht durch dünne Materialien. Eine Gipskartonwand, eine Holztür oder ein Kunststoffgehäuse halten es kaum auf. Ohne Feinabstimmung kann der Sensor also auch den Nachbarn im Flur bemerken. Wie Du das abstellst, steht weiter unten.
Den Sensor anschließen
Der LD2410 spricht über eine serielle Schnittstelle (UART) mit dem ESP32. Er wird mit 5 Volt versorgt, seine Datenleitungen arbeiten aber mit 3,3 Volt und passen damit direkt an den ESP32. Verbinde die vier Leitungen so:
| LD2410C | ESP32 DevKit |
|---|---|
| VCC | 5V (bei manchen Boards VIN) |
| GND | GND |
| TX | GPIO16 |
| RX | GPIO17 |
Achte darauf, dass TX und RX über Kreuz laufen: Der Sendepin des Sensors geht an den Empfangspin des ESP32 und umgekehrt. Die Pins GPIO16 und GPIO17 gehören beim klassischen ESP32 zur zweiten Hardware-UART. Das ist wichtig, weil der LD2410 ab Werk mit 256000 Baud sendet. Diese Geschwindigkeit schafft eine Software-UART nicht zuverlässig, und die ESPHome-Doku empfiehlt deshalb ausdrücklich Hardware-Pins.
ESPHome konfigurieren
Öffne in Home Assistant den ESPHome Device Builder, lege mit New Device ein neues Gerät an und wähle als Typ ESP32. Den ersten Flash erledigst Du per USB-Kabel direkt aus dem Browser, alle späteren Updates laufen über WLAN. Danach öffnest Du die Konfiguration mit Edit und ergänzt sie unter dem automatisch erzeugten Teil mit esphome:, esp32:, wifi:, api: und ota: um diese Blöcke:
uart:
id: ld2410_uart
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 256000
parity: NONE
stop_bits: 1
ld2410:
uart_id: ld2410_uart
binary_sensor:
- platform: ld2410
has_target:
name: Anwesenheit
has_moving_target:
name: Bewegung
has_still_target:
name: Ruhige Person
sensor:
- platform: ld2410
detection_distance:
name: Abstand
moving_distance:
name: Abstand Bewegung
still_distance:
name: Abstand ruhig
number:
- platform: ld2410
timeout:
name: Nachlaufzeit
max_move_distance_gate:
name: Max Gate Bewegung
max_still_distance_gate:
name: Max Gate ruhig
switch:
- platform: ld2410
engineering_mode:
name: Engineering-Modus
bluetooth:
name: Bluetooth
button:
- platform: ld2410
restart:
name: NeustartDer Block uart legt die serielle Verbindung mit den Werten aus der Doku fest. ld2410 verbindet die Komponente mit dieser Schnittstelle. Die binary_sensor-Einträge liefern die drei Zustände, die sensor-Einträge die gemessenen Abstände in Zentimetern. Mit den number-Einträgen kannst Du die wichtigsten Einstellungen des Sensors später direkt in Home Assistant ändern, ohne neu zu flashen.
Klicke auf Install und wähle Wirelessly, wenn der ESP32 schon einmal per USB geflasht wurde. Nach dem Neustart taucht das Gerät unter Einstellungen > Geräte & Dienste als neu erkannt auf. Bestätige es, und Du siehst die neuen Entitäten.
Prüfen, ob der Sensor richtig misst
Öffne das Gerät in Home Assistant und beobachte die Werte, während Du Dich bewegst:
- Geh durch den Raum. Bewegung und Anwesenheit müssen auf „Erkannt“ springen, und Abstand Bewegung zeigt ungefähr Deine Entfernung zum Sensor.
- Setz Dich hin und bleib still. Nach ein paar Sekunden geht Bewegung aus, Ruhige Person und Anwesenheit bleiben an.
- Verlass den Raum und schließ die Tür. Nach der Nachlaufzeit, ab Werk 5 Sekunden, muss Anwesenheit auf „Frei“ wechseln.
Bleibt die Anwesenheit dauerhaft an, obwohl niemand im Raum ist, sieht der Sensor etwas, das sich bewegt. Das ist bei fast jeder Erstinstallation so und lässt sich in zwei Schritten beheben.
Fehlalarme abstellen
Reichweite begrenzen. Miss, wie weit die gegenüberliegende Wand vom Sensor entfernt ist, und teile die Strecke durch 0,75. Bei vier Metern ergibt das gut fünf Gates. Stell Max Gate Bewegung und Max Gate ruhig auf diesen Wert, dann ignoriert der Sensor alles, was hinter der Wand passiert.
Störquellen finden. Typische Auslöser für eine ruhige Anwesenheit in einem leeren Raum sind Ventilatoren, Vorhänge im Luftzug, Pflanzen unter einer Lüftung und laufende Waschmaschinen hinter einer dünnen Wand. Schalte den Engineering-Modus ein. ESPHome liefert dann zusätzlich die gemessene Energie je Gate, wenn Du in der Konfiguration unter sensor die Einträge g0 bis g8 mit move_energy und still_energy ergänzt. Beobachte bei leerem Raum, in welchem Gate die Energie hoch bleibt, und setze für genau dieses Gate die Schwelle mit still_threshold knapp darüber. Danach schaltest Du den Engineering-Modus wieder aus, weil er den ESP32 unnötig beschäftigt.
Bluetooth abschalten. Der LD2410C hat ein eigenes Bluetooth-Modul, über das die Hersteller-App den Sensor konfiguriert. Ab Werk ist es an. Wenn Du alles über Home Assistant einstellst, schalte den Schalter Bluetooth aus. Dann kann niemand in Funkreichweite die Einstellungen ändern.
Zur Montage: Der Sensor arbeitet am besten in rund 1,5 bis 2 Metern Höhe an der Wand, mit freier Sicht auf den Bereich, in dem Du sitzt. Ein Metallgehäuse blockiert die Radarwellen, ein Gehäuse aus Kunststoff oder Holz ist dagegen kein Problem.
Die Licht-Automation in Home Assistant
Der Clou ist jetzt eine Automation, die das Licht nicht nach einer festen Zeit ausschaltet, sondern erst, wenn der Raum wirklich leer ist. Lege unter Einstellungen > Automationen & Szenen eine neue Automation an, wechsle über das Menü oben rechts auf In YAML bearbeiten und füge diesen Inhalt ein:
alias: Büro Licht nach Anwesenheit
mode: restart
triggers:
- trigger: state
entity_id: binary_sensor.praesenz_buero_anwesenheit
to: "on"
id: da
- trigger: state
entity_id: binary_sensor.praesenz_buero_anwesenheit
to: "off"
for:
minutes: 2
id: weg
actions:
- choose:
- conditions:
- condition: trigger
id: da
- condition: sun
after: sunset
after_offset: "-00:45:00"
sequence:
- action: light.turn_on
target:
entity_id: light.buero
- conditions:
- condition: trigger
id: weg
sequence:
- action: light.turn_off
target:
entity_id: light.bueroErsetze binary_sensor.praesenz_buero_anwesenheit durch die Entität Deines Sensors und light.buero durch Deine Lampe. Die Automation hat zwei Auslöser. Wird Anwesenheit erkannt und ist es ab 45 Minuten vor Sonnenuntergang, geht das Licht an. Meldet der Sensor zwei Minuten am Stück „Frei“, geht es aus. Die zwei Minuten sind ein Puffer für den Fall, dass Du kurz außerhalb des Erfassungsbereichs stehst. mode: restart sorgt dafür, dass eine neue Erkennung eine laufende Ausschaltphase abbricht.
Wenn es nicht klappt
Keine Werte in Home Assistant, im ESPHome-Log steht nichts vom LD2410. Fast immer sind TX und RX vertauscht. Tausche die beiden Kabel am ESP32 und spiele die Konfiguration erneut auf. Prüfe auch, ob baud_rate: 256000 gesetzt ist.
Der ESP32 startet ständig neu. Das deutet auf eine zu schwache Stromversorgung hin. Der Radar zieht beim Senden kurze Stromspitzen. Nimm ein anderes USB-Netzteil und ein kurzes, dickeres Kabel.
Die Anwesenheit flackert im Sekundentakt. Erhöhe die Nachlaufzeit auf 10 bis 30 Sekunden. Der Sensor hält den Zustand dann länger, und kurze Aussetzer verschwinden.
Lohnt sich der Selbstbau?
Für einen Raum, in dem Du lange ruhig sitzt, also Büro, Wohnzimmer oder Bad, ist der LD2410 die günstigste Art, Licht wirklich zuverlässig zu automatisieren. Der Aufwand liegt bei etwa einer Stunde, und das meiste davon ist die Feinabstimmung der Gates. Wenn Du ohnehin einen ESP32 im Raum hast, kann derselbe Chip nebenbei noch als Bluetooth-Proxy arbeiten, wie in ESP32 Bluetooth Proxy für Home Assistant einrichten beschrieben. Dann ersetzt ein Gerät gleich zwei.
Für Räume, durch die nur jemand hindurchgeht, wie Flur oder Treppe, reicht ein klassischer Bewegungsmelder weiterhin. Er reagiert schneller und hat weniger Fehlalarme durch Bewegungen hinter Wänden. Die beste Lösung ist oft eine Kombination: der PIR für das schnelle Einschalten und das Radar für die Entscheidung, wann das Licht wieder ausgehen darf.
Weiterlesen.
-
Raspberry Pi & LinuxFeinstaubsensor selbst bauen: PMS7003 mit ESPHome
Feinstaubsensor selbst bauen: PMS7003 und Wemos D1 mini mit ESPHome flashen und in Home Assistant einbinden. Mit geprüfter Konfiguration für 2026.
Nathan Base -
Raspberry Pi & LinuxESP32 Bluetooth Proxy für Home Assistant einrichten
Mit einem ESP32 und ESPHome baust Du einen Bluetooth-Proxy, der BLE-Sensoren per WLAN an Home Assistant weiterreicht. Für mehr Reichweite.
Nathan Base -
Raspberry Pi & LinuxHome Assistant auf dem Raspberry Pi installieren
Home Assistant OS auf dem Raspberry Pi 4 oder 5 installieren: Image mit dem Raspberry Pi Imager schreiben, erster Start, Einrichtung im Browser und Backup.
Nathan Base -
Raspberry Pi & LinuxBalkonkraftwerk in Home Assistant: Hoymiles mit OpenDTU
Hoymiles-Wechselrichter lokal auslesen: OpenDTU auf einem ESP32 einrichten, per MQTT in Home Assistant einbinden und Solarstrom gezielt nutzen.
Nathan Base -
Raspberry Pi & LinuxSwitchBot Meter Pro CO2 in Home Assistant einbinden
SwitchBot Meter Pro CO2 einrichten und per Bluetooth lokal in Home Assistant einbinden, ohne Hub und ohne Cloud. Mit ESP32-Proxy und Tipp zum Dauerbetrieb.
Nathan Base -
Raspberry Pi & LinuxZigbee in Home Assistant: ZHA oder Zigbee2MQTT?
ZHA oder Zigbee2MQTT für Home Assistant: konkrete Vor- und Nachteile aus der Community, bewertet, mit klarer Empfehlung und Einrichtung von ZHA.
Nathan Base