Tuto LD2410 - Détecteur de présence avec ESPHome

J’ai trouvé c’est exemple pour allumer une led avec le capteur de présence. A adapter pour ton relay:

binary_sensor:
  - platform: ld2410
    has_target:
      name: Presence
      on_press:
        then:
          - light.turn_on: led
      on_release:
        then:
          - light.turn_off: led
    has_moving_target:
      name: Moving Target
    has_still_target:
      name: Still Target

output:
  - platform: ledc
    id: onboard_led
    pin:
      number: GPIO2
      inverted: false

light:
 - platform: monochromatic
   name: "Onboard LED"
   output: onboard_led
   id: led


EDIT:
je viens de tester ce code pour allumer une lumière ( led cuisine ) sur HA par appel de service et ca fonctionne.

  - platform: ld2410
    has_target: #Présence
      name: Presence
      on_press:
        then:
          - homeassistant.service:
              service: light.turn_on
              data:
                entity_id: light.0x00158d000501ccd9
      on_release:
        then:
          - homeassistant.service:
              service: light.turn_off
              data:
                entity_id: light.0x00158d000501ccd9

image

Pour toi, je pense que ce code irais:

binary_sensor:
  - platform: ld2410
    has_target:
      name: Presence
      on_press:
        then:
          - switch.turn_on: relay1
      on_release:
        then:
          - switch.turn_off: relay1

EDIT2:
j’ai tester avec le capteur luminosité du LD2410 , pour allumer en dessous de 95 ( en journée sa allumera pas ).

exemple:

sensor:
  - platform: ld2410
    light: #intensité lumineuse
      name: light
      id: lightintensite


binary_sensor:
  - platform: ld2410
    has_target: #Présence
      name: Presence
      on_press:
        then:
          - if:
              condition:
                lambda: return id(lightintensite).state < 95;
              then:
                - homeassistant.service:
                    service: light.turn_on
                    data:
                      entity_id: light.0x00158d000501ccd9
      on_release:
        then:
          - homeassistant.service:
              service: light.turn_off
              data:
                entity_id: light.0x00158d000501ccd9
    has_moving_target: #Cible mobile
      name: Moving Target
    has_still_target: #Cible immobile
      name: Still Target

Bonjour Warc0zes,
grâce à ton aide, j’ai pu compiler.
Merci pour ton aide
Voici mon code pour les utilisateurs en galère avec un ESP32-S2 mini
Il me reste à trouver comment activer le mode engineering en permanence.

#https://adafruit.github.io/Adafruit_WebSerial_ESPTool/

substitutions:
  disp_name: s2-mini-test
  internal_name: s2_mini_test
  ip_address: !secret ip_S2_Test
  update_time: 15s


esphome:
  name: ${disp_name}
  #friendly_name: S2 mini Bureau

esp32:
  board: esp32-s2-saola-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "YZB2TqDdQeJSvRPf3kQ7NViI+aYk8PMU/vJ9ZX7SYYQ="

ota:
  password: "f24b03fc24c9803024c95d35422bd867"

packages:
  device_base: !include tools/device_base.yaml
  wifi: !include tools/ip_fixe.yaml


wifi:
  networks:
  - ssid: !secret wifi_domotique
    password: !secret wifi_domotique_pwd  

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "S2-Mini-Bureau Fallback Hotspot"
    password: "yyrfKEMbnMxV"

captive_portal:

uart:
  tx_pin: 18
  rx_pin: 33
  baud_rate: 256000
  id: ld2410_uart
  parity: NONE
  stop_bits: 1

ld2410:

binary_sensor:
  - platform: ld2410

#Activation du relais par la présence
    # has_target: #Présence
    #   name: Presence
    #   on_press:
    #     then:
    #       - switch.turn_on: relay1
    #   on_release:
    #     then:
    #       - switch.turn_off: relay1

#Activation du relais par la présence et le seuil de luminosité < 95
    has_target: #Présence
      name: Presence
      on_press:
        then:
          - if:
              condition:
                lambda: return id(lightintensite).state < 95;
              then:
                - homeassistant.service:
                    service: light.turn_on
                    data:
                      entity_id: relay1
      on_release:
        then:
          - homeassistant.service:
              service: light.turn_off
              data:
                entity_id: relay1

    has_moving_target: #Cible mobile
      name: Moving Target
    has_still_target: #Cible immobile
      name: Still Target
    out_pin_presence_status:
      name: Out Pin Presence Status
    
switch:
  - platform: ld2410
    engineering_mode:
      name: "engineering mode" 
    bluetooth:
      name: "control bluetooth"
  - platform: gpio
    pin: 34
    name: "Relais_1"
    id: relay1

sensor:
  - platform: ld2410
    light: #intensité lumineuse
      name: light
      id: lightintensite
    moving_distance: #distance cible en mouvement
      name : Moving Distance
    still_distance: #distance cible immobile
      name: Still Distance
    moving_energy: #quantité de mouvement
      name: Move Energy
    still_energy: #quantité d'immobilité ??
      name: Still Energy
    detection_distance: #distance de détection
      name: Detection Distance

number:
  - platform: ld2410
    timeout: #Temps pour passer le binary sensor Présence à faux
      name: timeout
    light_threshold: #Seuil de lumière
      name: light threshold
    max_move_distance_gate: #Distance de détection du mouvemenet 2-8
      name: max move distance gate
    max_still_distance_gate: #Distance de détection d'immobilité 2-8
      name: max still distance gate

button:
  - platform: ld2410
    restart:
      name: "restart"

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


En rajoutant restore_mode: ALWAYS_ON , ça devrais être bon.

switch:
  - platform: ld2410
    engineering_mode:
      name: "engineering mode" 
      restore_mode: ALWAYS_ON

restore_mode (Optional): Control how the switch attempts to restore state on bootup. NOTE : Not all components consider restore_mode. Check the documentation of the specific component to understand how this feature works for a particular component or device. For restoring on ESP8266s, also see restore_from_flash in the esp8266 section.

  • RESTORE_DEFAULT_OFF - Attempt to restore state and default to OFF if not possible to restore.
  • RESTORE_DEFAULT_ON - Attempt to restore state and default to ON.
  • RESTORE_INVERTED_DEFAULT_OFF - Attempt to restore state inverted from the previous state and default to OFF.
  • RESTORE_INVERTED_DEFAULT_ON - Attempt to restore state inverted from the previous state and default to ON.
  • ALWAYS_OFF (Default) - Always initialize the switch as OFF on bootup.
  • ALWAYS_ON - Always initialize the switch as ON on bootup.
  • DISABLED - Does nothing and leaves it up to the downstream platform component to decide. For example, the component could read hardware and determine the state, or have a specific configuration option to regulate initial state.

Bonjour,
J’ai aussi découvert ce joli petit bricolage avec la vidéo des frères Poulain. Je suis en train de monter les solutions dans la maison et j’aurais voulu savoir si ces petits objets peuvent être utilisés à l’extérieur dans un boitier électrique étanche. En gros, j’ai une allée de garage et un petit chemin de 4m entre l’allée et la maison, et je vais mettre 2 spots (1 pour éclairer l’allée et l’autre pour éclairer la porte d’entrée), est-ce qu’on peut imaginer qu’en plaçant bien ce petit détecteur, et en mettant des actionneurs connectés derrière les lampes, on peut se servir du détecteur de présence pour allumer une lampe, puis l’autre suivant la zone où se trouve la personne ?

Salut,
tu peut faire des zones avec un LD2410.
regarde ce lien , parti Adding LD2410 Detection Zones

Merci pour l’info, je me posais aussi la question de la « rusticité » de ces objets, puisqu’ils vont être dehors (certes dans un boîtier étanche), mais bon il peut faire froid, y avoir de l’humidité etc…

Bonsoir
Pourriez-vous détailler cette personalisation SVP ?
:hot_face:Le mien ne fait aucune détection à plus de 1,59m.

Or, il est encore « à nu » (pas de boitier, et je fais les essais dans mon séjour (10m de long) et j’avais essayé dans mon atelier (mais là, beaucoup de bruit je suppose en raison des access points, bridge et autres bricoles qui émettent).
Tous les réglages sont à leurs valeurs d’origine.

Quelqu’un aurait-il une piste de recherche ?

Je résume ces valeurs :

# g0 de 0 à 0.75m, valeurs par défaut 'move/still' : 50/0
# g1 de 0.75 à 1.5m, valeurs par défaut 'move/still' : 50/0
# g2 de 1.5 à 2.25m, valeurs par défaut 'move/still' : 40/40
# g3 de 2.25 à 3m, valeurs par défaut 'move/still' : 30/40
# g4 de 3 à 3.75m, valeurs par défaut 'move/still' : 20/30
# g5 de 3.75 à 4.5m, valeurs par défaut 'move/still' : 15/30
# g6 de 4.5 à 5.25m, valeurs par défaut 'move/still' : 15/20
# g7 de 5.25 à 6m, valeurs par défaut 'move/still' : 15/20
# g8 de 6 à 6.75m, valeurs par défaut 'move/still' : 15/20

Pour ceux que ça pourrait aider, je laisse :

Trouvé !!!
J’avais oublié que j’avais joué sur l’intervalle en les palliers (gates). En le mettant à 0.2m au lieu de 0.75m, forcément je limitais à 7×0.2 et 9×0.2… Donc les 1,4 et 1,8m de détection fixe et mobile…
Traitement de : 1000092704.jpg…

Effectivement cette config limite les palier de détection et donc tu passe de 2m a 6m de détection environ ensuite il faut que tu joue avec les seuil pour chaque gate pour calibrer par rapport à ton environnement la détection de personne

Hello à tous

Je vous invite à enrichir l’initiative faite ici

Vous pouvez y mettre code ESPHome, vos meilleurs réglages, vos automatisations HA, vos flow Node red pour les mise en situations.

1 « J'aime »

Merci Jérôme :blush:.

A ce propos est-ce que quelqu’un peut me le dire si le code officiel proposé par ESP home fonctionne pour toutes les variantes du LD2410 ? C’est-à-dire le LD2410B, le LD2410C et le LD2410S

1 « J'aime »

oui pour les ld2410c

2 « J'aime »

Bonjour à tous, je regarde vos échanges depuis quelques temps pour comprendre le fonctionnement du LD2410. j’ai déjà un LD2450 qui fonctionne pas trop mal dans ma salle de bain. Mais la j’ai du mal à comprendre/paramétrer le LD2410 (pour une utilisation dans une buanderie).
j’ai fait plusieurs test de code de vos échanges, le capteur marche pas trop mal mais j’ai ces piques inexpliqué qui sont constant. savez-vous de quoi ça peut venir ?
j’ai un LD2410C sur un ESP8266

merci !!

mon code :

substitutions:
  name: ld2410_buanderie
  friendly_name: LD2410 buanderie

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  project:
    name: esphome.web
    version: '1.0'  

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
  password: !secret ota_password

# Allow provisioning Wi-Fi via serial
improv_serial:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  reboot_timeout: 10min
  ap:
    ssid: "ld2410_buanderie"
  manual_ip:
    static_ip: xxxxxx
    gateway: xxxxxx
    subnet: xxxxx

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

uart:
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 256000

ld2410:
  # - uart_id: uart_1     # peut-être superflu ?
 
# i2c:
  # - id: bus_a
    # sda: 12
    # scl: 11
    # scan: true
 
sensor:
  - platform: ld2410
    light:
      name: light  
    moving_distance:
      name: Moving Distance
    still_distance:
      name: Still Distance
    moving_energy:
      name: Moving 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       
 
  - platform: uptime
    name: Uptime
    id: sys_uptime
    entity_category: "diagnostic"
    update_interval: 60s
  
  - platform: wifi_signal 
    name: Wifi RSSI
    id: wifi_signal_db
    icon: mdi:wifi-strength-3
    update_interval: 60s
    entity_category: "diagnostic"            
 
 
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
 
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
    # par défault pour les gates : (7 gates pour immobile et 9 pour en mouvement)
# g0 de 0 à 0.75m, valeurs par défaut 'move/still' : 50/0
# g1 de 0.75 à 1.5m, valeurs par défaut 'move/still' : 50/0
# g2 de 1.5 à 2.25m, valeurs par défaut 'move/still' : 40/40
# g3 de 2.25 à 3m, valeurs par défaut 'move/still' : 30/40
# g4 de 3 à 3.75m, valeurs par défaut 'move/still' : 20/30
# g5 de 3.75 à 4.5m, valeurs par défaut 'move/still' : 15/30
# g6 de 4.5 à 5.25m, valeurs par défaut 'move/still' : 15/20
# g7 de 5.25 à 6m, valeurs par défaut 'move/still' : 15/20
# g8 de 6 à 6.75m, valeurs par défaut 'move/still' : 15/20       
    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
 
switch:
  - platform: ld2410
    engineering_mode:
      name: Engineering Mode
      # restore_mode: RESTORE_DEFAULT_ON  # activer le mode engineering en permanence selon https://forum.hacf.fr/t/tuto-ld2410-detecteur-de-presence-avec-esphome/29644/109
    bluetooth:
      name: Control Bluetooth
 
button:
  - platform: ld2410
    factory_reset:
      name: "factory reset"
    restart:
      name: "restart"
    query_params:
      name: query params
 
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
 
text_sensor:
  - platform: ld2410
    version:
      name: "firmware version"         
      
  - platform: wifi_info
    ip_address:
      name: IP Address
      entity_category: "diagnostic"
      icon: mdi:ip-network
    ssid:
      name: Wifi SSID
      entity_category: "diagnostic"
      icon: mdi:wifi-check
    mac_address:
      name: Wifi MAC
      entity_category: "diagnostic"
      icon: mdi:ip-network
    bssid:
      name: ESP Connected BSSID
      entity_category: "diagnostic"
      icon: mdi:ip-network

Bonjour,
as tu régler les gates ?
ta pas un appareil qui parasite ?

regarde ce post:

Salut. Oui j’ai testé aussi ce réglage de gate. J’ai mis a 100% toutes sauf celle qui me servait pour la zone de détection (la buanderie n’est pas grande mais trop pour passer a 0.2).
Je me suis dit pareil pour les parasites car il y a ma machine a laver cumulus et frigo. Mais j’ai testé le capteur dans le salon et dans le bureau et toujours pareil avec des réglages de gates différents. Ces montés a 250 le le fait sur toutes les gates …
Peut-être un défaut du capteur ou de l’Esp ?
J’en ai un deuxième qui est prévu pour les toilettes il faut que je le test pour voir s’il me fait pareil mais je voulais êtres sûre avant que j’avais pas un mauvais réglage ou peut-être branchement…

Peu-être, mais pas sur.
Chez moi, il est placer sur mon frigo, j’ai pas de pic a 250. Ca tourne entre 5-20%
image

image

Bon je comprends pas alors … Tu as quoi comme esp derrière ?
Le wifi instable ? Pourtant j’ai un routeur derrière ma box

un ESP32-S3 , c’est pas un esp8266 (peu être limite pour un LD2410).
Beaucoup utilise le wemos S2 Mini.

L’ESP32 dispose de deux cœurs de processeur, tandis que l’ESP8266 n’en a qu’un.
Connectivité: L’ESP32 dispose de connectivité WiFi et Bluetooth intégrée, tandis que l’ESP8266 ne prend en charge que le WiFi.

Ça marche je débute un Peu dans le monde des ESP donc je test encore pas mal de choses…
J’ai un ESP32 qui traine je vais faire le test avec pour voir si ça vient de ça. Je ferais un retour.
Merci pour les conseils et info en tout cas.

Bon en effet j’ai fait un test avec un ESP32, et tout fonctionne nickel. Donc le 8266 n’est pas assez performant pour le ld2410.
Plus qu’à commander un ESP32 mini …

2 « J'aime »