Un capteur PIR classique détecte le mouvement — pas la présence. Dès que vous restez immobile derrière votre écran, il vous oublie. La lumière s'éteint, le mode cinéma se désactive, le thermostat repasse en "personne n'est là". C'est le défaut universel de la domotique basée sur les PIR, et c'est exactement ce que les capteurs mmWave comme le HLK-LD2410 viennent corriger.
Le LD2410 est un petit module radar à 24 GHz qui détecte les micro-mouvements du corps humain — respiration, battements du cœur, déplacements infimes d'une main sur un clavier. Couplé à un ESP32 et à ESPHome, il transforme n'importe quelle pièce en détecteur de présence fiable, local, sans cloud, pour 15 à 20 euros de matériel (hors alimentation USB et boîtier).
Ce guide couvre tout ce qu'il faut savoir pour monter votre premier capteur mmWave : comparatif des variantes LD2410 / LD2410B / LD2410C / LD2450, câblage ESP32, configuration YAML ESPHome complète et commentée, calibration fine des 9 gates de détection pour votre pièce, et trois automations Home Assistant prêtes à coller dans votre configuration.yaml. Objectif : remplacer vos PIR en un après-midi.
HLK-LD2410C
Capteur présence mmWave 24 GHz · Broches 2,54 mm · Bluetooth
Pourquoi le LD2410 change tout : présence réelle vs simple mouvement
La différence entre un capteur PIR et un capteur mmWave tient en une phrase : le PIR détecte une variation de chaleur en mouvement, le mmWave détecte la présence d'un corps même immobile. Concrètement, un PIR placé dans votre bureau vous "voit" quand vous entrez, puis déclenche un timer de 2 à 5 minutes. Si vous restez concentré sur votre écran sans bouger, le timer expire et la lumière s'éteint. Vous agitez la main, le cycle recommence. Des millions d'utilisateurs de domotique vivent avec ce réflexe absurde.
Le LD2410 utilise un radar 24 GHz FMCW (Frequency Modulated Continuous Wave). Il envoie une onde millimétrique et mesure le décalage Doppler du signal réfléchi. Un corps humain immobile renvoie encore un signal modulé par la respiration (environ 0,3 Hz) et le rythme cardiaque (environ 1 Hz). Le LD2410 distingue donc deux états : mouvement (personne qui bouge) et présence statique (personne immobile). La sortie combinée "présence" reste active tant que l'un ou l'autre est détecté.
Les cas d'usage pratiques qui changent la donne :
- Bureau : la lumière ne s'éteint plus quand vous lisez ou codez sans bouger.
- Salon : le mode cinéma reste actif pendant les passages lents d'un film.
- Chambre : la détection de présence endormie permet de désactiver les alarmes intérieures la nuit.
- Toilettes : fini les extinctions gênantes pendant les longues séances.
- Couloir intelligent : adaptation de la luminosité selon que vous êtes en transit ou arrêté.
Seul inconvénient notable : le LD2410 détecte tout ce qui bouge ou respire. Un ventilateur de plafond, un rideau agité, un aspirateur robot ou même un animal domestique peuvent générer des faux positifs. C'est précisément ce que la calibration des gates (section 5) permet de corriger.
Choisir son module : LD2410, LD2410B, LD2410C ou LD2450 ?
HiLink a décliné sa gamme mmWave en plusieurs variantes depuis 2022. Elles partagent le même chipset radar, mais diffèrent sur la connectique, la configuration et les fonctionnalités annexes. Voici le comparatif actualisé pour 2026.
| Modèle | Bluetooth | Broches | Portée | Multi-cible | Prix FR |
|---|---|---|---|---|---|
| LD2410 (original) | Non | Pas 1,27 mm | 6 m | Non | 5-7 € |
| LD2410B | Oui (app HLKRadarTool) | Pas 1,27 mm | 6 m | Non | 6-8 € |
| LD2410C (recommandé) | Oui (app HLKRadarTool) | Pas 2,54 mm (standard Dupont) | 6 m | Non | 6-8 € |
| LD2450 (avancé) | Oui | Pas 1,25 mm | 6 m | Oui (3 cibles avec coordonnées X/Y) | 10-14 € |
Notre recommandation pour démarrer : le LD2410C. Sa connectique au pas 2,54 mm accepte directement des câbles Dupont standard — vous éviterez la soudure fine que réclament les LD2410 et LD2410B. Le Bluetooth permet de pré-configurer le module depuis un smartphone via l'application HLKRadarTool (utile pour tester avant la configuration ESPHome), même si cette étape est facultative. Avantage supplémentaire propre au C : il propose un mode de résolution fine à 0,2 m activable par UART, là où les autres variantes restent bloquées sur 0,75 m. Intéressant dans les petites pièces (toilettes, placard, couloir étroit) où la résolution standard crée des trous de détection.
Notez que le LD2410 original (sans Bluetooth) est désormais quasi-introuvable sur Amazon FR en 2026 : la plupart des vendeurs proposent le B ou le C, souvent au même prix. La recommandation du C s'impose donc d'autant plus naturellement.
Le LD2450 est une évolution intéressante pour les cas avancés : il suit simultanément jusqu'à trois cibles avec leurs coordonnées X/Y en temps réel. Autrement dit, il sait distinguer "deux personnes dans le salon, une dans la cuisine" plutôt qu'un état binaire présence/absence. L'intégration ESPHome native existe depuis la version 2025.3 (avant cette date, seuls des composants externes étaient disponibles), mais elle reste réservée aux projets multi-zones complexes. Pour un détecteur de présence standard par pièce, le LD2410C suffit largement.
Évitez les clones non marqués HiLink sur certaines marketplaces : les performances radar sont identiques sur le papier, mais la qualité du firmware embarqué varie, et l'app HLKRadarTool refuse parfois de s'y connecter.
Le matériel nécessaire et câblage ESP32 + LD2410C
Le projet nécessite quatre pièces. Budget total : environ 12 à 18 euros selon les promotions.
- Un module LD2410C (ou LD2410B si vous êtes à l'aise avec la soudure fine).
- Un ESP32 compatible ESPHome. Les modèles récents à base de RISC-V (C3, C6, S2, S3) sont parfaits — légers, peu gourmands, faciles à alimenter en USB-C. L'ESP32-C6 a l'avantage d'embarquer le WiFi 6 et le Thread 1.3 natifs, ce qui le rend intéressant pour des projets plus larges. Pour ce capteur seul, un ESP32-C3 mini ou un Wemos S2 Mini fonctionne tout aussi bien.
- Quatre câbles Dupont femelle-femelle (ou un câble ruban 4 fils), fournis dans la plupart des kits de démarrage Arduino.
- Une alimentation USB — un chargeur de téléphone 5V / 1A suffit. L'ESP32 abaisse la tension à 3,3 V pour le LD2410.
Waveshare ESP32-C6
WiFi 6 · Thread · Zigbee · Broches soudées · USB-C
Le câblage UART est direct. Le LD2410C expose cinq broches (VCC, GND, TX, RX, OUT). La broche OUT est un signal binaire "présence détectée" que l'on n'utilise pas ici — on récupère les données complètes via UART pour exploiter les gates et les seuils.
| LD2410C | ESP32-C6 (exemple) | Note |
|---|---|---|
| VCC | 5V | Tension nominale 5 V. Le LD2410C tolère jusqu'à 12 V (plage 5–12 V). Ne jamais alimenter en 3,3 V — le module ne démarre pas correctement sous tension nominale. |
| GND | GND | Masse commune obligatoire. |
| TX | GPIO4 (RX de l'ESP32) | Le TX du capteur va sur le RX de l'ESP32. |
| RX | GPIO5 (TX de l'ESP32) | Le RX du capteur va sur le TX de l'ESP32. |
| OUT | (non connecté) | Facultatif — permet une détection binaire sans ESPHome. |
Les numéros de GPIO (4, 5) sont donnés à titre d'exemple pour un ESP32-C6 DevKit. Adaptez-les à votre carte en vérifiant le brochage dans la fiche technique de votre ESP32 : évitez les GPIO utilisés pour le boot (0, 2, 15 sur ESP32 classique) et les GPIO à usage interne (6-11 sur ESP32 classique, réservés à la flash SPI).
Note strapping pins ESP32-C6. Sur cette carte, GPIO4 (MTMS) et GPIO5 (MTDI) sont des strapping pins JTAG. Ils fonctionnent parfaitement en UART après le boot — c'est leur usage recommandé dans la doc Espressif pour les périphériques série secondaires. Évitez simplement d'y ajouter une résistance de pull-up ou pull-down forte extérieure qui pourrait perturber le reset. Le LD2410 lui-même n'introduit aucune résistance problématique. Alternatives plus neutres si vous voulez éviter tout débat : GPIO16/GPIO17 (UART0 par défaut) ou GPIO20/GPIO21.
Configuration ESPHome : le YAML complet annoté
ESPHome intègre un composant natif ld2410 depuis la version 2023.2 (enrichi en 2023.8 avec les switches, numbers et selects dédiés). La configuration se fait en trois blocs : la déclaration UART, le composant ld2410 lui-même, et les entités exposées à Home Assistant (binary sensors pour les états, sensors numériques pour les distances et niveaux d'énergie).
Voici le fichier bureau-ld2410.yaml complet et prêt à flasher. Copiez-le dans ESPHome, remplacez les identifiants WiFi, et adaptez les GPIO à votre carte.
esphome:
name: bureau-ld2410
friendly_name: Capteur presence bureau
esp32:
board: esp32-c6-devkitc-1
framework:
type: esp-idf
logger:
level: INFO
api:
encryption:
key: "REMPLACER_PAR_VOTRE_CLE_API"
ota:
- platform: esphome
password: "REMPLACER_PAR_VOTRE_PASSWORD_OTA"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
web_server:
port: 80
# -------------------------------------------------------------------
# UART pour le LD2410C — baud rate fixe 256000, 8N1
# -------------------------------------------------------------------
uart:
id: uart_ld2410
tx_pin: GPIO5 # TX de l'ESP32 -> RX du capteur
rx_pin: GPIO4 # RX de l'ESP32 -> TX du capteur
baud_rate: 256000
parity: NONE
stop_bits: 1
# -------------------------------------------------------------------
# Composant LD2410
# -------------------------------------------------------------------
ld2410:
uart_id: uart_ld2410
throttle: 1500ms # Limite la fréquence de publication des donnees
# -------------------------------------------------------------------
# Binary sensors — etats exposes a Home Assistant
# -------------------------------------------------------------------
binary_sensor:
- platform: ld2410
has_target:
name: Presence
device_class: occupancy
has_moving_target:
name: Mouvement
device_class: motion
has_still_target:
name: Presence statique
device_class: occupancy
# -------------------------------------------------------------------
# Sensors numeriques — distance, energie, duree absence
# -------------------------------------------------------------------
sensor:
- platform: ld2410
moving_distance:
name: Distance mouvement
unit_of_measurement: cm
still_distance:
name: Distance statique
unit_of_measurement: cm
moving_energy:
name: Energie mouvement
still_energy:
name: Energie statique
detection_distance:
name: Distance detection
unit_of_measurement: cm
# -------------------------------------------------------------------
# Nombres — seuils modifiables depuis Home Assistant
# -------------------------------------------------------------------
number:
- platform: ld2410
timeout:
name: Timeout absence
max_move_distance_gate:
name: Portee mouvement max (gate)
max_still_distance_gate:
name: Portee statique max (gate)
# -------------------------------------------------------------------
# Boutons de reset et recalibration
# -------------------------------------------------------------------
button:
- platform: ld2410
factory_reset:
name: Reset usine LD2410
restart:
name: Redemarrer LD2410
query_params:
name: Lire parametres LD2410
# -------------------------------------------------------------------
# Texte de diagnostic
# -------------------------------------------------------------------
text_sensor:
- platform: ld2410
version:
name: Firmware LD2410
mac_address:
name: Adresse MAC LD2410
# -------------------------------------------------------------------
# Switch — activer le mode engineering (affiche l'energie par gate)
# -------------------------------------------------------------------
switch:
- platform: ld2410
engineering_mode:
name: Mode engineering
bluetooth:
name: Bluetooth LD2410
Quelques points importants à comprendre dans cette configuration :
- Baud rate 256000 : c'est la vitesse UART fixe du LD2410. Ne la modifiez pas — le capteur ne répondra plus.
- Throttle 1500ms : limite la fréquence de publication des mesures. Le LD2410 peut émettre jusqu'à 40 Hz en mode engineering, ce qui sature inutilement l'API Home Assistant. 1,5 seconde est un bon compromis pour les automations d'éclairage.
- Mode engineering : ce switch active un flux d'informations détaillé — l'énergie détectée par chaque gate individuellement. C'est essentiel pour la calibration (section suivante). Laissez-le activé pendant la mise au point, désactivez-le en usage normal pour réduire le trafic API.
- Timeout absence : durée en secondes avant qu'un état "présent" ne repasse à "absent" après disparition du signal. Valeur par défaut 5 s — à ajuster selon la pièce.
Une fois le YAML flashé via la webUI ESPHome, le capteur apparaît automatiquement dans l'intégration ESPHome de Home Assistant. Vous verrez une vingtaine d'entités exposées — trois binary sensors, cinq à sept sensors numériques, et les boutons de configuration. Le capteur est déjà fonctionnel.
Calibrer les gates pour votre pièce : guide pratique
C'est la section que les deux ressources francophones existantes esquivent. Pourtant, sans calibration, un LD2410C configuré par défaut génèrera soit des faux positifs (il détecte le ventilateur du PC, le souffle du chauffage, les rideaux agités), soit des trous de détection (il vous "oublie" à 3 mètres alors qu'il porte à 6).
Comprendre les gates
Le LD2410 divise sa zone de détection en neuf gates numérotées 0 à 8. Chaque gate correspond à une tranche de 0,75 mètre depuis le capteur. Gate 0 = 0 à 0,75 m, gate 1 = 0,75 à 1,5 m, jusqu'à gate 8 = 6 à 6,75 m. Pour chaque gate, le capteur mesure deux niveaux d'énergie indépendants :
- Énergie mouvement : signal renvoyé par une cible qui se déplace dans cette tranche.
- Énergie statique : signal renvoyé par une cible immobile mais vivante (respiration).
Pour chacun, vous pouvez définir un seuil de sensibilité entre 0 et 100. Si l'énergie mesurée dans la gate dépasse son seuil, la détection se déclenche. Plus le seuil est bas, plus la gate est sensible — et plus elle est susceptible de générer des faux positifs.
Les paramètres par défaut (seuils autour de 40-50 pour le mouvement, 30-40 pour le statique) sont calibrés pour une pièce "moyenne" de 4 x 4 mètres, sans source de bruit. En pratique, il faut toujours les ajuster.
Procédure de calibration en 4 étapes
Étape 1 — Cartographier votre pièce. Mesurez la distance entre l'emplacement prévu du capteur et les points extrêmes de la pièce. Notez les sources potentielles de bruit radar : ventilateur de plafond, ventilateur de PC à moins de 1 m, rideau mobile, bouche d'aération soufflante, volet roulant automatique. Ces éléments émettront de l'énergie mouvement qu'il faudra filtrer.
Étape 2 — Définir la portée utile. Dans Home Assistant, ajustez Portee mouvement max (gate) et Portee statique max (gate) pour ne surveiller que la zone utile. Exemple pour un bureau de 4 x 3 m avec capteur au fond : gate 4 (3 m) pour le mouvement, gate 3 (2,25 m) pour le statique. Les gates au-delà seront ignorées — fini la détection parasite du couloir voisin.
Étape 3 — Observer les niveaux réels. Activez le switch Mode engineering. Le LD2410 diffuse alors les niveaux d'énergie par gate sur l'UART. Ces valeurs ne sont pas exposées automatiquement : il faut les déclarer explicitement dans le bloc sensor: de votre YAML avec les clés g0_move_energy, g0_still_energy, ..., g8_move_energy, g8_still_energy (18 entrées au total — voir la documentation ESPHome du composant ld2410). Une fois exposées, créez un dashboard provisoire avec ces 18 valeurs affichées en live. Laissez tourner 10 minutes pièce vide (ventilateur en marche si présent), puis 10 minutes pièce occupée en activité normale.
Étape 4 — Ajuster les seuils. Pour chaque gate dans la zone utile, définissez le seuil légèrement au-dessus du niveau maximum observé pièce vide. Exemple réel dans un bureau avec ventilateur de PC à 1 m :
- Gate 0-1 : niveau à vide monte à 35 (turbulence ventilateur) — seuil mouvement à 45.
- Gate 2-3 : niveau à vide stable autour de 10 — seuil mouvement à 25.
- Gate 4 : niveau à vide < 5 — seuil mouvement à 20, statique à 15.
Les seuils se configurent dans Home Assistant via les entités number.gate_X_move_threshold et number.gate_X_still_threshold que vous pouvez ajouter à la configuration ESPHome avec la plateforme number. Alternative plus rapide : passer par l'app Bluetooth HLKRadarTool, qui permet une calibration visuelle en temps réel avant de flasher les valeurs définitivement.
Trois profils de calibration éprouvés
Bureau (capteur sur l'écran, face à l'utilisateur). Seuils mouvement 20-25 au-delà de gate 2 pour attraper les micro-gestes au clavier. Seuils statiques permissifs (15-20) pour détecter la présence même endormie sur le fauteuil. Timeout 5 s — la transition mouvement-statique doit être fluide.
Salon (capteur en hauteur sur étagère ou mur). Portée étendue (gate 6-7) pour couvrir les 5-6 m. Seuils statiques plus stricts (30-40) pour éviter la détection de la TV allumée, qui renvoie un signal faiblement modulé. Timeout 30 s pour absorber les passages lents (personne qui quitte le canapé 10 secondes pour la cuisine).
Chambre (capteur en plafond ou haut de mur). Seuils statiques très sensibles (10-15) pour détecter la respiration d'une personne endormie. Exclure les gates 0-1 si le capteur est trop près du lit — la respiration à courte distance sature l'énergie et brouille les autres mesures. Mode engineering désactivé après calibration pour limiter les mises à jour en pleine nuit.
Conservez vos trois profils dans un dépôt Git : c'est une référence précieuse pour équiper les pièces suivantes sans repartir de zéro.
3 automations Home Assistant clé en main
Avec le capteur calibré, place aux automations. Voici trois recettes YAML qui couvrent 90 % des cas d'usage. Collez-les dans automations.yaml et adaptez les entity_id.
Rappel rapide sur la convention ESPHome : les entity_id générés dans Home Assistant suivent le schéma binary_sensor.<device_name>_<sensor_name> après slugification (minuscules, espaces remplacés par des underscores). Avec le YAML fourni plus haut (name: bureau-ld2410 et binary sensor nommé Presence), l'entity_id final est donc binary_sensor.bureau_ld2410_presence — c'est celui qu'on utilise dans les exemples ci-dessous.
Automation 1 — Lumière présence-aware avec seuil de luminosité
La lumière s'allume uniquement si vous êtes présent et qu'il fait sombre. Elle s'éteint automatiquement 2 minutes après votre départ.
- alias: Bureau lumiere presence
mode: restart
triggers:
- trigger: state
entity_id: binary_sensor.bureau_ld2410_presence
to: "on"
id: presence_on
- trigger: state
entity_id: binary_sensor.bureau_ld2410_presence
to: "off"
for: "00:02:00"
id: presence_off
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id: presence_on
- condition: numeric_state
entity_id: sensor.bureau_luminosite
below: 80
sequence:
- action: light.turn_on
target:
entity_id: light.bureau
data:
brightness_pct: 70
- conditions:
- condition: trigger
id: presence_off
sequence:
- action: light.turn_off
target:
entity_id: light.bureau
Le mode: restart est essentiel : si la présence revient pendant la temporisation de 2 minutes, l'automation se réinitialise proprement sans éteindre brièvement la lumière.
Automation 2 — Alerte absence prolongée
Utile pour surveiller une personne âgée, un animal en confinement, ou tout simplement savoir si vous avez oublié quelqu'un dans un espace. Si la pièce est vide pendant plus de 4 heures alors qu'elle devrait être occupée, une notification est envoyée.
- alias: Alerte absence prolongee salon
triggers:
- trigger: state
entity_id: binary_sensor.salon_ld2410_presence
to: "off"
for: "04:00:00"
conditions:
- condition: time
after: "08:00:00"
before: "22:00:00"
- condition: state
entity_id: input_boolean.maison_occupee
state: "on"
actions:
- action: notify.mobile_app
data:
title: Absence prolongee detectee
message: >-
Aucune presence au salon depuis 4h. Derniere detection :
{{ as_timestamp(states.binary_sensor.salon_ld2410_presence.last_changed)
| timestamp_custom('%H:%M') }}
Automation 3 — Mode nuit avec sensibilité réduite
La nuit, vous ne voulez pas que la lumière du couloir s'allume à pleine puissance si vous vous levez. Cette automation réduit automatiquement la sensibilité du capteur et allume une veilleuse tamisée au lieu du plafonnier.
- alias: Couloir mode nuit
triggers:
- trigger: state
entity_id: binary_sensor.couloir_ld2410_presence
to: "on"
conditions:
- condition: time
after: "23:00:00"
before: "06:30:00"
actions:
- action: light.turn_on
target:
entity_id: light.couloir_veilleuse
data:
brightness_pct: 15
rgb_color: [255, 140, 60]
- delay: "00:00:30"
- wait_for_trigger:
- trigger: state
entity_id: binary_sensor.couloir_ld2410_presence
to: "off"
for: "00:00:45"
timeout: "00:05:00"
- action: light.turn_off
target:
entity_id: light.couloir_veilleuse
Les trois automations combinées forment un socle solide. À partir de là, vous pouvez complexifier : intégration avec des modes maison (jour/nuit/absent), coordination avec un thermostat, déclenchement d'un mode cinéma selon la présence statique dans le salon. Tout reste local, hébergé sur votre Home Assistant.
Boîtier et intégration physique
Le LD2410C est un petit PCB nu de 35 x 7 mm. Il faut lui trouver un boîtier. Trois options selon votre objectif.
Impression 3D personnalisée. C'est la meilleure option. Une recherche sur Printables ou Thingiverse avec les mots-clés "LD2410 case ESP32" donne plus d'une trentaine de modèles STL libres, la plupart conçus pour accueillir un ESP32 (souvent le D1 Mini ou le Wemos S2 Mini) et le capteur dans un même volume. Imprimez en PLA ou PETG — ces deux plastiques sont transparents aux ondes radar 24 GHz. Évitez les filaments chargés en métal (PLA conducteur, fibre de carbone) qui bloquent le signal.
Boîtier standard hacké. Un boîtier universel électronique percé sur la face avant fonctionne, à condition que la face en regard du capteur soit fine. Les paliers indicatifs pour maintenir une atténuation inférieure à 3 dB : moins de 3 mm en PLA, moins de 5 mm en PETG, et un ABS légèrement plus épais reste tolérable. Le radar traverse la plupart des plastiques, du bois fin, du plâtre et même du placo mince — mais pas le métal, pas le verre teinté conducteur, pas l'eau (donc évitez de placer le capteur derrière un aquarium).
Fixation murale vs plafond. Pour un bureau ou un salon, la fixation murale à hauteur d'épaule (1,4 à 1,7 m) donne les meilleurs résultats : la zone de balayage couvre horizontalement la pièce, et le capteur est proche de la cible (moins de faux positifs au plafond). Pour les couloirs, les toilettes ou la chambre, la fixation plafond centre mieux la détection mais demande un ajustement des gates de courte portée.
Sur l'alimentation, un simple câble USB-C vers un adaptateur mural suffit pour 95 % des installations. Si vous voulez aller plus loin, un injecteur PoE avec splitter USB-C permet de centraliser l'alimentation sur le switch réseau — pratique pour multiplier les capteurs sans multiplier les prises secteur.
Dépannage : les 5 problèmes les plus fréquents
1. "Le capteur ne remonte rien dans ESPHome." Dans 90 % des cas, TX et RX sont inversés. Permutez les deux fils Dupont. Vérifiez aussi que baud_rate: 256000 est bien présent dans le bloc UART — une valeur par défaut (115200) donnera un silence complet.
2. "La compilation ESPHome échoue sur GPIO33." Sur certaines plateformes (notamment l'ESP32 classique), la notation des GPIO a évolué. Utilisez GPIO33 plutôt que 33 seul. Sur ESP32-C6, les GPIO sont déclarés en GPIO4, GPIO5, etc. Référez-vous au brochage exact de votre carte dans la doc ESPHome du framework choisi.
3. "Faux positifs toutes les 30 secondes dans une pièce vide." Un appareil mobile émet de l'énergie mouvement : ventilateur de plafond, aspirateur robot en charge qui fait tourner ses capteurs, poisson rouge dans un aquarium, rideau agité par la ventilation. Refaites la procédure de calibration en mode engineering pour identifier la gate qui sature, puis remontez son seuil.
4. "L'app HLKRadarTool ne voit pas le module en Bluetooth." Sur LD2410B et LD2410C, le Bluetooth se désactive dès qu'une liaison UART active est détectée. Débranchez les fils TX/RX du module (VCC et GND suffisent pour l'alimenter), puis relancez la recherche Bluetooth. Activez aussi le switch bluetooth exposé par ESPHome si vous l'aviez désactivé.
5. "Les entités mouvement et présence statique sont toujours en 'off'." Vérifiez que le mode engineering n'est pas bloqué à l'état "on" par une automation : dans ce mode, certains firmware se contentent d'envoyer les données brutes sans évaluer les seuils. Passez temporairement le switch à off, observez le comportement, puis ajustez.
Et si vous voulez aller plus loin : LD2450 et multi-zones
Le LD2450 est la variante avancée de la gamme : il suit simultanément jusqu'à trois cibles distinctes (là où le LD2410 fusionne tout en un seul état présence/absence) avec leurs coordonnées X/Y, ce qui ouvre des possibilités nouvelles. Vous pouvez définir des zones virtuelles dans Home Assistant (rectangles dans l'espace de la pièce) et déclencher des automations selon la zone occupée : "allumer la lampe du canapé si une cible est dans la zone salon, ignorer les cibles dans la zone cuisine ouverte".
L'intégration ESPHome native du LD2450 est disponible depuis la version 2025.3. La configuration YAML suit la même structure que le LD2410, avec des sensors supplémentaires pour la position X/Y/vitesse de chaque cible. Attendez-vous à ajouter une soixantaine d'entités par capteur si vous activez toutes les sorties — limitez-vous aux cibles et zones utiles pour ne pas saturer Home Assistant.
À signaler aussi, le LD2412, successeur direct du LD2410 sorti en 2024. HiLink annonce une portée étendue à 9 m et un apprentissage automatique de l'environnement (le module apprend seul les niveaux à vide de chaque gate et ajuste ses seuils). L'intégration ESPHome reste à ce jour non native mais des composants externes existent. Si vous démarrez aujourd'hui, le LD2410C reste le choix le plus sûr ; gardez le LD2412 en tête pour un futur upgrade.
Pour équiper plusieurs pièces, le pack de 5 unités LD2410C reste la solution la plus économique. Les détaillants français proposent des kits complets à moins de 30 euros.
Si vous cherchez à compléter votre installation par une couche Zigbee (télécommandes, contacts d'ouverture, thermomètres), le choix du coordinateur devient stratégique. Nous avons publié un guide dédié : quel coordinateur Zigbee choisir pour Home Assistant en 2026.
Conclusion
Monter un capteur de présence mmWave avec un LD2410 et ESPHome prend un après-midi et coûte 15 à 20 euros par unité. En échange, vous obtenez une détection locale, sans cloud, infiniment plus fiable qu'un PIR — capable de vous "voir" même immobile. Le vrai travail ne tient pas dans le câblage (trois fils) ni dans le YAML (cinquante lignes), mais dans la calibration des gates, que ce guide vous permet d'aborder pièce par pièce avec une méthode reproductible.
Une fois votre premier capteur en place, la tentation d'en installer dans chaque pièce devient forte. C'est la bonne voie : une maison intelligente repose sur des signaux fiables, et la présence mmWave en est le plus transformateur depuis l'arrivée du Zigbee. Commencez par la pièce où le PIR vous exaspère le plus — souvent, le bureau — et propagez.