LD2410 esphome tips

Are you connecting to your LD2410C using bluetooth or via an ESP32 using the UART TX/RX pins?
If you are trying to set the thresholds via YAML, you need to be using the UART TX/RX pins.
Also I have been using the dev branch of the LD2410 HA integration which has extra functionality to fully configure the LD2410 via HA so you don’t need to change the YAML or even use the app.

1 Like

I see, thank you very much. What does HA do with those numbers then?

Great, thank you! I will try this dev branch.

Hello everyone! :wave: If you’ve attempted to make your LD2410 work but faced difficulties, or for those who wants to get a ready to use and connect to Home Assistant in less than 15 seconds, I have a solution for you. I’ve assembled some LD2410C units with ESP32 and 3D printed case, and I can ship them anywhere in the world. You can find them on my wife’s website under the electronic category, or go to Lavanza HPS (Human Presence Sensor) mmWave – Aneka indo. They are shipped from Los Angeles, USA.

2 Likes

How are the temps after a few days with that case?

Does anybody know if sensor orientation (90 degrees etc) matter?

The version without Bluetooth tracking, only using mmWave, zips around at about 43F 109F at 80F room temperature

Looking at the datasheet for the LD2410 it looks like it has a slightly wider range on the vertical when mounted horizontally, but there isn’t much difference. The left side seems to be the poorest and its probably the wiring connector impacting it.
This diagram shows the range when mounted on the ceiling:

LD2410-range1
LD2410-range

Unfortunately, I can’t find a datasheet for the LD2410C which has a different form-factor so its range coverage might be slightly different.

1 Like

How is the sensor temp half the room temp?

2 Likes

Well I just did some initial testing with mine and I found it to be very sensitive in orientation differences. Here it is at 0 degrees if I rotate it by 90 I find it to be very sensitive to the horizontal plane which is not working in my case. I could lower the sensitivity but then there could be some false negative especially after gate 4. I was hoping to mount it at 90 degrees for aesthetic reasons but it’s still early on testing.

Forgot to change from C to F. (Corrected)

Looks like you are using a LD2410C which has a different form factor to the LD2410A/B so its range coverage would be different from the chart I posted above. Good to know the LD2410C has different sensitivity based on its orientation so adds more options for case design and mounting depending on the required coverage.

1 Like

is it me or did the LD2410 config of esp home changed so drastically that it broke the old component and configs?

I can’t even open the logs anymore due to the errors in the config:

I have found some new config examples for the number thing and the sensors, but eventhough the config itself is accepted, the compile it not accepting it, so if somebody has a working example with the new number components, that would be great… (or a fix for this old config if that is possible under the old LD2410 component…

Is it me or do people have a problem reading changelogs in this community :smiley:

image

I know, but reading through the docs and looking for examples with the number component still doesn’t work as mentioned in my post…

Do you have a example of your yaml file? I´m in the same boat

My working config on esphome 2023.8.0 (All copied from the docs)


uart:
  id: uart_ld2410
  tx_pin: TX
  rx_pin: RX
  baud_rate: 256000
  parity: NONE
  stop_bits: 1

ld2410:
  uart_id: uart_ld2410

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

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

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

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

switch:
  - platform: ld2410
    engineering_mode:
      name: Engineering Mode
    bluetooth:
      name: Control Bluetooth

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
2 Likes

Docs? Don’t spout that docs crap… :slight_smile:

1 Like

ah that seems to have been my mistake, the docs referring to the number component for the timeout and G values and such, and looking into that it mainly stated things I didn’t need and because of the writing I assumed that it needed to be configured in the yaml as previous, but the new config leaves everything blank and let you set the values in HA in the entity itself. Way easier to config this way then recompile every time, but the docs could have been more clear about this and state a full example…

I copied yours and it now works like a charm again :slight_smile:

I mean, this could have been way more descriptive…

Number
The ld2410 number allows you to control the configuration of your LD2410 Sensor.

Configuration variables:
timeout (Optional, int): Time in seconds during which presence state will stay present after leaving. Defaults to 5s All options from Number.

light_threshold (Optional, int): Sets the light threshold for the light function. Value between 0 and 255 inclusive. Defaults to 128. All options from Number.

max_move_distance_gate (Optional, int): Maximum distance gate for movement detection. Value between 2 and 8 inclusive. Defaults to 8. All options from Number.

max_still_distance_gate (Optional, int): Maximum distance gate for still detection. Value between 2 and 8 inclusive. Defaults to 8. All options from Number.

gX (Optional): Thresholds for the Xth gate (X => 0 to 8).
move_threshold (Required, int): Threshold for the gate for motion detection. Above this level for the considered gate (distance), movement detection will be triggered. Value between 0 and 100 inclusive. See default values below. All options from Number.

still_threshold (Required, int): Threshold for the gate for still detection. Above this level for the considered gate (distance), still detection will be triggered. Value between 0 and 100 inclusive. See default values below. All options from Number.

ld2410_id (Optional, ID): Manually specify the ID for the LD2410 Sensor component if you are using multiple components.

Will you please post you yaml file?