Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. Tasmota ESPHome Presence Sensor LD2410

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Tasmota ESPHome Presence Sensor LD2410

    This topic has been deleted. Only users with topic management privileges can see it.
    • Ralla66
      Ralla66 Most Active @liv-in-sky last edited by

      @liv-in-sky

      wenn läuft, Rule 1 anlegen mit :
      Rule1 1
      Rule1 ON System#Boot DO SerialSend 0 ENDON

      RX Rule.jpg

      Tasmota Rules

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @Ralla66 last edited by

        @ralla66 leider geht überhaupt nix - auch mit deinen tollen tipps bekomme ich es nicht ans laufen - im moment versuche ich esphome - da sieht es aber auch noch nicht besser aus 😞

        ich bin nicht mal sicher, on diese bluetooth version überhaupt dafür nutzbar ist - obwohl man eine baudrate (über die app) einstellen kann - in der app sind es 256000 und die baudrate von tasmota ist 255900 - keine ahnung , ob das das selbe ist

        Ralla66 1 Reply Last reply Reply Quote 0
        • Ralla66
          Ralla66 Most Active @liv-in-sky last edited by Ralla66

          @liv-in-sky

          wenn der Test RX nach GND am ESP geht fehlt wohl das Signal vom Sensor.
          Mal bitte das Datasheet deines Sensors hier verlinken.
          Immer wieder gerne genommen falsche unsaubere Spannungsversorgung
          durch Netzteile vom Wühltisch 🙂
          Ratsam sind auch immer min 1A, keine 500 ma USB Verbinder vom PC.
          Spannungsversorgung des Sensors nicht vom Wemos oder NodeMcu beziehen.
          Hat dein LD2410 an Pin 3 den Anschluß Vo Sensor Output ?

          liv-in-sky 2 Replies Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @Ralla66 last edited by

            @ralla66

            ich muss jetzt baumfällen gehen - werd am wochenende deine tipps checken - nochmals danke

            Ralla66 1 Reply Last reply Reply Quote 0
            • Ralla66
              Ralla66 Most Active @liv-in-sky last edited by Ralla66

              @liv-in-sky

              ok, Baudrate kannste ändern, max 115200 bps
              RX baud.jpg

              bis denne

              Ralla66 1 Reply Last reply Reply Quote 0
              • Ralla66
                Ralla66 Most Active @Ralla66 last edited by

                @ralla66

                Zusatz, wenn Out vorhanden sollte auch möglich sein :
                Out mit ADC am ESP verbinden. Generic 18, A0 -> ADC Input.
                Dann sollten im Tasmota Main Menü Werte von 0 bis 1024 bei Motion Detection
                angezeigt werden.
                Wäre zu prüfen welche Spannung Out ausgibt,bei 5 Volt halt Widerstand zwischen
                Out und ADC.
                Bin Weg --------------------------------------------------->>

                RX pin.jpg

                liv-in-sky 2 Replies Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @Ralla66 last edited by

                  @ralla66 sagte in Tasmota Gitpod Sensor LD2410 BinFile:

                  Spannungsversorgung des Sensors nicht vom Wemos oder NodeMcu beziehen

                  das war ein wertvoller tipp - zumindest bekomme ich jetzt was gesendet

                  wenn ich jetzt noch wüßte, was ich damit anfangen kann - es gibt auch den pin "out" - dachte den könnte ich in tasmota einbinden - aber der ändert sich nicht - so richtig checken tue ich das teil nicht 🙂

                  1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @Ralla66 last edited by liv-in-sky

                    @ralla66 sagte in Tasmota Gitpod Sensor LD2410 BinFile:

                    Out mit ADC am ESP verbinden. Generic 18, A0 -> ADC Input

                    brauch ich da hardware dazu - oder kann ich das direkt anschliessen

                    habe es gefunden

                    1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @Ralla66 last edited by liv-in-sky

                      @ralla66

                      ahh - dieser A0 ist ein brauchbarer wert - was für eine schwere geburt - vielen dank (heißt nicht, dass nicht noch mehr fragen kommen könnten 🙂 )

                      Ralla66 1 Reply Last reply Reply Quote 0
                      • Ralla66
                        Ralla66 Most Active @liv-in-sky last edited by Ralla66

                        @liv-in-sky

                        prima soweit,
                        an Out des Sensors wird ja nur bei keine Bewegung erkannt kein Pegel ausgegeben
                        also 0 Volt.
                        Bei Bewegung erkannt gibt dieser Out Pin 3,3 oder 5 Volt aus.

                        Dann sollte das auch mit einem Button in Generic 18 gehen ( außer GPIO 0 und 2 ).
                        Der Taster im Schema ist ja dein Out.
                        Button beschaltung
                        Somit würdest du dann im Sonoff Adapter per Mqtt ein true oder false im Datenpunkt bekommen.

                        ADC gibt dir Werte aus, wobei 0 = 0 Volt sind und 1024 halt 3,3 Volt.
                        A0 genannt in der Tasmota Generic Config und einzelner besonderer Pin an einer
                        NodMCU.

                        1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky last edited by

                          hat schon jmd mit esphome getestet und evtl ein fertiges yaml ? ich bekomm da nicht wirklich was zum laufen

                          bei tasmota ist z.b das problem, daß ich -obwohl "serialsend 0" eingegeben wird, ich die app aufrufen muss, mich mit dem sensor verbinden muss (ich habe die bluetooth version), damit er dann auch in tasmota zu arbeiten beginnt.

                          ps. falls sich jmd den sensor bestellt, braucht man die bluetooth version, um über die app den sensor einstellen zu können - nimmt man nur den sensor - also ohne"B" braucht man auch ein entwicklerboard, um die einstellungen testen zu können - bei tasmota - ob esphome letztlich über mqtt einstellungen zuläßt, weiß ich nicht

                          BananaJoe 1 Reply Last reply Reply Quote 0
                          • BananaJoe
                            BananaJoe Most Active @liv-in-sky last edited by

                            @liv-in-sky es gibt ja auch die Bluetooth-Version von Tasmota ... um z.B. diese Thermometer etc. abzufragen:
                            https://tasmota.github.io/docs/Bluetooth_ESP32/#encryption-and-bind_key
                            und die Befehle dazu https://tasmota.github.io/docs/Commands/#neopool

                            So teuer sind die Sensoren ansonsten scheinbar nicht ...

                            liv-in-sky 1 Reply Last reply Reply Quote 0
                            • liv-in-sky
                              liv-in-sky @BananaJoe last edited by

                              @bananajoe

                              du meinst, den sensor über bluetooth abfragen (ohne app) - das geht leider nicht. die haben eine sehr kurze (4- 5m ) reichweite - dh ich müßte in jedem zimmer einen bluetooth empfänger haben, der die daten des sensors empfangen kann. wie diese empfänger dann eingerichtet werden müssen, damit sie den sensor verstehen, weiß ch nicht

                              ich habe auch so themometer , die über einen bluetooth empfänger (im stockwerk) abgefragt werden - da mußte ich aber einiges konfigurieren mit esphome

                              1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky last edited by liv-in-sky

                                bin wieder einen schritt weiter - nutze jetzt einen esp32, da startet der sensor sofort

                                @BananaJoe wenn ich in dem esp32 das bluetooth einschalte, werden mir sofort die thermometer aufgelistet - der radarsensor wird da nicht gezeigt - also über tasmota mit bt würde das nicht funktionieren

                                jetzt muss ich nur noch die sensibilität hinbekommen - langsam geht was 🙂

                                1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky last edited by liv-in-sky

                                  @Zarello
                                  @crunchip

                                  bin mit dem sensor ein schrittchen weiter: esphome mit esp32 - die presence (motion) wird jetzt angezeigt - auch nach einem neustart des sensors

                                  Image 010.png

                                  esphome ist jetzt nicht gerade mein favourite - aber hier mal die yaml, die ich nutze. was nicht so toll ist, ist die reaktionszeit. als presence melder brauchbar - als trigger beim raumbetreten weniger - es sei den, wir finden noch ein paar einstellungen.
                                  bei den yaml's müssen die gpio' eingestellt werden, je nach version des esp's (zeile 171 nicht vergessen).

                                  esphome:
                                   name: "ld2410m1"
                                   platform : esp32
                                   board: esp32dev
                                  
                                   
                                   includes:
                                     - uart_read_line_sensor_ld2410v3.h
                                   on_boot:
                                     priority: -100
                                     then:
                                       - script.execute: get_config
                                  
                                  # Enable logging
                                  logger:
                                   baud_rate: 0
                                   logs:
                                     sensor: INFO # DEBUG level with uart_target_output = overload!
                                     binary_sensor: INFO
                                     text_sensor: INFO
                                  
                                  # Enable Home Assistant API
                                  api:
                                  
                                  ota:
                                   
                                  
                                  wifi:
                                   ssid: "Dragonxxxxxx1"
                                   password: "xxxxxxxxxxxxxxxyy"
                                   use_address: 192.168.178.86
                                  
                                  
                                  
                                  substitutions:
                                   device_name: dev-sensor
                                  
                                  mqtt:
                                   broker: 192.168.178.59
                                   port: 1506
                                   topic_prefix: ld2410motion/motion1
                                   
                                   
                                  web_server:
                                   port: 80
                                   version: 2
                                   include_internal: true
                                   ota: false
                                  
                                  captive_portal:
                                  
                                  uart:
                                   id: uart_bus
                                   tx_pin:
                                     number: GPIO1
                                   rx_pin: 
                                     number: GPIO3
                                   baud_rate: 256000
                                   parity: NONE
                                   stop_bits: 1
                                  
                                  switch:
                                   - platform: safe_mode
                                     name: use_safe_mode
                                     
                                   - platform: template
                                     name: configmode
                                     id: configmode
                                     optimistic: true
                                     # assumed_state: false
                                     turn_on_action:
                                       # - switch.turn_off: engineering_mode
                                       - lambda: 'static_cast<LD2410 *>(ld2410)->setConfigMode(true);'
                                       - delay: 100ms
                                       - script.execute: clear_targets
                                     turn_off_action:
                                       - lambda: 'static_cast<LD2410 *>(ld2410)->setConfigMode(false);'
                                  
                                   - platform: template
                                     name: show_target_stats
                                     id: show_stats
                                     optimistic: true
                                     internal: true
                                     turn_off_action:
                                       - script.execute: clear_targets
                                  
                                  text_sensor:
                                   - platform: template
                                     name: uptime_human_readable
                                     id: uptime_human_readable
                                     icon: mdi:clock-start
                                     update_interval: 60s
                                  
                                  sensor:
                                   - platform: uptime
                                     name: uptime_sensor
                                     id: uptime_sensor
                                     update_interval: 60s
                                     internal: true
                                     on_raw_value:
                                       then:
                                         - text_sensor.template.publish:
                                             id: uptime_human_readable
                                             state: !lambda |-
                                                       int seconds = round(id(uptime_sensor).raw_state);
                                                       int days = seconds / (24 * 3600);
                                                       seconds = seconds % (24 * 3600);
                                                       int hours = seconds / 3600;
                                                       seconds = seconds % 3600;
                                                       int minutes = seconds /  60;
                                                       seconds = seconds % 60;
                                                       return (
                                                         (days ? to_string(days)+":" : "00:") +
                                                         (hours ? to_string(hours)+":" : "00:") +
                                                         (minutes ? to_string(minutes)+":" : "00:") +
                                                         (to_string(seconds))
                                                       ).c_str();
                                  
                                   - platform: custom # currently crashes ESP32
                                     lambda: |-
                                       auto uart_component = static_cast<LD2410 *>(ld2410);
                                       //return {uart_component->movingTargetDistance,uart_component->movingTargetEnergy,uart_component->stillTargetDistance,uart_component->stillTargetEnergy,uart_component->detectDistance};
                                       return {};
                                     sensors:
                                     
                                   - platform: template
                                     name: movingTargetDistance
                                     id: movingTargetDistance
                                     unit_of_measurement: "cm"
                                     accuracy_decimals: 0
                                     internal: true
                                     
                                   - platform: template
                                     name: movingTargetEnergy
                                     id: movingTargetEnergy
                                     unit_of_measurement: "%"
                                     accuracy_decimals: 0
                                     internal: true
                                     
                                   - platform: template
                                     name: stillTargetDistance
                                     id: stillTargetDistance
                                     unit_of_measurement: "cm"
                                     accuracy_decimals: 0
                                     internal: true
                                     
                                   - platform: template
                                     name: stillTargetEnergy
                                     id: stillTargetEnergy
                                     unit_of_measurement: "%"
                                     accuracy_decimals: 0
                                     internal: true
                                     
                                   - platform: template
                                     name: detectDistance
                                     id: detectDistance
                                     unit_of_measurement: "cm"
                                     accuracy_decimals: 0
                                     internal: true
                                     
                                  custom_component:
                                   - lambda: |-
                                       return {new LD2410(id(uart_bus))};
                                     components:
                                       - id: ld2410
                                       
                                  binary_sensor:
                                   - platform: gpio
                                     name: mmwave_presence_ld2410
                                     id: mmwave_presence_ld2410
                                     pin: GPIO36
                                     device_class: motion
                                     on_state:
                                       then:
                                         - if: 
                                             condition: 
                                               - binary_sensor.is_off: mmwave_presence_ld2410
                                             then: 
                                               - delay: 150ms
                                               - script.execute: clear_targets
                                  
                                  number:  
                                   - platform: template
                                     name: configMaxDistance
                                     id: maxconfigDistance
                                     unit_of_measurement: "M"
                                     min_value: 0.75
                                     max_value: 6
                                     step: 0.75
                                     update_interval: never
                                     optimistic: true
                                     set_action:
                                       - switch.turn_on: configmode
                                       - delay: 50ms
                                       - lambda: |-
                                           auto uart_component = static_cast<LD2410 *>(ld2410);
                                           uart_component->setMaxDistancesAndNoneDuration(x/0.75,x/0.75,id(noneDuration).state);
                                       - delay: 50ms
                                       - lambda: 'static_cast<LD2410 *>(ld2410)->queryParameters();'
                                       - delay: 50ms
                                       - switch.turn_off: configmode
                                  
                                   - platform: template
                                     name: "sensitivity_threshold_(%)"
                                     id: allSensitivity
                                     min_value: 10
                                     max_value: 100
                                     step: 5
                                     mode: box
                                     update_interval: never
                                     optimistic: true
                                     set_action:
                                       - switch.turn_on: configmode
                                       - delay: 50ms
                                       - lambda: |-
                                           auto uart_component = static_cast<LD2410 *>(ld2410);
                                           uart_component->setAllSensitivity(x);
                                       - delay: 50ms
                                       - lambda: 'static_cast<LD2410 *>(ld2410)->queryParameters();'
                                       - delay: 50ms
                                       - switch.turn_off: configmode
                                       
                                   - platform: template
                                     name: "motion_hold_(sec)"
                                     id: noneDuration
                                     min_value: 0
                                     # max_value: 32767
                                     max_value: 900
                                     step: 1
                                     mode: box
                                     update_interval: never
                                     optimistic: true
                                     set_action:
                                       - switch.turn_on: configmode
                                       - delay: 50ms
                                       - lambda: |-
                                           auto uart_component = static_cast<LD2410 *>(ld2410);
                                           uart_component->setMaxDistancesAndNoneDuration(id(maxconfigDistance).state, id(maxconfigDistance).state, x);
                                       - delay: 50ms
                                       - lambda: 'static_cast<LD2410 *>(ld2410)->queryParameters();'
                                       - delay: 50ms
                                       - switch.turn_off: configmode
                                  button:
                                   - platform: restart
                                     name: "reset/restart_ESP/MCU"
                                     entity_category: diagnostic
                                     on_press:
                                       - switch.turn_on: configmode
                                       - delay: 50ms
                                       - lambda: 'static_cast<LD2410 *>(ld2410)->factoryReset();'
                                       - delay: 150ms
                                       - lambda: 'static_cast<LD2410 *>(ld2410)->reboot();'
                                       - delay: 150ms
                                  
                                  script:
                                   - id: get_config
                                     then:
                                       - switch.turn_on: configmode
                                       - delay: 500ms
                                       - lambda: 'static_cast<LD2410 *>(ld2410)->queryParameters();'
                                       - delay: 500ms
                                       - switch.turn_off: configmode
                                       
                                   - id: clear_targets
                                     then:
                                       - lambda: |-
                                           //id(hasTarget).publish_state(0);
                                           //id(hasMovingTarget).publish_state(0);
                                           //id(hasStillTarget).publish_state(0);
                                           id(movingTargetDistance).publish_state(0);
                                           id(movingTargetEnergy).publish_state(0);
                                           id(stillTargetDistance).publish_state(0);
                                           id(stillTargetEnergy).publish_state(0);
                                           id(detectDistance).publish_state(0);
                                  

                                  und die def datei:

                                  uart_read_line_sensor_ld2410v3.h

                                  PS: dummerweise kommt es immer wieder zu kurzen fehlmedlungen bei dem presence dp

                                  1 Reply Last reply Reply Quote 1
                                  • liv-in-sky
                                    liv-in-sky last edited by liv-in-sky

                                    muss noch ein paar infos geben:

                                    • man bekommt daten über mqtt, aber man keine settings ausführen - ich weiß nicht, wie man das ins yaml einfügen kann 😞
                                    • um den sensor "grob" zu setzen, geht man über die api mit dem browser
                                    <ip-adresse>:80
                                    

                                    Image 012.png

                                    von hier: https://community.home-assistant.io/t/mmwave-wars-one-sensor-module-to-rule-them-all/453260

                                    Zarello 1 Reply Last reply Reply Quote 0
                                    • Zarello
                                      Zarello @liv-in-sky last edited by

                                      @liv-in-sky Ich habe die Zeit gefunden und etwas ein wenig was hinbekommen:
                                      LD2410-ESP8266-Breadboard.jpg

                                      Ich hatte am Anfang etwas Murks mit RX und TX gebaut, aber jetzt funktioniert's.
                                      In ESP-Home habe ich erstmal den vorhandenen Sensor verwendet:

                                      uart:
                                        id: uart1
                                        tx_pin: TX
                                        rx_pin: RX
                                        baud_rate: 256000
                                        parity: NONE
                                        stop_bits: 1
                                      
                                      ld2410:
                                        timeout: 150s
                                        max_move_distance : 6m
                                        max_still_distance: 6m
                                        g0_move_threshold: 50
                                        g0_still_threshold: 50
                                        g1_move_threshold: 50
                                        g1_still_threshold: 50
                                        g2_move_threshold: 50
                                        g2_still_threshold: 51
                                        g3_move_threshold: 50
                                        g3_still_threshold: 51
                                        g4_move_threshold: 50
                                        g4_still_threshold: 51
                                        g5_move_threshold: 50
                                        g5_still_threshold: 51
                                        g6_move_threshold: 40
                                        g6_still_threshold: 41
                                        g7_move_threshold: 40
                                        g7_still_threshold: 41
                                        g8_move_threshold: 40
                                        g8_still_threshold: 41
                                      
                                      sensor:
                                        - platform: ld2410
                                          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
                                      
                                      binary_sensor:
                                        - platform: ld2410
                                          has_target:
                                            name: Presence
                                          has_moving_target:
                                            name: Moving Target
                                          has_still_target:
                                            name: Still Target
                                      


                                      Das funktioniert soweit erstmal (zum Teil). Was nicht funktioniert sind die Werte für "Still Target" und "Presence". Diese sind bei mir immer ON.
                                      Außerdem ist es natürlich schade, dass man die Schwellwerte so im YAML angibt, dass soll natürlich über die Schnittstelle vom ioBroker eingestellt werden können.

                                      d42820f5-96ee-4c15-bf3f-66fa33e672b2-grafik.png

                                      Als nächstes werde ich mal Dein YAML ausprobieren.

                                      liv-in-sky 1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @Zarello last edited by liv-in-sky

                                        @zarello sagte in Tasmota Gitpod Sensor LD2410 BinFile:

                                        Als nächstes werde ich mal Dein YAML ausprobieren.

                                        ja - probier's mal - das läuft eigentlich ganz stabil bis jetzt - vielleicht kannst du das dann so umändern, das es über mqtt steuerbar ist

                                        1 Reply Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky last edited by liv-in-sky

                                          hier noch ein yaml für einen wemos D1 mini mit esphome - zeile 53 ff und 172 sind die pins definiert

                                          • die pins zum anschliessen sind im yaml zu lesen
                                          • die zusatzdatei https://forum.iobroker.net/post/957138 muss auch im system sein

                                          esphome:
                                           name: ld2410m3d1
                                           includes:
                                             - uart_read_line_sensor_ld2410v3.h
                                           on_boot:
                                              priority: -100
                                              then:
                                               - script.execute: get_config
                                          
                                          
                                          esp8266:
                                               board: esp01_1m
                                          
                                          
                                          # Enable logging
                                          logger:
                                           baud_rate: 0
                                           logs:
                                             sensor: INFO # DEBUG level with uart_target_output = overload!
                                             binary_sensor: INFO
                                             text_sensor: INFO
                                          
                                          # Enable Home Assistant API
                                          api:
                                          
                                          ota:
                                           
                                          
                                          wifi:
                                           ssid: "yyyyyyyyy1"
                                           password: "xxxxxxxxxxxxxx2"
                                           use_address: 192.168.178.67
                                          
                                          
                                          
                                          substitutions:
                                           device_name: dev-sensor
                                          
                                          mqtt:
                                           broker: 192.168.178.59
                                           port: 1506
                                           topic_prefix: ld2410motion/motion3
                                           
                                           
                                          web_server:
                                           port: 80
                                           version: 2
                                           include_internal: true
                                           ota: false
                                          
                                          captive_portal:
                                          
                                          uart:
                                           id: uart_bus
                                           tx_pin:
                                             number: GPIO1
                                           rx_pin: 
                                             number: GPIO3
                                           baud_rate: 256000
                                           parity: NONE
                                           stop_bits: 1
                                          
                                          switch:
                                           - platform: safe_mode
                                             name: use_safe_mode
                                             
                                           - platform: template
                                             name: configmode
                                             id: configmode
                                             optimistic: true
                                             # assumed_state: false
                                             turn_on_action:
                                               # - switch.turn_off: engineering_mode
                                               - lambda: 'static_cast<LD2410 *>(ld2410)->setConfigMode(true);'
                                               - delay: 100ms
                                               - script.execute: clear_targets
                                             turn_off_action:
                                               - lambda: 'static_cast<LD2410 *>(ld2410)->setConfigMode(false);'
                                          
                                           - platform: template
                                             name: show_target_stats
                                             id: show_stats
                                             optimistic: true
                                             internal: true
                                             turn_off_action:
                                               - script.execute: clear_targets
                                          
                                          text_sensor:
                                           - platform: template
                                             name: uptime_human_readable
                                             id: uptime_human_readable
                                             icon: mdi:clock-start
                                             update_interval: 60s
                                          
                                          sensor:
                                           - platform: uptime
                                             name: uptime_sensor
                                             id: uptime_sensor
                                             update_interval: 60s
                                             internal: true
                                             on_raw_value:
                                               then:
                                                 - text_sensor.template.publish:
                                                     id: uptime_human_readable
                                                     state: !lambda |-
                                                               int seconds = round(id(uptime_sensor).raw_state);
                                                               int days = seconds / (24 * 3600);
                                                               seconds = seconds % (24 * 3600);
                                                               int hours = seconds / 3600;
                                                               seconds = seconds % 3600;
                                                               int minutes = seconds /  60;
                                                               seconds = seconds % 60;
                                                               return (
                                                                 (days ? to_string(days)+":" : "00:") +
                                                                 (hours ? to_string(hours)+":" : "00:") +
                                                                 (minutes ? to_string(minutes)+":" : "00:") +
                                                                 (to_string(seconds))
                                                               ).c_str();
                                          
                                           - platform: custom # currently crashes ESP32
                                             lambda: |-
                                               auto uart_component = static_cast<LD2410 *>(ld2410);
                                               //return {uart_component->movingTargetDistance,uart_component->movingTargetEnergy,uart_component->stillTargetDistance,uart_component->stillTargetEnergy,uart_component->detectDistance};
                                               return {};
                                             sensors:
                                             
                                           - platform: template
                                             name: movingTargetDistance
                                             id: movingTargetDistance
                                             unit_of_measurement: "cm"
                                             accuracy_decimals: 0
                                             internal: true
                                             
                                           - platform: template
                                             name: movingTargetEnergy
                                             id: movingTargetEnergy
                                             unit_of_measurement: "%"
                                             accuracy_decimals: 0
                                             internal: true
                                             
                                           - platform: template
                                             name: stillTargetDistance
                                             id: stillTargetDistance
                                             unit_of_measurement: "cm"
                                             accuracy_decimals: 0
                                             internal: true
                                             
                                           - platform: template
                                             name: stillTargetEnergy
                                             id: stillTargetEnergy
                                             unit_of_measurement: "%"
                                             accuracy_decimals: 0
                                             internal: true
                                             
                                           - platform: template
                                             name: detectDistance
                                             id: detectDistance
                                             unit_of_measurement: "cm"
                                             accuracy_decimals: 0
                                             internal: true
                                             
                                          custom_component:
                                           - lambda: |-
                                               return {new LD2410(id(uart_bus))};
                                             components:
                                               - id: ld2410
                                               
                                          binary_sensor:
                                           - platform: gpio
                                             name: mmwave_presence_ld2410
                                             id: mmwave_presence_ld2410
                                             pin: GPIO5
                                             device_class: motion
                                             on_state:
                                               then:
                                                 - if: 
                                                     condition: 
                                                       - binary_sensor.is_off: mmwave_presence_ld2410
                                                     then: 
                                                       - delay: 150ms
                                                       - script.execute: clear_targets
                                          
                                          number:  
                                           - platform: template
                                             name: configMaxDistance
                                             id: maxconfigDistance
                                             unit_of_measurement: "M"
                                             min_value: 0.75
                                             max_value: 6
                                             step: 0.75
                                             update_interval: never
                                             optimistic: true
                                             set_action:
                                               - switch.turn_on: configmode
                                               - delay: 50ms
                                               - lambda: |-
                                                   auto uart_component = static_cast<LD2410 *>(ld2410);
                                                   uart_component->setMaxDistancesAndNoneDuration(x/0.75,x/0.75,id(noneDuration).state);
                                               - delay: 50ms
                                               - lambda: 'static_cast<LD2410 *>(ld2410)->queryParameters();'
                                               - delay: 50ms
                                               - switch.turn_off: configmode
                                          
                                           - platform: template
                                             name: "sensitivity_threshold_(%)"
                                             id: allSensitivity
                                             min_value: 10
                                             max_value: 100
                                             step: 5
                                             mode: box
                                             update_interval: never
                                             optimistic: true
                                             set_action:
                                               - switch.turn_on: configmode
                                               - delay: 50ms
                                               - lambda: |-
                                                   auto uart_component = static_cast<LD2410 *>(ld2410);
                                                   uart_component->setAllSensitivity(x);
                                               - delay: 50ms
                                               - lambda: 'static_cast<LD2410 *>(ld2410)->queryParameters();'
                                               - delay: 50ms
                                               - switch.turn_off: configmode
                                               
                                           - platform: template
                                             name: "motion_hold_(sec)"
                                             id: noneDuration
                                             min_value: 0
                                             # max_value: 32767
                                             max_value: 900
                                             step: 1
                                             mode: box
                                             update_interval: never
                                             optimistic: true
                                             set_action:
                                               - switch.turn_on: configmode
                                               - delay: 50ms
                                               - lambda: |-
                                                   auto uart_component = static_cast<LD2410 *>(ld2410);
                                                   uart_component->setMaxDistancesAndNoneDuration(id(maxconfigDistance).state, id(maxconfigDistance).state, x);
                                               - delay: 50ms
                                               - lambda: 'static_cast<LD2410 *>(ld2410)->queryParameters();'
                                               - delay: 50ms
                                               - switch.turn_off: configmode
                                          button:
                                           - platform: restart
                                             name: "reset/restart_ESP/MCU"
                                             entity_category: diagnostic
                                             on_press:
                                               - switch.turn_on: configmode
                                               - delay: 50ms
                                               - lambda: 'static_cast<LD2410 *>(ld2410)->factoryReset();'
                                               - delay: 150ms
                                               - lambda: 'static_cast<LD2410 *>(ld2410)->reboot();'
                                               - delay: 150ms
                                          
                                          script:
                                           - id: get_config
                                             then:
                                               - switch.turn_on: configmode
                                               - delay: 500ms
                                               - lambda: 'static_cast<LD2410 *>(ld2410)->queryParameters();'
                                               - delay: 500ms
                                               - switch.turn_off: configmode
                                               
                                           - id: clear_targets
                                             then:
                                               - lambda: |-
                                                   //id(hasTarget).publish_state(0);
                                                   //id(hasMovingTarget).publish_state(0);
                                                   //id(hasStillTarget).publish_state(0);
                                                   id(movingTargetDistance).publish_state(0);
                                                   id(movingTargetEnergy).publish_state(0);
                                                   id(stillTargetDistance).publish_state(0);
                                                   id(stillTargetEnergy).publish_state(0);
                                                   id(detectDistance).publish_state(0);
                                          

                                          ich bin kein profi mit esphome - vielleicht habe ich das ganze etwas umständlich gemacht. hier eine kurze beschreibung:

                                          • vorbereitendes yamls: name ändern, unter mqtt die richtigen daten eingeben

                                          • die stromversorgung für den sensor nicht durch den esp nehmen, sondern den esp 5V und den sensor vcc parallel an der stromversorgung anschliessen - also nicht über den mini usb port anschliessen (nur zum flashen) -

                                          • genutzt wird der esphome adapter

                                          • die zusatzdatei uart_read_line_sensor_ld2410v3.h ins system kopieren: /opt/iobroker/iobroker-data/esphome.0

                                          • dann ein standard esphome yaml für den esp erstellt unter: https://web.esphome.io/ und die wifi angaben machen - der esp wird dazu am usb port des pc's angeschlossen (die serielle-verbindung zwischen sensor und esp erst anschliessen, wenn das erste flashen vorbei ist - wenn noch am pc angeschlossen)

                                          • die ip adresse habe ich dann im yaml eingetragen - unter wifi - use address

                                          • der esp mit esphome wird anschliessend im adapter dashboard sichtbar - dann adapt drücken

                                          • im esphome-dashboard auf edit drücken und das yaml hineinkopieren - sichern - installieren - der esp wird über wifi neu geflasht

                                          war das erfolgreich müßte unter der ip adresse des esp eine webseite aufgehen, in der man das ganze konfigurieren kann

                                          Image 014.png

                                          dann testen, ob der esp richtige daten im mqtt ordner bringt

                                          S 1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky last edited by

                                            also ich muss sagen, der sensor gefällt mir

                                            habe einen raum sensorisch in 3 teile aufgeteilt - funktioniert gut

                                            • man kann sozusagen licht steuern, wenn die anwesenheit einer person in einer ecke ist
                                            • ist jmd in der dusche
                                            • das licht in einem langen flur oder einer treppe steuern
                                            • geht man zum fenster, wird außenlicht eingeschaltet

                                            wer noch ideen hat - bitte her damit

                                            Zarello RoboCop 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            512
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            17
                                            187
                                            27940
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo