Tout le monde commence par la même automatisation : un détecteur de mouvement, une lampe, une temporisation de deux minutes. Et tout le monde finit par la même scène — assis dans le noir, à agiter les bras.
Le problème n’est pas la temporisation. C’est le capteur.
Mouvement n’est pas présence
Un détecteur infrarouge passif (PIR) ne détecte pas les gens : il détecte des variations de chaleur dans son champ de vision. Une personne immobile devient invisible pour lui en quelques dizaines de secondes.
Un capteur mmWave (radar millimétrique, comme le Hi-Link LD2410 qu’on retrouve dans la plupart des capteurs du commerce type Aqara FP2 ou Everything Presence), lui, émet une onde radio et mesure ce qui revient. Il perçoit des mouvements de l’ordre du millimètre — respiration comprise. Une personne assise reste détectée.
| PIR | mmWave | |
|---|---|---|
| Personne immobile | non détectée | détectée |
| Latence de détection | ~1 s | 1 à 3 s |
| Consommation | pile, plusieurs mois | alimentation permanente requise |
| Faux positifs | rares | ventilateurs, rideaux, animaux |
Le mmWave n’est pas gratuit : il demande une alimentation continue et un réglage fin. Mais il résout le problème de fond.
La combinaison qui fonctionne : PIR + mmWave
La bonne architecture n’oppose pas les deux technologies, elle les combine :
- le PIR déclenche l’allumage, parce qu’il est instantané et sans faux positif ;
- le mmWave maintient l’éclairage, parce qu’il voit les gens immobiles.
Cela se traduit par deux automatisations distinctes, pas une seule.
Automatisation 1 — allumer
alias: "Salon — allumage sur mouvement"
description: >
Allume l'éclairage du salon quand un mouvement est détecté,
uniquement si la luminosité ambiante est insuffisante.
mode: single
triggers:
- trigger: state
entity_id: binary_sensor.salon_pir
to: "on"
conditions:
# Inutile d'allumer en plein après-midi.
- condition: numeric_state
entity_id: sensor.salon_luminosite
below: 40
# On respecte un éventuel mode "cinéma" activé manuellement.
- condition: state
entity_id: input_boolean.mode_cinema
state: "off"
actions:
- action: light.turn_on
target:
entity_id: light.salon_plafond
data:
brightness_pct: >
{{ 25 if now().hour >= 22 or now().hour < 7 else 80 }}
transition: 2
Le point important est le brightness_pct calculé : la même automatisation donne un
éclairage doux la nuit et un éclairage franc en journée, sans dupliquer la règle.
Automatisation 2 — éteindre
alias: "Salon — extinction sur absence"
description: >
Éteint l'éclairage après une absence confirmée par le capteur de présence.
mode: restart
triggers:
- trigger: state
entity_id: binary_sensor.salon_presence
to: "off"
for:
minutes: 4
conditions:
- condition: state
entity_id: light.salon_plafond
state: "on"
actions:
- action: light.turn_off
target:
entity_id: light.salon_plafond
data:
transition: 5
Deux détails comptent ici :
mode: restart— si quelqu’un revient pendant le décompte, le minuteur repart de zéro au lieu d’empiler des exécutions ;transition: 5— une extinction progressive sur cinq secondes laisse le temps d’agiter la main si le capteur s’est trompé. C’est le meilleur rapport confort/effort de toute l’installation.
Régler le capteur mmWave
Les capteurs mmWave arrivent réglés au maximum de sensibilité, ce qui détecte le voisin à travers la cloison. La configuration ESPHome ci-dessous, pour un module LD2410 branché sur un ESP32, expose les réglages directement dans l’interface, pour les ajuster sans reflasher :
esphome:
name: capteur-salon
# Le capteur communique en série avec le microcontrôleur.
uart:
id: uart_ld2410
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 256000
parity: NONE
stop_bits: 1
ld2410:
uart_id: uart_ld2410
binary_sensor:
- platform: ld2410
has_target:
name: "Présence salon"
has_moving_target:
name: "Mouvement salon"
has_still_target:
name: "Présence immobile salon"
number:
# Exposés dans Home Assistant : réglage sans reflashage.
- platform: ld2410
timeout:
name: "Délai de disparition"
max_move_distance_gate:
name: "Portée mouvement"
max_still_distance_gate:
name: "Portée présence immobile"
sensor:
- platform: ld2410
detection_distance:
name: "Distance détectée"
La méthode de réglage tient en trois étapes :
- Quitter la pièce, fermer la porte, et observer
Distance détectéependant dix minutes. Tout ce qui est encore signalé est un faux positif. - Réduire la portée jusqu’à ce que la pièce vide reste silencieuse.
- Revenir s’asseoir et vérifier que la présence immobile tient.
Compter deux à trois soirées d’ajustement. C’est le prix d’un capteur qui ne se trompe plus jamais.
Les pièges rencontrés
- Le ventilateur de plafond. Il génère une présence permanente. Il faut soit orienter le capteur autrement, soit exclure la zone concernée.
- Le chat. Un mmWave réglé finement détecte un chat de 4 kg. Selon les cas, c’est une fonctionnalité ou une nuisance.
- Le capteur derrière une plaque métallique. L’onde ne traverse pas. Le boîtier doit être en plastique, et rien ne doit se trouver devant.
Ce que ça change au quotidien
Une fois réglé, on cesse de penser aux interrupteurs. C’est exactement l’objectif : une automatisation réussie est une automatisation qu’on oublie.
L’étape suivante consiste à généraliser le principe pièce par pièce — et, inévitablement, à écrire un blueprint pour ne pas recopier la même automatisation sept fois. Côté matériel, le choix du coordinateur Zigbee conditionne la fiabilité de toute la chaîne.
