ESPHome has native support for the Hi-Link HLK-LD6004, a 60 GHz presence radar that reports the position of each person it sees, not just whether a room is occupied. The seven pull requests by Rick van Hattem (wolph), reviewed by J. Nick Koston (bdraco), were merged into the dev branch early on 31 October 2026, between 04:05 and 06:45 Warsaw time.

What the component exposes

The LD6004 speaks the same TinyFrame protocol as the LD6002B, which ESPHome already supports. Instead of a second parser, the work first moved the shared code into a common ld600x base, and the LD6004 is now a thin layer on top of it. The component asks the module for three target slots, which Hi-Link gives as the maximum.

Each platform adds a group of entities:

  • binary sensors for overall presence, for each of the three target slots and for each detection area;
  • sensors for the number of targets and detected points, plus X, Y and Z coordinates, a Doppler index and a cluster ID for each target;
  • the six bounds of each detection, interference and dwell area;
  • selects for sensitivity, trigger speed, installation mode, work mode and the behaviour of the module's P20 output pin;
  • numbers for dwell lifetime and output interval, a button that clears dwell data, plus text sensors and switches.

The work modes are normal, low power, high reflectivity, and two modes that switch the radar off and hold the P20 pin high or low. The areas are boxes in three dimensions: detection areas mark where presence should be reported, interference areas mark places the radar should ignore, and dwell areas, up to three of them, add their own bounds when a configuration uses them.

Drawing zones on the device page

Typing six coordinates per zone into YAML is tedious, so the author also published the ESPHome coordinate editor. It loads into the device's built-in web page and lets you drag detection, interference and dwell areas or enter their bounds, then apply them to the radar. The configuration only needs web_server with js_extra_urls pointing to the script.

A minimal configuration looks like this:

uart:
  tx_pin: GPIO0
  rx_pin: GPIO1
  baud_rate: 115200

ld6004:
  id: radar

binary_sensor:
  - platform: ld6004
    target:
      name: Radar Presence
    target_1:
      name: Target 1

Testing and availability

The author tested the component on a Seeed XIAO ESP32-C6 with an LD6004 running firmware 3.18.0, and the test builds cover ESP32 with ESP-IDF, ESP8266 and RP2040. The documentation is in a separate esphome.io pull request.

Because the code is merged into dev, it should be part of ESPHome 2026.11, whose beta is planned for 4 November according to OHF Daily. Until then, the LD6004 is available only on the dev branch.