Bonjour,
Je viens de finir de bricoler mon détecteur de présence pour allumer la lumière de mes toilettes automatiquement (ESP32 avec esphome + LD2410c). Je suis plutôt satisfait du résultat, la détection est rapide et mes lumières s’allument quasi instantanément. Cependant, lorsque je reste un peu longtemps dans la pièce immobile, puis que je sors de la zone de détection de l’appareil, la transition pour le changement d’état de détection est trèèèèès longue (et donc les lumières metten du temps à s’éteindre). Ca peut dure jusqu’à 30 secondes à une minute.
Sachant que le détecteur est à 100% sur certaines gates immobile. (Je suis à environ 50 cm du détecteur quand assis sur les toilettes). A croire qu’il sature et que ça ne lui fait pas plaisir…
Avez-vous déjà rencontré ce problème, et si oui, comment le régler?
Ci-dessous un exemple d’état quand il y a quelqu’un sur les toilettes.
Bonjour,
j’ai le même comportement, mais sa dure pas 30sec. Il est sur timeout a 2s, ça peut mettre 10s quand je sors de la zone. Je l’utilise sur un ESP32-S3 flash16mb Psram8mb.
Mais quel est la raison de ce ‹ lag › ?
Question pourquoi avoir 8 zone passage en 0.20-0.25 ? Ou 0.75 ?
Huit zones passages? C’est à dire? Je n’ai pas compris la question
Dans ton graph on voie 8 zone axe horizontal.
C’est 8 zone/palier sont tes distance de détection
Dans le ld2410c tu peut configurer chaque palier/zone avec une distance de 0.75 ou 0.20 ( de mémoire)
Ce qui fait que le ld2410 peut détecter quand c’est configurer sur 0.75 jusqu’à une distance maxi d’environ 6m (8 x 0.75) ou alors jusqu’à environ 2m (8 x 0,25)
À partir de là tu peut ensuite mettre des seuil pour indiquer si au dessus de ce seuil pour chaque palier alors tu considère qu’il y a une présence en dessous il n’y pas de présence
Pour désactiver un pallier ou un range de palier complet, il faut configurer le seuil à 100
Exemple :
Tes toilettes font 2m de long, là où tu pose le popotin se trouve à environ 1m de distance du capteur tu configure donc la détection du palier 4 jusqu’à 8 et du palier 0 à 3 avec un seuil de détection à 100
Ce qui fait que seulement quand la personne ouvre la porte (le détecteur d’ouverture par exemple allume la lumière, tu te pose sur le trône la détecteur capte, tu sort du trône, il détecte plus personne dans les Seine 4 à 8 et donc descend en dessous du seuil et sa éteins la lumière .
La seul chose compliquer et de trouver le seuil limite de détection car cela et influencer par les onde qui se trouve autour, wifi, gsm etc…
Il faut que tu face des vérifications sans personne dans la pièce et en ayant une personne de différente taille et corpulence pour trouver le point commun de seuil de détection….
Sa prend un peut de temps mais une fois bien config sa fonctionne très bien.
Avec cette méthode chez moi dans mon bureau la lumière s’éteint en 2sec max après être sortie de la pièce
Ok, je comprend mieux la question, merci 
En fait je n’ai pas vraiment de nécessité à définir des zones actives ou non (je pense). Je m’explique :
Mes toilettes font environ deux mètres de long, le détecteur est sur le calibre « 0.25 » (donc 8 * 0.25 = 2m), tout est ok et il ne me « voit » pas lorsque je suis hors des toilettes (plutôt bien foutu pour le coup, la détection a lieu pile poil quand je passe le pallier, plutôt content ^^).
Ensuite, la zone de détection spécifique quand on est assis sur les toilettes est entre les gates 1 et 4.
Ce qui me pose problème sont ces deux points :
-
On voit bien sur les deux graphiques que j’ai publié que le mode mobile me détecte entre 0 et 4, plutôt cohérent (bien qu’il n’y ai rien entre la zone 0 et 1), alors que le mode immobile ne détecte aucun signale entre les gates 0 et 2 et me « voit » entre 2 et 8 (plutôt étonnant qu’il ne me voit pas plus proche, mais surtout très étonnant qu’il détecte une présence entre les zones 4 et 8, je ne suis pas si gros que ça ^^).
-
Le changement d’état de « détecté » à « non détecté » est très long : contrairement à la courbe mobile qui est très réactive en fonction des mouvements que l’on fait, la courbe immobile met beaucoup de temps à diminuer en intensité une fois que je suis sorti des toilettes, elle met du temps à « s’actualiser » (vu qu’"il n’y a plus rien à détecter), et mets donc du temps à passer à 'état « non détecté ». En gros, la courbe immobile reste sur « 100% » dans les zones 2 et 8 alors que je suis sorti des toilettes depuis plusieurs secondes, et cette dernière peut mettre facilement 30 secondes avant de diminuer significativement en intensité (inférieur à ma valeur seuil).
Ok, pourrais-tu envoyer toute ta config sur l’EPS
Car ça pourrait être un problème de ton LD2410 ou du firmware/modèle installé dessus…
Voci le code YAML :
esphome:
name: detecteur
friendly_name: detecteur
platformio_options:
board_build.extra_flags:
- "-DARDUINO_USB_CDC_ON_BOOT=0"
# Example configuration entry
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "LAjhMy83UNrMTpOQbiwt7KGLBQHf4aunJMl0U1WtunE="
ota:
- platform: esphome
password: "d18f627750914a0a812770d3a80cf8ed"
wifi:
ssid: xx
password: xx
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32 detecteur"
password: "FApKPxy5S4I2"
captive_portal:
uart:
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 256000
parity: NONE
stop_bits: 1
ld2410:
id: "capteur_ld"
binary_sensor:
- platform: ld2410
has_target:
name: "Présence"
has_moving_target:
name: "Cible mobile"
has_still_target:
name: "Cible Immobile"
out_pin_presence_status:
name: "état broche présence"
- platform: gpio
pin: 15
name: "broche gpio présence"
device_class: presence
sensor:
- platform: ld2410
light:
name: "lumière"
moving_distance:
name: "Distance Déplacement"
still_distance:
name: "Distance Immobile"
moving_energy:
name: "Énergie Mobile"
still_energy:
name: "Énergie Immobile"
detection_distance:
name: "Distance de détection"
g0:
move_energy:
name: "g0 Énergie Mobile"
still_energy:
name: "g0 Énergie Immobile"
g1:
move_energy:
name: "g1 Énergie M"
still_energy:
name: "g1 Énergie I"
g2:
move_energy:
name: "g2 Énergie M"
still_energy:
name: "g2 Énergie I"
g3:
move_energy:
name: "g3 Énergie M"
still_energy:
name: "g3 Énergie I"
g4:
move_energy:
name: "g4 Énergie M"
still_energy:
name: "g4 Énergie I"
g5:
move_energy:
name: "g5 Énergie M"
still_energy:
name: "g5 Énergie I"
g6:
move_energy:
name: "g6 Énergie M"
still_energy:
name: "g6 Énergie I"
g7:
move_energy:
name: "g7 Énergie M"
still_energy:
name: "g7 Énergie I"
g8:
move_energy:
name: "g8 Énergie M"
still_energy:
name: "g8 Énergie I"
- platform: wifi_signal
name: Signal Wifi
id: wifi_signal_db
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
update_interval: 60s
unit_of_measurement: "%"
entity_category: "diagnostic"
switch:
- platform: ld2410
engineering_mode:
name: "mode ingénierie"
bluetooth:
name: "contrôle bluetooth"
number:
- platform: ld2410
timeout:
name: "délai"
light_threshold:
name: "seuil lumière"
max_move_distance_gate:
name: "distance déplacement maximal"
max_still_distance_gate:
name: "distance Immobile maximal"
g0:
move_threshold:
name: "g0 seuil Énergie M"
still_threshold:
name: "g0 seuil I"
g1:
move_threshold:
name: "g1 seuil I"
still_threshold:
name: "g1 seuil"
g2:
move_threshold:
name: "g2 seuil M"
still_threshold:
name: "g2 seuil I"
g3:
move_threshold:
name: "g3 seuil M"
still_threshold:
name: "g3 seuil I"
g4:
move_threshold:
name: "g4 seuil M"
still_threshold:
name: "g4 seuil I"
g5:
move_threshold:
name: "g5 seuil M"
still_threshold:
name: "g5 seuil I"
g6:
move_threshold:
name: "g6 seuil M"
still_threshold:
name: "g6 seuil I"
g7:
move_threshold:
name: "g7 seuil M"
still_threshold:
name: "g7 seuil I"
g8:
move_threshold:
name: "g8 seuil M"
still_threshold:
name: "g8 seuil I"
text_sensor:
- platform: ld2410
version:
name: "version du micrologiciel"
mac_address:
name: "adresse mac"
select:
- platform: ld2410
distance_resolution:
name: "résolution de distance"
light_function:
name: "fonction de lumière"
out_pin_level:
name: "niveau de broche de sortie"
button:
- platform: restart
icon: mdi:power-cycle
name: "ESP Reboot"
- platform: ld2410
restart:
name: "redémarrer"
query_params:
name: "paramètres de requête"
Voici mon fichier de config:
S2 mini :
avec detécteur LD2410C:
Code ESP:
esphome:
name: detecteur-presence-bureau
friendly_name: Détecteur présence bureau
platformio_options:
board_build.extra_flags:
- "-DARDUINO_USB_CDC_ON_BOOT=0"
esp32:
board: lolin_s2_mini
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: !secret api_encrypt_key
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
reboot_timeout: 10min
use_address: 192.168.1.182
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Detecteur-Presence-Bureau"
password: !secret web_password
captive_portal:
web_server:
port: 80
version: 2
local: true
uart:
tx_pin: GPIO18
rx_pin: GPIO33
baud_rate: 256000
parity: NONE
stop_bits: 1
id: uart_1
ld2410:
- uart_id: uart_1
binary_sensor:
- platform: ld2410
has_target:
name: Presence
has_moving_target:
name: Moving Target
has_still_target:
name: Still Target
out_pin_presence_status:
name: out pin presence status
sensor:
- platform: ld2410
light:
name: light
moving_distance:
name : Moving Distance
still_distance:
name: Still Distance
moving_energy:
name: Move Energy
still_energy:
name: Still Energy
detection_distance:
name: Detection Distance
g0:
move_energy:
name: g0 move energy
still_energy:
name: g0 still energy
g1:
move_energy:
name: g1 move energy
still_energy:
name: g1 still energy
g2:
move_energy:
name: g2 move energy
still_energy:
name: g2 still energy
g3:
move_energy:
name: g3 move energy
still_energy:
name: g3 still energy
g4:
move_energy:
name: g4 move energy
still_energy:
name: g4 still energy
g5:
move_energy:
name: g5 move energy
still_energy:
name: g5 still energy
g6:
move_energy:
name: g6 move energy
still_energy:
name: g6 still energy
g7:
move_energy:
name: g7 move energy
still_energy:
name: g7 still energy
g8:
move_energy:
name: g8 move energy
still_energy:
name: g8 still energy
switch:
- platform: ld2410
engineering_mode:
name: "engineering mode"
bluetooth:
name: "control bluetooth"
number:
- platform: ld2410
timeout:
name: timeout
light_threshold:
name: light threshold
max_move_distance_gate:
name: max move distance gate
max_still_distance_gate:
name: max still distance gate
g0:
move_threshold:
name: g0 move threshold
still_threshold:
name: g0 still threshold
g1:
move_threshold:
name: g1 move threshold
still_threshold:
name: g1 still threshold
g2:
move_threshold:
name: g2 move threshold
still_threshold:
name: g2 still threshold
g3:
move_threshold:
name: g3 move threshold
still_threshold:
name: g3 still threshold
g4:
move_threshold:
name: g4 move threshold
still_threshold:
name: g4 still threshold
g5:
move_threshold:
name: g5 move threshold
still_threshold:
name: g5 still threshold
g6:
move_threshold:
name: g6 move threshold
still_threshold:
name: g6 still threshold
g7:
move_threshold:
name: g7 move threshold
still_threshold:
name: g7 still threshold
g8:
move_threshold:
name: g8 move threshold
still_threshold:
name: g8 still threshold
button:
- platform: ld2410
factory_reset:
name: "factory reset"
restart:
name: "restart"
query_params:
name: query params
text_sensor:
- platform: ld2410
version:
name: "firmware version"
mac_address:
name: "mac address"
select:
- platform: ld2410
distance_resolution:
name: "distance resolution"
baud_rate:
name: "baud rate"
light_function:
name: light function
out_pin_level:
name: out pin level
La présence se désactive en quelque secondes :
si tu prends l’application sur ton mobile HLK-radar, et que tu te connectes sur ton ld2410, il y a deux graph important :
le premier : Mouvement
le deuxième : présence
c’est le deuxième dans ton problème qu’il faut bien configuré, il faut mettre des seuils qui font que la courbe passe vite en dessous du seuil en question
Exemple chez moi (toujours dans mon bureau) :
flèche rouge = seuil utilisé pour indiquer la puissance de présence
flèche bleue = information de puissance détectée par la sonde
et voici quand je sors du bureau la courbe bleu descend et passe en dessous du seuil (ligne rouge) et le détecteur passe en vers (Rond en haut à gauche)
pour avoir une estimation du temps, au moment où la courbe du premier graph se met à bouger c’est quand je me déplace pour sortir du bureau) le temps entre le moment où je sors de la pièce et l’information remontées par le détecteur et ~2-3 sec max

1 « J'aime »
Ne pas oublier de mettre à jour à la dernière version 2.44 depuis l’application mobile, ils ont rajouté une option « Auto » qui permet de faire un test de bruit et d’auto implémenter les bonnes valeurs pour les différents seuils.
Pendant le test, il faut que le détecteur soit à son emplacement définitif et personne dans la pièce, cela lui permet de vérifier les différents parasites dans la pièce et d’ajuster les valeurs.
Ensuite faire le test en passant dans la pièce (mouvement, et en restant statique à un endroit) et vérifié le bon fonctionnement, si pas au top pour vous, ajuster les valeurs manuellement 