Zum Inhalt springen
SONOYA.com
Raspberry Pi & Linux

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

Radar-Symbol auf dunkelrotem Verlauf für einen selbst gebauten mmWave-Präsenzmelder mit LD2410 und ESP32 in Home Assistant

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:

LD2410CESP32 DevKit
VCC5V (bei manchen Boards VIN)
GNDGND
TXGPIO16
RXGPIO17

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:

Code
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: Neustart

Der 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:

  1. Geh durch den Raum. Bewegung und Anwesenheit müssen auf „Erkannt“ springen, und Abstand Bewegung zeigt ungefähr Deine Entfernung zum Sensor.
  2. Setz Dich hin und bleib still. Nach ein paar Sekunden geht Bewegung aus, Ruhige Person und Anwesenheit bleiben an.
  3. 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:

Code
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.buero

Ersetze 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.