Beiträge von Erforscht

    💡 Warum diese Platine mehrere LED-Streifen mit unterschiedlichen Spannungen gleichzeitig steuern kann

    Diese Platine wurde absichtlich so entwickelt, dass man daran LED-Streifen mit völlig unterschiedlichen Betriebsspannungen gleichzeitig benutzen kann.

    Das funktioniert, weil die Platinen-Ausgänge DATA1, DATA2 und DATA3 nur die Datensignale liefern,

    aber keinen gemeinsamen Plus-Anschluss (VCC) haben.

    👉 Die Plus-Pins bei DATA1 und DATA2 sind absichtlich nicht verbunden.

    👉 Dadurch kann man verschiedene Spannungen anschließen, ohne dass sie sich gegenseitig zerstören.

    Wie die Technik dahinter funktioniert

    Für LED-Streifen ist nur eines wichtig:

    ✔ Plus (+) kommt IMMER direkt vom jeweiligen Netzteil

    – unabhängig davon, ob es 5 V, 12 V oder 24 V sind.

    ✔ Minus (GND) muss zwischen LED-Streifen, Netzteil und Platine verbunden sein

    – dadurch funktionieren die Datensignale korrekt.

    ✔ Das Datensignal kommt von DATA1 / DATA2 / DATA3

    – die Platine liefert nur Daten, nicht die LED-Leistung.

    Weil die Platine keinen Plus durchschleift, können sich verschiedene Spannungen auch nicht gegenseitig berühren.

    Das macht das Ganze absolut sicher.

    🔥 Warum das so sicher ist

    Wenn Plusleitungen verbunden wären, würde z. B. eine 12-V-Versorgung sofort einen 5-V-Streifen zerstören.

    Damit das nicht passieren kann:

    ❗ DATA1 und DATA2 haben keinen Plus

    → Sie sind stromlos, nur DATA + GND aktiv.

    → Keine Vermischung der Spannungsebenen möglich.

    ❗ DATA3 ist ebenfalls getrennt

    → eigener DATA-Kanal, eigene Stromversorgung.

    🧠 Kurz gesagt:

    • die Platine liefert nur Datensignale

    • alle LED-Streifen bekommen ihre eigene Spannung direkt vom Netzteil

    • Minus (GND) wird gemeinsam genutzt

    • dadurch können 5 V, 12 V und 24 V gleichzeitig betrieben werden

    • ohne Risiko, ohne Kurzschluss, ohne Überlast

    👉 Genau das war der Entwicklungszweck dieser Platine.

    Wichtige Hinweise zur Stromversorgung (links)

    Auf der linken Schraubklemme gibt es drei Pins (von oben nach unten):

    1. CC (oben)

    2. GND (Mitte)

    3. 5V (unten)

    Wenn man die Platine von unten anschaut, sieht man die Beschriftung.

    🔋 1. CC (oben) – Eingang für Spannungen über 5 V

    Hier wird alles zwischen 6 V und 30 V angeschlossen:

    • 6 V

    • 9 V

    • 12 V

    • 24 V

    • usw.

    👉 Dieser Eingang geht direkt auf den Step-Down-Regler

    👉 Der Regler erzeugt daraus interne stabile 5 V

    Wichtig:

    Der Step-Down kann nicht aus 5 V wieder 5 V machen.

    Darum darf 5 V niemals auf CC angeschlossen werden.

    🔋 2. GND (Mitte) – gemeinsamer Minuspol

    • Ist überall auf der Platine verbunden

    • Muss immer mit dem Minuspol des Netzteils verbunden werden

    • Wird auch für alle Datenleitungen geteilt (ESP, LED-Streifen usw.)

    🔌 3. 5V (unten) – externer 5-Volt-Eingang

    Dieser Anschluss ist nur dafür da, wenn man:

    • ein reines 5-Volt-Netzteil benutzt

    • keine höhere Spannung (12 V, 24 V …) verfügbar ist

    • und man möchte die Platine trotzdem betreiben

    Wichtig:

    • Dieser Pin ist kein Ausgang, sondern ein Eingang

    • Hier wird NICHT die Last angeschlossen

    • Hier kommt nur die Versorgung für die Elektronik rein

    • Der Step-Down ist dann wirkungslos (weil 5 V rein = 5 V raus)

    Ganz wichtig: 5 V am unteren Pin sind NICHT für LED-Streifen gedacht

    Wenn man oben z. B. 12 V einspeist, erzeugt der Step-Down unten 5 V

    aber:

    👉 Diese 5 V sind nur für ESP32, Mikrofon und Logik

    👉 Nicht für LED-Bänder!

    👉 Nicht belastbar genug

    👉 LED-Streifen können mehrere Ampere ziehen

    Daher:

    • Niemals LED-Streifen an den 5V-Pin der Platine anschließen.

    • LED-Streifen immer direkt am Netzteil anschließen (5 V / 12 V / 24 V je nach Typ).

    🎛 Anschlüsse rechts: DATA1 / DATA2 / DATA3

    Jeder Datenanschluss hat drei Pins (von oben nach unten):

    1. GND

    2. DATA

    3. VCC

    Aber:

    DATA1 und DATA2

    • VCC ist nicht verbunden (absichtlich tot)

    • Nur GND und DATA sind aktiv

    • VCC dient nur als „Durchschleifpunkt“ für Kabel, aber führt keinen Strom

    Warum „tote Pins“?

    👉 damit keine hohe LED-Last über die Platine läuft

    👉 alle LED-Streifen werden extern versorgt

    DATA3 (unten)

    • Hier ist RGB / WLED vorgesehen

    • DATA3 ist das echte Pixel-Signal

    • VCC bleibt trotzdem ungenutzt (Last gehört NICHT auf die Platine)

    💡 Wie LED-Streifen korrekt angeschlossen werden

    LED-Streifen werden immer direkt über ihr eigenes Netzteil versorgt.

    Am DATA-Anschluss der Platine hängen gleichzeitig:

    • der LED-Streifen

    • und das passende Netzteil

    Die Platine liefert nur das DATA-Signal, keinen Plus.

    Darum können an DATA1, DATA2 und DATA3 auch verschiedene Spannungen gleichzeitig (z. B. 5 V, 12 V, 24 V) betrieben werden.

    🔌 DATA1 – Beispiel 5-Volt-Streifen (z. B. WS2812B)

    Am DATA1-Anschluss liegen also gleichzeitig LED-Streifen + Trafo:

    • VCC:

      • +5 V vom Trafo → VCC

      • +5 V vom LED-Streifen → ebenfalls an VCC

    • GND:

      • GND vom Trafo → GND

      • GND vom LED-Streifen → GND

    • DATA:

      • DATA vom LED-Streifen → DATA1

    Zusätzlich (meine Methode):

    • VCC von DATA1 → 5 V am linken Power-Eingang

    • GND von DATA1 → GND am linken Power-Eingang

    ➡ Damit bekommt die ganze Platine stabil 5 V.

    ➡ VCC ist sicher, weil DATA1 intern keinen Plus durchschleift.

    🔌 DATA2 – Beispiel 12-Volt-Streifen gleichzeitig

    Auch hier hängen LED-Streifen + Trafo gleichzeitig am DATA2-Anschluss:

    • VCC:

      • +12 V vom Trafo → VCC

      • +12 V vom LED-Streifen → ebenfalls an VCC

    • GND:

      • GND vom Trafo → GND

      • GND vom LED-Streifen → GND

    • DATA:

      • DATA vom LED-Streifen → DATA2

    Optional (aber ich mache es so):

    • GND von DATA2 → zusätzlich an GND vom Power-Eingang

    ➡ Muss nicht sein, denn GND ist intern überall verbunden,

    ➡ Aber es verteilt die Masse sauberer.

    🔌 DATA3 – RGB / RGBW / CCT / 24-V-LEDs

    Hier genauso:

    • +V vom passenden Trafo → +V LED-Streifen

    • GND vom passenden Trafo → zusätzlich an GND vom Power-Eingang

    • LED-Streifen R → Data3 R

    • LED-Streifen G → Data3 G
    • LED-Streifen B → Data3 B

    ➡ DATA3 unterstützt alles, was WLED kann.

    🟢 Ganz kurz zusammengefasst für Anwender

    • CC oben = 6–30 V Eingang

    • GND = Minus MUSS immer mit allen GND die es gibt, verbunden sein. Also Trafos u.s.w. Sternenpunkt. Alles Zusammen.

    • 5V unten = 5-Volt-Eingang (nur wenn man ein reines 5V-Netzteil hat)

    • Nie LED-Streifen über die Platine mit Strom versorgen

    • LED-Streifen immer direkt am Netzteil betreiben

    • DATA1/2 VCC sind absichtlich tot

    • DATA3 ist für adres­sierbare RGB-LEDs (z. B. CCT, RGB, Dimmbare LED u.s.w.)

    📘 Kurzanleitung – Bestückung der Platine (DIY-Lötset)

           

    (ESP32 + Mikrofon jeweils mit Stiftleisten, Step-Down ohne Pins)

    Alles bündig an Platine löten. Sonst passt es nicht in die Box.

    🛠️ 1. Widerstände einlöten (R1–R8)

    Alle Widerstände sind ungepolt.

    ✔ Diese drei zuerst (sie sitzen unter dem ESP32):

    • R6 – 10 kΩ

    • R7 – 10 kΩ

    • R8 – 10 kΩ

    ESP32:

    1. Stiftleisten in die Platine stecken (so bleiben sie gerade)
    2. ESP32-Modul oben aufsetzen und keine Luft lassen. Also ganz runter auf die Platine. Er berührt fast die Widerstände.
    3. Danach das Modul wie üblich festlöten

    → Dadurch sitzt der ESP32 exakt über R6–R8.


    Dann die restlichen:

    • R1 – 100 Ω

    • R2 – 100 Ω

    • R3 – 20 Ω

    • R4 – 20 Ω

    • R5 – 20 Ω

    → Nach dem Löten Beinchen sauber abknipsen.

    🔧 2. Kondensatoren

    • C1 – ca. 680 µF (Elektrolyt)

      • Plus = längeres Bein

      • Minus = markierter Streifen

    • C2 – ca. 100 nF (Keramik)

      • keine Polung

    🔌 3. Step-Down-Konverter vorbereiten (wichtig!)


    Der Step-Down hat keine Stiftleisten.

    1. Vier abgeschnittene Widerstandsbeinchen nehmen und von unten verlöten, sodass oben kein Lötzinn ist.

    2. An die vier Pads löten: IN+, IN–, OUT+, OUT–

    3. Beinchen gerade nach oben ausrichten

    4. Step-Down-Modul durch die vier passenden Löcher der Platine stecken

    5. Von unten verlöten

    6. Überstände abschneiden

    Damit sitzt der Regler stabil und plan auf der Platine.

    📦 4. Stiftleisten an Mikrofon anlöten

    (Immer die beiliegenden Stiftleisten verwenden)

    Mikrofon-Modul:

    • Genau gleich: Stiftleisten anlöten und stecken

    • Dann verlöten

    🔩 5. IC, Mosfet & Schraubklemmen

    • SN74HC125N einstecken (Kerbe nach links, wie auf Platine markiert)

    • Mosfets anlöten. Bündig an die Platine

    • Blaue Schraubklemmen einlöten

      • Links: Stromversorgung

      • Rechts: DATA1 / DATA2 / DATA3

    Fertig!

    Die Platine ist komplett bestückt und einsatzbereit.


       

    Benutzen auf eigene Gefahr.
    Ein Abenteuer nicht verlieren Script.


    Das installieren in Chrome

    https://chromewebstore.google.…?utm_source=item-share-cb

    oder

    Das auf Firefox

    https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/

    Auf die Erweiterung in Firefox klicken und


    Dann das: Dort auf "Install the script" klicken

    https://greasyfork.org/en/scripts/450693-herowarshelper


    Spiel starten.


    Bei Abenteuer angreifen. Wenn man verliert, noch nichts drücken.

    Wenn ein "Auto" Button erscheint, den drücken.

    Wenn eine Art "Liste" kommt, wo viel steht, dort auf "Abbrechen".

    Danach auf "ok". Dann am besten raus aus Abenteuer und nochmal rein.

    Wenn was steht mit "Erfolgreich/Erfolgt(oben)", auf den Button "ok" klicken.

    Am besten dann auch einmal raus aus dem Abenteuer und wieder rein.

    🟦 WLED ESP32-Platine mit I2S-Mikrofon – universelle LED-Steuerung




    Diese kompakte ESP32-Platine ist eine flexible All-in-One-Lösung für WLED.

    Sie unterstützt nahezu alle LED-Typen – von adressierbaren Pixel-LEDs wie WS2812B / WS2815 bis hin zu RGB-, RGBW-, CCT- und klassischen Weiß-LED-Streifen.

    Dank der drei getrennten Datenkanäle lassen sich sogar unterschiedliche Spannungen gleichzeitig betreiben (z. B. 5 V, 12 V und 24 V), ohne dass sich die Spannungen gegenseitig beeinflussen.

    Das integrierte I2S-Mikrofon ist ein optionales Extra:

    Damit können Musik-Visualisierungen und Sound-Reaktionen genutzt werden – alle normalen WLED-Funktionen wie Farben, Effekte, Animationen, Timer, Alexa-Steuerung usw. bleiben vollständig erhalten.

    Kurz gesagt:

    Eine universelle, saubere und sichere WLED-Steuerplatine, die sowohl einfache LED-Streifen als auch anspruchsvolle Pixel-Lichtinstallationen problemlos beherrscht.





    Adv 1 Blue: 02,03,05,Boss(x2)
    Orange: 02,04,07,Boss(x2)
    Green: no
    Adv 2 Blue: 03,06,09,Boss(x2)
    Orange: 02,05,08,09,Boss
    Green: 04,07,10,09,Boss
    Adv 3 Blue: 04,12,13,Boss(x2)
    Orange: 05,06,09,Boss(x2)
    Green: 02,03,07,10-Boss
    Adv 4 Blue: 02,04,07,18,08,12,19,22,Boss(x2)
    Orange: 05,24,25,09,14,13,20,22,Boss(x2)
    Green: 03,06,11,17,10,16,21,22,Boss(x2)
    Adv 5 Blue: 05,09,10,14,17,20,27,25,21,Boss
    Orange: 04,06,10,11,15,19,18,Boss(x3)
    Green: 02,07,08,12,16,23,26,25,22
    Adv 6 Blue: 02,04,07,10,13,16,19,24,22,Boss
    Orange: 05,07,08,11,14,17,20,23,Boss(x2)
    Green: 03,06,09,12,15,18,21,26,Boss(x2)
    Adv 7 Blue: 08,01,11,12,15,12,11,21,25,Boss
    Orange: 11,10,14,17,13,19,20,24,Boss(x2)
    Green: 07,03,04,05,09,16,23,22,26,Boss
    Adv 8 Blue: 03,02,06,07,09,10,13,17,16,20,22,21,28-Boss(x2)
    Orange: 03,05,07,09,11,14,18,20,22,24,27,30,26,29,25
    Green: 03,04,08,07,09,11,15,19,20,22,23,31,Boss(x3)
    Adv 9 Blue: 02,06,10,15,20,14,24,29,25,36,39,42,44,Boss(x2)
    Orange: 03,08,12,11,07,16,21,26,30,31,32,35,37,40,Boss
    Green: 03,04,13,19,18,23,17,22,38,41,43,46,Boss(x3)
    Adv 10 Blue: 03,02,06,11,17,25,30,35,34,29,24,21,17,12,07
    Orange: 04,08,13,18,22,26,31,36,40,45,44,43,38,33,28
    Green: 05,09,14,19,23,27,32,37,42,48,51,50,49,46-Boss
    Adv 11 Blue: 02,03,06,07,12,11,15,21,27,36,39,40,41,Boss(x2)
    Orange: 02,04,06,08,12,17,18,19,25,31,30,29,28,22,16
    Green: 02,05,06,09,13,14,20,26,32,38,35,33,34,Boss(x2)
    Adv 12 Blue: 09,03,06,10,22,31,36,35,29,34,29,30,21,13
    Orange: 05,12,15,28,20,12,14,26,18,19,20,Boss(x4)
    Green: 08,02,04,07,16,23,32,33,25,24,17,11
    HA Zonen-Generator (YAML & Lovelace)

    Home Assistant Zonen-Generator

    Gib unten deine Werte ein. Die YAML-Paketdatei und die Lovelace-Card werden live generiert – nur zum Kopieren, es wird nichts auf dem Server gespeichert.

    Basis

    Zonen

    ID wird automatisch aus dem Namen gebildet (Kleinbuchstaben, Unterstriche).

    Paket-YAML (raum.yaml)

    Lovelace-Card (room-visual-card)

    !! Im Tool alles kleinschreiben. HA mag keine großen Buchstaben!!

    !! Sonst wird nichts funktionieren !!


    1. MQTT installieren

    Einstellungen - Geräte und Dienste - Integration - Integration hinzufügen - MQTT - MQTT - Das offizielle Mosquitto Mqtt Broker Add-on verwenden

    Integration - MQTT - hinzufügen.


    2. File Editor installieren

    Einstellungen - Addons - AddOnStore - FileEditor - installieren

    Addons - FileEditor - In Seitenleiste anzeigen - starten


    3. zigbee2mqtt installieren

    Einstellungen - Addons - AddOnStore - oben rechts - Repositories - https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

    F5 drücken

    Zigbee2MQTT - installieren

    In Seitenleiste anzeigen - starten - links Zigbee2MQTT - Stick einrichten. MQTT Einstellungen so lassen.


    4. Ordner erstellen (wo die configuration.yaml ist). Also ganz "vorne". Da kommt "www" und "room" hin

    File editor - + new Folder - "www" (/homeassistant/www)

    + new Folder - "room" (/homeassistant/room)

    4.1 Dateien erstellen.

    Ordner www öffnen und "New file" - room-visual-card.js

    4.2. /homeassistant/configuration.yaml bearbeiten

    File Editor - ganz am anfang die configuration.yaml bearbeiten

    Code
    1. # Lade alle Packages unter /config/room
    2. homeassistant:
    3. packages: !include_dir_named room

    578-pasted-from-clipboard-png


    5. Bewegungsmelder in Z2M erkennbar machen

    File Editor - /homeassistant/zigbee2mqtt - Ordner external_converters erstellen

    Dort Datei LD2450_erforscht.js erstellen.

    6. Bewegungsmelder integrieren

    Einstellung - Addons - Zigbee2MQTT - Neu Starten

    Bewegungsmelder Updaten. ->

    Zigbee2MQTT - Anlernen

    Nach Integration vom BW dort auf das gelbe Kästchen klicken (neu konfigurieren). Dann kontrollieren. Auf den BW klicken - Details.


    7. Zonen erstellen !!!WICHTIG!!! ALLES Kleinschreiben im Tool und generell IMMER in HA!!! Bei Missachtung funktioniert es nicht!!!

    Die Datei herunterladen, entpacken und starten. Eventuell Windows Warnungen zulassen. --> create_ha_yaml.zip

    Oder direkt hier erstellen im Form >klick_mich<

    Sensor-Pfad sensor.xxxx nimmt man aus Entwicklerwerkzeug - Zustände. Dort sieht man den Sensor.

    z.B. sensor.0x588c81fffe36a1dc_slot1_distance

    Dann ist der Pfad es bis zum ersten Unterstrich. Nicht den Unterstrich mitnehmen. In dem Fall "sensor.0x588c81fffe36a1dc"

    Es wird eine xxx.yaml erzeugt und eine xxx_visual_card.txt

    in "room" kann man weitere Ordner erstellen. Ich würde z.b. den Ordner "arbeitszimmer" erstellen. Dort die yaml reinkopieren:

    File editor - room - Order erstellen "arbeitszimmer" - Upload File - "arbeitszimmer.yaml" auswählen und uploaden.


    8. Visuelle Ansicht

    Einstellung - Dashboards - Dashboard hinzufügen

    Neues Dashboard von Grund auf - Titel z.B. "Visualisierung"

    öffnen - oben rechts "Bleistift" - in der Mitte "Abschnitt erstellen" - "Neuer Abschnitt +"

    Ganz runterscrollen "Manuell" - den Text löschen "type: ""

    Die xxx_visual_card.txt öffnen. Alles kopieren und dann einfügen. Speichern. Oben rechts "Fertig"


    9. neu Starten

    Entwicklerwerkzeuge - YAML - Konnfiguration Prüfen - Neu Starten - Home Assistant neu starten - neu starten


    Visualisierung sieht man jetzt denn Raum. Fals nicht, 1x F5 drücken.

    Fertig


    10. Weitere Bewegungsmelder

    Bei weiteren Bewegungsmelder: Anlernen - Wieder die beiden Dateien erstellen durch das Tool. Die yaml in "room" rein. Dann wieder wie in der

    8. Visuelle Ansicht

    einen neuen Abschnitt machen und den Inhalt der txt Datei einfügen. Oder weitere Dashboard hinzufügen. Freie Wahl.

    Moin Moin …

    Ich habe meinen Sensor auf 12 Uhr, ca. 240 cm Höhe und 45 ° Neigung angebracht. Der rote Punkt springt stark; je näher ich komme, desto weiter links (Treppe) werde ich angezeigt.

    Das Problem lässt sich super-easy mit ChatGPT analysieren.

    Ohne das wird mehr als schwer.

    Man muss verstehen wie ein Radarsensor funktioniert.

    Was es bedeutet, mitRadarwellen zu messen.

    Wo die hin gehhen. Wie die hingehen.

    Was passiert wenn die auf was treffen u.s.w.


    ChatGPT gefragt:

    "ich hab ein LD2450 mit einem esp32c6. Dort ist diese Script in iobroker als javasript integriert

    (dann den code posten)

    Dann habe ich deine Frage reinkopiert.

    Das ist die Antwort:



    CHATGPT:

    Warum der Punkt springt & „nach links zieht“

    1. Pitch-Fehler
      Die LD2450 rechnet mit waagerechter Antenne. Bei 240 cm Höhe und 45 ° Neigung kippst du das ganze Koordinatensystem.
      Effekt: Je näher die Person steht, desto stärker driftet der Punkt seitlich.
    2. Übersteiler Winkel
      • Zentralstrahl trifft den Boden schon nach 2,4 m (240 cm / tan 45°).
      • Nähere Ziele nur noch im Randbereich ⇒ schwächeres Signal ⇒ Jitter.
    3. Treppen-Reflexionen
      Metallgeländer und Stufen erzeugen Mehrwege-Echos; der Tracker springt zwischen Echo-Peaks.

    Besser aufhängen – zwei erprobte Varianten

    Variante Höhe Neigung (↓) Warum das hilft
    A Decken-Sweet-Spot 220 – 240 cm 25 – 30 ° Zentralstrahl trifft Boden erst ≈ 4 m entfernt → kaum Totzone.
    B Brust-/Kopfhöhe 130 – 150 cm 15 – 20 ° Frontale Sicht → beste Mikro­bewegungs-Erkennung (stöß­anfälliger).
    Zitat
    Praxis-Regel
    Tilt ≈ arctan(H / YMitte)
    Bei H = 240 cm und YMitte ≈ 225 cm ergibt das ≈ 27 °.

    Montage-Checkliste

    1. Exakte Ausrichtung – Sensoroberkante parallel zur Flurwand, Pitch zuletzt einstellen.
    2. Wand statt Decke (falls Treppe stört) – ≥ 20 cm Abstand zu den Stufen.
    3. Reflexionen dämpfen – 20 × 40 cm Sperrholzblende hinter/unter dem Modul.
    4. Kabelzug entkoppeln – Gummi­puffer oder 3-D-Halter gegen Vibrationen.

    Schritt-für-Schritt-Vorgehen

    1. Neigung von 45 ° auf ≈ 28 ° stellen, Flur ablaufen → Punkt sollte mittig bleiben.
    2. Driftet er noch? → Yaw feinjustieren (siehe Code unten) oder Sensorplatte drehen.
    3. Jitter?
      • Geländer testweise mit Pappe abdecken → wenn ruhiger, Blende montieren.
      • Filter (Moving Avg / Kalman) erhöhen.
    4. Grenzfälle prüfen (Treppenantritt, < 1 m vorm Sensor). Totzone < 1 m? → ok; sonst Tilt + 3 °.

    Kurzantwort:
    LD2450 am besten auf 230 cm Höhe mit ~28 ° Tilt montieren (oder 140 cm / 18 ° für Mikro­bewegungen). Ausrichtung exakt einstellen und kleines Moving-Average-Filter aktivieren – schon ist das Hakeln weg.


    1 · Fein-Yaw als separates Kalibrations-Feld

    Statt die 3,5 ° direkt im Code zu verdrahten, leg sie als State an, damit du sie in VIS anpassen kannst:


    Code
    1. // --- NEU: in „Kalibrierung“ aufnehmen -------------
    2. ensure(PREFIX + 'calibration.yawFine', 0,
    3. {type:'number', read:true, write:true});

    Dann im update() die Zeile

    Code
    1. const sz = rad(val(PREFIX + 'calibration.sensorZ') || 0);

    ersetzen durch

    Code
    1. const sz = rad(
    2. (val(PREFIX + 'calibration.sensorZ') || 0) +
    3. (val(PREFIX + 'calibration.yawFine') || 0) // Fein-Offset
    4. );

    Jetzt kannst du den Winkel bequem in 0,1-°-Schritten nachtrimmen, bis der Punkt exakt mittig läuft.


    2 · Sanftes Low-Pass-Filtering pro Slot

    Der Rohwert-Jitter verschwindet, wenn du pro Slot eine exponentielle Glättung (EMA) machst.

    Direkt oberhalb von function update(){ … } ein globales Objekt anlegen:


    Code
    1. // --- NEU: Filterpuffer -----------------------------------------------
    2. const filters = {
    3. 1:{x:null,y:null}, 2:{x:null,y:null}, 3:{x:null,y:null}
    4. };
    5. const alpha = 0.30; // 0…1 (höher = schneller, niedriger = ruhiger)

    Und im Slot-Loop nach const wY = sy + relY; einsetzen:

    Code
    1. / Glättung -------------------------------------------------------------
    2. const id = p.x.match(/slot([1-3])_x$/)[1]; // '1' | '2' | '3'
    3. if(filters[id].x === null){ // erster Wert -> direkt
    4. filters[id].x = wX; filters[id].y = wY;
    5. }else{
    6. filters[id].x = alpha * wX + (1-alpha) * filters[id].x;
    7. filters[id].y = alpha * wY + (1-alpha) * filters[id].y;
    8. }
    9. const wXf = filters[id].x;
    10. const wYf = filters[id].y;

    Danach alle Verwendungen von wX/wY im Slot-Block auf wXf/wYf umstellen (Zonen-Check, Begrenzen & VIS-Position).


    3 · Kleinst-Schwankungen ganz ausblenden

    Gerade wenn du nah am Sensor stehst, schwanken X/Y manchmal um ±1 cm, obwohl du still­stehst.

    Den Schwellenwert kannst du im bestehenden Parameter einfach etwas höher setzen:


    Code
    1. const EMPTY_THRESHOLD_M = 0.03; // 3 cm statt 1 cm

    Damit werden „Pseudo-Leerwerte“ ignoriert und der Punkt bleibt sichtbar, statt ständig zu verschwinden.


    Ergebnis

    • Yaw-Fehler korrigierbar, ohne neu zu flashen.

    • Sprungfreier Punkt dank EMA-Filter (30 % frisch, 70 % alt).

    • Geringe Flackerei entfällt, weil Mini-Schwankungen <3 cm übersehen werden.

    Zitat
    Tipp: Wenn du noch mehr Ruhe möchtest, reduziere alpha z. B. auf 0,15.

    Bei sehr schnellen Bewegungen (z. B. Rennen) dagegen auf 0,5 erhöhen.

    Einfach die drei Abschnitte einbauen, Skript speichern, kurz neu laden – das war’s. Viel Erfolg beim Testen!

    Ganzes script:


    Einbau-Checkliste

    1. Im Skript-Editor des ioBroker einfügen und speichern.

    2. 1 · Schnellvariante – Wert im Admin setzen
      1. Objekte-Tab öffnen.
      2. Zu javascript.0.arbeitszimmer.calibration.yawFine navigieren

        (wird vom Skript automatisch angelegt).
      3. Doppelklick auf den Wert → Gradzahl eintragen (z. B. 3.5) → Speichern.
      Das Skript reagiert sofort, dein Punkt verschiebt sich live.

      Ideal zum einmaligen Nachjustieren.
    3. Optional alpha anpassen, falls du noch mehr (oder weniger) Glättung möchtest.

    Damit bleiben Firmware & Datenpunkte unverändert – nur die Anzeige wird ruhiger und der Drift lässt sich live nachregeln. Viel Erfolg!


    Firmware für den ESP32C6

    !!! ACHTUNG !!!

    !!! Immer wieder mal hier gucken, ob es updates gibt!!!!


    Funktioniert nur mit meinen bearbeiteten ESP32C6 Modulen


    Firmware Upgrade: upgrade 1.0.9.zip<- hier klicken. Unten sind nur ältere Versionen zum download

    Runterladen und entpacken.

    Dabei Antivirenprogramm und/oder Sicherheitshinweise zulassen von Windows.

    Mit dem USB Kabel den ESP verbinden. Port CH343. Unter der Boot Taste. Wo das Loch ist zum Pairing

    Die exe Datei 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.

    02.07.2025: Version 1.0.1.

    05.07.2025: Version 1.0.2. /// Lichtsensor Fix

    05.07.2025: Version 1.0.3 /// BMP280 Hot Fix

    05.07.2025: Version 1.0.4 /// blink led for pairing-hotfixes !!! Änderung der including.js. Einfach ersetzen und starten.

    08.07.2025: Version 1.0.5 /// blink led for pairing-hotfixes + Button !!! Pairing nach Stromausfall fix

    08.07.2025: Version 1.0.6 /// blink led for pairing-hotfixes + Button !!! Restart pairing fix

    08.07.2025: Version 1.0.7 /// Restart pairing fix


    02.08.2025: Version 1.0.8 /// Sendet jetzt nur noch pro x Sekunden. Wichtig!!= Zwingend Gerät löschen vorher=

    Gerät löschen. Zigbee Adapter stoppen. Die including.js von oben kopieren und ersetzen im Javascript. Adapter starten. Das Gerät Updaten. Gerät anlernen u.s.w.
    minimumReportInterval: 1, // frühestens alle 1 s = hier kann man einstellen, wann das Gerät senden soll in Sekunden


    25.09.2025: Version 1.0.8 /// Script in IoBroker wurde geändert (Punkt 5.) Es passierte, dass was nicht auf false ging, wenn man schnell Raum verlässt.

    const STALE_MS = 10000; // Slot gilt als "alt", wenn X/Y länger als 10s nicht aktualisiert. Bedeutet, wenn 10 Sekunden gar nichts passiert, geht es auf false.

    const TICK_MS = 1000; // update()-Tick alle 1s, auch ohne neue Events.

    07.10.2025: Version 1.0.8 /// Script in IoBroker wurde geändert (Punkt 5.) Position Sensor fix.

    08.10.2025: Version 1.0.9 /// Firmware auf Router-Modus geändert. Kein Endgerät mehr, sondern wird zu Zigbee-Router und erweitert das Mesh-Netzwerk.

    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. 20,99€ - 27,99€<---


        



        





    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

    • Unter Vollast ist der Stromverbrauch bei 5 V ca. 0,28 A (entspricht etwa 1,4 W Leistungsaufnahme)

    Zusammenbau:

    1. Erst den ESP von unten anlöten. Alle Pins an den ESP und danach alle Pins an die Platin!!!

    Schön Luft lassen zwischen ESP und Platine. So wie im Bild die Stifte immer nur ein wenig rausragen lassen, zum anlöten.

    Vor allem bei der Platine. Das da die Pins nicht weit rausgucken. Immer nur ein klein wenig. So das es halt reicht, zum anlöten.


    2. Dann die Bauteile von oben an die schon verlöteten Pins mit dran anlöten.

    Bedeutet, hier im Bild hab ich die Bauteile nur zur Veranschaulichung in die Löcher gesteckt.

    In Wirklichkeit sind da ja schon die Pins vom ESP drin. Einfach an die Pins so mit anlöten.

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

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



    3. Dann den Sensor draufstecken und von unten verlöten.

    Je genauer der Sensor angelötet wird, um so besser.

    Also nicht schief anlöten. Je perfekter er waagereicht und senkrecht und gleicher Abstand hat, um so genauer wird er messen.

      

    !! FERTIG !!


    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.

    Pairing Modus:

    Pairing: wenn es blinkt, ist er im pairing modus.

    Auf der Platine ist ein Loch zu sehen in der nähe vom USB Port.

    Dort mit ein Stift 5 Sekunden drücken. Dann fängt es an zu blinken, für den Pairing Modus


    2.

    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) => {



    3.

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


    4.

    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.



    5.

    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.


    6.

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

    Wie man das macht, steht am Anfang von Javascript.


    7.

    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}


    8. Fertig


          

    LD2410 = https://amzn.to/3YsSmlQ

    Online Flashen : https://tasmota.github.io/install/

    Unofficial -> Tasmota All Sensors


    Anschluss des Sensors mit 3,3V. Ich hab den kleinen quadratischen HLK-LD2410C. Beschrieben mit 5V. aber da spinnt er bei mir herum. Bei 3,3V läuft er perfekt.


    In Tasmota:

    Template:

    GPIO vom ESP Das Auswählen in Tasmota An den LD2410
    TX GPIOX LD2410 Tx RX
    RX GPIOX LD2410 Rx TX
    IO GPIOX Switch1 OUT


    Die GPIO's Anpassen X

    In der Tasmota Console eingeben:

    Code
    1. SetOption115 1
    2. SetOption19 1



    Sonoff Adapter=

    Automatische Erstellung von Zuständen

    Für tele/SENSOR

    Häkchen machen.

    Datenpunkt:


    POWER = true = Jemand Vorhanden

    POWER = false = Keiner mehr da


    Wert Bedeutung:

    Distance[0] Entfernung zu Bewegung in cm

    Distance[1] Entfernung zu ruhigem Objekt in cm

    Distance[2] Erkennungsabstand (Detect Distance) Die größte Entfernung, bis zum Sensor prinzipiell Bewegung erkennen könnte (normalerweise die eingestellte Maximaldistanz in der Konfiguration). Viele Tasmota-Versionen setzen diesen Wert aber immer auf 0,0 cm, weil er nicht immer über die UART-Schnittstelle ausgegeben wird.

    Energy[0] Wie stark ist die Bewegung (0–100)

    Energy[1] Wie stark reflektiert ein statisches Objekt (0–100)



    Falls Fehler:

    Wenn Power / Switch dauern on/off geht, muss ein Widerstand eingebaut werden.

    10kOhm Widerstand ein Ende an den ESP32 GPIO wo der "OUT" vom Sensor ran geht und das andere Ende an den GND vom ESP32

    Ich habe diesen Dimmer umgebaut und steuere damit mein Warmwasserboiler an, der über Steckdose läuft (2500Watt Boiler).

    Sobald Solar Überschuss ist, wird der Dimmer so gesteuert, das immer genullt wird.

    z.b. wenn 300Watt Überschuss ist und normalerweise in das Netz eingespeist werden, werden diese 300Watt vom Dimmer an mein Boiler abgeben.

    Da ich ein Shelly 3EM habe (3 Phasen Zähler) wird immer soviel in den Boiler eingespeist, wie Überschuss ist.

    Das wird per Blockly erledigt.

    Shelly 3EM = https://amzn.to/4jIQ1LL https://amzn.to/4jIQ1LL

    3x aqy212eh= https://amzn.to/42mwmeX https://amzn.to/42mwmeX

    1 Dimmer mit 10kw und 3 Taster = https://amzn.to/42pCNhm https://amzn.to/42pCNhm (Darauf achten, dass er 3 Taster hat)

    3x 220Ohm Widerstände = https://amzn.to/4cJghDx https://amzn.to/4cJghDx

    Verlängerungskabel 1,5 qmm = https://amzn.to/42QMwNz https://amzn.to/42QMwNz

    Wemos D1 = https://amzn.to/3Gvtu6H https://amzn.to/3Gvtu6H





    Tasmota Template:

    Code
    1. {"NAME":"SolarDimmer","GPIO":[1,1,1,1,1,1,1,1,225,226,224,1,1,1],"FLAG":0,"BASE":18}