ZigBee Radar Raum Tracking Bewegungsmelder ESP32-C6 HLK-LD2450

  • Alpha Phase
    Erwerb Juni



    ESP32-C6


    Radarsensor mit bis zu 3 Ziele Erkennung gleichzeitig


    Unbegrenzte Anzahl von Zonenerkennung über Javascript mit html integration

    Helligkeitsanzeige in Lux
    Optionaler Anschlussmöglichkeit für Temperatur und Druck Anzeige.


    Bausatz für Bastler (ESP32-C6)

    Elektronik-Bausatz mit 3m USB Kabel u. optionalem Gehäuse.

    Auf Wunsch löte ich ihn privat fertig zusammen.

    Platine ist Beigabe (ohne CE, keine Gewährleistung).

    ➡️ -->Kauflink für ca. 29,99€ Beginn Juni<---


        



        





    Aktuelles Projekt :

    Ein auf dem ESP32-C6 basierendes Zigbee-Gerät mit angeschlossenem HLK-LD2450 3D-Radarsensor zur personenbasierten Präsenz- und Bewegungsanalyse – ideal für Smart Home Automation auf Raumebene.

    Funktionen & Features:

    • Direkte Zigbee-Integration via eigener Firmware (ESP32-C6 + LD2450 per UART)

    • 3 gleichzeitige Personen erkennbar mit Positionsdaten (X/Y), Abstand und Bewegungsrichtung

    • Zigbee-Datenpunkte: distance, x, y, velocity, valid, target_id, resolution – für alle Slots

    • Volle VIS-Unterstützung (ioBroker) mit HTML-Raumansicht:

      • Echtzeit-Visualisierung der Person(en) im Raum

      • Automatische Rotation des Koordinatensystems je nach Sensorlage

      • Grafische Darstellung inkl. Zonenlogik, z. B. zur Licht- oder Heizungssteuerung

    Besonderheiten:

    • Ideal für Multiraum-Setups: Jeder Raum mit einem Sensor möglich

    • Extrem geringe Latenz, keine Cloud nötig, läuft komplett lokal

    • Reduziert Fehlauslösungen gegenüber PIR oder mmWave deutlich

    • Perfekt erweiterbar mit ioBroker-Logik oder Blockly-Automationen

    • Anschluss eines LDR5528 (Lichtsensor) an PIN0. Dadurch Helligkeitsanzeige in Lux

    • Otional an PIN 21,22 Anschlussmöglichkeit eines BMP280


    Zusammenbau:


     

    Der ESP32C6 wird unterhalb der Platine als erstes verlötet.(linkes Bild)

    Oberhalb der Platine werden die Bauteile so verlötet, das nichts direkt neben oder über dem Radarsensors sich was befindet(linkes Bild).

    Das würde den Sensor stören, da Radarwellen nicht Metall durchdringen kann.


    LDR_PIN(Lichtsensor) an ESP -> 3,3V und ESP -> 0

    10kOhm_Widerstand an ESP -> 0 und ESP -> GND

    Optional(BMP280 3,3V muss selber gekauft werden):

    BMP_SDA_PIN an ESP -> 21

    BMP_SCL_PIN an ESP -> 22

    BMP_VCC an ESP -> 3,3V

    BMP_GND an ESP -> GND


    Verwendete Komponenten:



    Anleitung:

    1.

    Javascript Adapter:

    Kommando "exec" erlauben ein Häkchen setzen in der Adaptereinstellung

    including.js erstellen durch javascript:

    Das script erstellen und starten.

    Dadurch wird in /opt/iobroker/iobroker-data/zigbee_0/ eine including.js Datei erstellt, was benötigt wird, das der Adapter das Gerät findet.

    Falls nötig und der Adapter nicht standardmäßig installiert wurde ganz unten den Pfad anpassen:

    fs.writeFile('/opt/iobroker/iobroker-data/zigbee_0/including.js', inhalt, (err) => {



    2.

    Im Zigbee Adapter including.js eintippen und den Adapter neu starten.


    3.

    Im Zigbee Adapter das Gerät anlernen.

    Danach am Gerät im Zigbee Adapter auf den Namen klicken und dann auf den "reconfigure" Button.

    Dadurch werden die Werte dauerhaft übermittelt.



    4.

    Für jeden Bewegungsmelder dieses Javasricpt erstellen im Javascript Adapter.

    Im Script die Zonen u.s.w. einrichten und das script starten.

    Dadurch werden Datenpunkte erstellt im Javascript Adapter selber.


    5.

    Alle Datenpunkte, die erstellt wurden durch das Javascipt, mit den richtigen Daten bearbeiten/füllen.

    Wie man das macht, steht am Anfang von Javascript.


    6.

    VIS html Widget Code erstellen und Datenpunktverknüpfung javascript.0.arbeitszimmer.widgetHtml anpassen:

    1= HTML Widget

    2= Hier den Quellcode reinkopieren

    3= Raumbreite 1 px = 1cm

    4= Raumlänge 1 px = 1 cm

    Code
    1. <!-- Text‑HTML Widget
    2. Datenpunkt eintragen: javascript.0.wohnzimmer.widgetHtml
    3. Checkbox „Interpret HTML“ aktiv (noEscape = false) -->
    4. {javascript.0.arbeitszimmer.widgetHtml}


    7. Fertig


          

  • Firmware für den ESP32C6

    ACHTUNG:

    Funktioniert nur mit meinen bearbeiteten ESP32C6 Modulen


    Firmware Upgrade: upgradeV1.0.0.zip

    Runterladen und entpacken.

    Dabei Antivirenprogramm und/oder Sicherheitshinweise zulassen von Windows.

    Mit dem USB Kabel den ESP verbinden.

    Die exe Date ausführen und flashen.

    In der exe ist auch ein Serial Monitor verbaut.

    So kann man sehen, was das Gerät macht.


    Die Firmware kann man nur mit den von mir bearbeiteten ESP32C6 Module nutzen.

    Eigene funktionieren nicht.


    Versionshistorie:

    13.06.2025: Version 1.0.0.

  • zigbee2mqtt

    data/external_converters/ld2450.mjs


  • Komplett-How-to: LD2450-Radar in Home Assistant + Zigbee2MQTT

    (inkl. Schritt-für-Schritt-Erklärung & fertigen Copy-&-Paste-Blöcken)

    Ziel:
    • Rohdaten des LD2450 (3 Radar-Slots + Lux/°C/hPa) über Zigbee2MQTT einlesen.
    • In Home Assistant Kalibrier-Slider, Zonen-Sensoren & Live-Visualisierung bereitstellen.
    • Auf Wunsch per Automation Geräte schalten („Lampe an, wenn Schreibtisch belegt“).

    1 Zigbee2MQTT vorbereiten

    1. Datei anlegen:

      ld2450.mjs in data/external_converters/ (Add-on: /config/zigbee2mqtt/external_converters/).

      Inhalt → siehe Codeblock A.

    2. configuration.yaml ergänzen (Codeblock B) → speichern.

    3. Zigbee2MQTT neu starten, LD2450 frisch pairen.

      → Du solltest im Frontend schon slot1_x, illuminance_lux etc. sehen.

    Codeblock A – ld2450.mjs

    Codeblock B – configuration.yaml (Z2M)

    Code
    1. external_converters:
    2. - ld2450.mjs

    2 Home Assistant: Helfer & Templates

    Die folgenden Blöcke kopierst du nacheinander in deine configuration.yaml.

    Nach jedem Abschnitt kannst du Home Assistant neu starten (oder alle drei Blöcke einfügen und einmal neustarten).

    2.1 Kalibrier-Slider (Input-Numbers) – Codeblock C

    2.2 Template-Sensoren – Codeblock D

    (Slot 1 komplett; für Slot 2 & 3 einfach kopieren und „1“ → „2“ oder „3“ ersetzen.)

    2.3 Zonen als Binary-Sensoren – Codeblock E

    Nach dem Neustart findest du fünf Slider, 18 Koordinaten-Sensoren und drei Binary-Sensoren.

    Die Binary-Sensoren kannst du direkt in Automationen verwenden („Wenn … AN → Lampe einschalten“).

    3 Live-Anzeige als Lovelace-Karte

    1. HACS → Frontend: „HTML Card“ oder „HTML Jinja2 Template Card“ installieren.

    2. In deinem Dashboard „Karte hinzufügen → Roh-YAML“ und Codeblock F einfügen.

    3. Speichern – fertig.

    Codeblock F – Karten-YAML

    4 Beispiel-Automation

    Fertig!

    • Converter liefert Rohdaten → Zigbee2MQTT → Home Assistant.

    • Slider justieren Raumgrößen und Sensor-Position live.

    • Zonen-Binary-Sensoren steuern deine Geräte.

    • HTML-Karte visualisiert alles in Echtzeit.

    Viel Erfolg & happy automating! 🚀