NEWS
Tasmota ESPHome Presence Sensor LD2410
-
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
-
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
-
bin mit dem sensor ein schrittchen weiter: esphome mit esp32 - die presence (motion) wird jetzt angezeigt - auch nach einem neustart des sensors
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).und die def datei:
uart_read_line_sensor_ld2410v3.h
PS: dummerweise kommt es immer wieder zu kurzen fehlmedlungen bei dem presence dp
-
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
von hier: https://community.home-assistant.io/t/mmwave-wars-one-sensor-module-to-rule-them-all/453260
-
@liv-in-sky Ich habe die Zeit gefunden und etwas ein wenig was hinbekommen:
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:
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.
Als nächstes werde ich mal Dein YAML ausprobieren.
-
@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
-
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
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
dann testen, ob der esp richtige daten im mqtt ordner bringt
-
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
-
Kleiner Wasserstandsbericht von mir:
Wenn man sonst so gut wie nichts auf dem ESP8266 laufen lässt und auch die Stats nicht abholt, funktioniert der Sensor bei mir.
Sobald ein PWM für 'ne LED nebenbei laufen soll, kommt der ESP nicht mehr hinterher. Auch Updates funktionieren dann bei mir nur noch, wenn ich den LD2410 abklemme und den Sensor über USB aktualisiere. Über WLAN kann ich das dann komplett vergessen.
Es liegt möglicherweise auch daran, dass ich das Ganze etwas umgebaut habe, damit die maximalen Entfernungen für bewegte und bewegungslose Personen getrennt angegeben werden können und alle Sensitivitäten für die Bereiche getrennt angegeben werden können.Bisher sind bei einem Neustart immer die eingestellten Werte wieder zurückgesetzt. Egal wie ich es probiert habe (ob vom LD2410 beim Start auslesen oder die Werte des ESPHome wieder zum Sensor schreiben) hat es bisher nicht funktionert, dass er seine Konfiguration behalten hat.
Da ich des öfteren Meldungen hatte, dass nicht mehr genug Speicher für eine Allokation vorhanden ist, habe ich sämtlichen dynamischen Speicherallokationen soweit wie möglich entfernt bzw. reduziert.
@liv-in-sky : Das Setzen der Werte von aussen über MQTT funktioniert übrigens über einen anderen Topic als das auslesen. Die Topics zum Setzen der Werte haben per Default am Ende command statt state. Leider muss man die erst erzeugen lassen indem man z.B. über die Kommandozeile ein entsprechenden Topic einfach postet.
(z.B.:mosquitto_pub -t ledtest/config/motion_hold_cmd -m 2
-- angepasst an die geänderten Topics, wie ich sie in meiner YAML verwendet habe).
Dann muss man noch in den Objekteigenschaften im MQTT-Bereich publish auf true setzen.Hier erstmal meine Sourcen, wie sie zur Zeit bei mir rumliegen:
Falls jemand übrigens weiß, wie man im YAML Variablen benutzt oder womöglich sogar Schleifen programmiert, da hätte ich gesteigertes Interesse
Schleife meint hier nicht eine Schleife in einem Lambda sondern mehrere number - plattform: template Einträge, die sich nur duch wenige Einträge voneinander unterscheiden. Siehe im obigen YAML die Einträge mit den IDs sensitivity[0-8](Still|Moving). -
erstmal danke, dass du weiter testest
Bisher sind bei einem Neustart immer die eingestellten Werte wieder zurückgesetzt.
bei dem yaml, welches ich gepostet habe, bleibt das setting - wie das im yaml gemacht wird, weiß ich nicht
mit esp32 hatte ich als erstes geschafft, ein stabiles yaml zu bekommen - war verwundert, aber auch das yaml für den wemos d1 mini läuft stabil
-
@zarello sagte in Tasmota ESPHome Presence Sensor LD2410:
Leider muss man die erst erzeugen lassen indem man z.B. über die Kommandozeile ein entsprechenden Topic einfach postet.
(z.B.:mosquitto_pub -t ledtest/config/motion_hold_cmd -m 2 -- angepasst an die geänderten Topics, wie ich sie in meiner YAML verwendet habe).
Dann muss man noch in den Objekteigenschaften im MQTT-Bereich publish auf true setzen.Du kannst auch mit
sendTo
arbeiten, dann wird das Topic auch angelegt und ist nutzbar (hab ich diverse mal für Tasmota gebraucht da außer demPOWER
untercmnd
in der Regel nicht angelegt wird, Tasmota aber ja auf alle bekannten Befehle dort lauscht):// Beispiel für SendTo von https://github.com/ioBroker/ioBroker.mqtt // Test ob ich das zum Anlegen von neuen MQTT-Topics etc. nutzen kann /* * @param {string} MQTT instance Specify MQTT instance to send message through (may be either server or client) * @param {string} action Action to use (always 'sendMessage2Client' for sending plain messages) * @param {object} payload * @param {string} payload.topic Topic to publish message on * @param {string} payload.message Message to be published on specified topic * */ sendTo('mqtt.0', 'sendMessage2Client', {topic: 'znil/Tests/Testnachricht', message: '42'});
im MQTT-Adapter den ich als Client für einen Mosquitto einsetze sind ansonsten alle Haken raus:
So kann man bei Bedarf die "MQTT-Datenpunkte" damit anlegen. Oder gleich im Skript immer mit
sendTo
arbeiten
Bei Bedarf hätte ich auch ein Blockly-BeispielDas ganz habe ich in der Hilfe zum MQTT-Adapter gefunden (auch wenn da nicht steht das man es zum anlegen nutzen soll)
-
@bananajoe sagte in Tasmota ESPHome Presence Sensor LD2410:
Du kannst auch mit
sendTo
arbeiten, dann wird das Topic auch angelegtsendTo('mqtt.0', 'sendMessage2Client', {topic: 'znil/Tests/Testnachricht', message: '42'});
Schade, mit dem mqtt-client Adapter scheint das nicht zu funktionieren - getestet mit 'mqtt-client.0' als Ziel.
Jetzt muss ich mir wohl überlegen, ob ich den normalen mqtt Adapter verwenden möchte und alle Datenpunkte umziehen möchte. -
@liv-in-sky sagte in Tasmota ESPHome Presence Sensor LD2410:
bei dem yaml, welches ich gepostet habe, bleibt das setting - wie das im yaml gemacht wird, weiß ich nicht
Ich habe da ein bisschen in der setup Methode in der Header-Datei rumgespielt.
Inzwischen habe ich festgestellt, so wie es jetzt ist bleiben bei Strom aus und wieder an die Settings erhalten.
Nur wenn ich eine neue Software aufspiele hat er wieder seine Default-Werte. Das wundert mich, denn eigentlich hole ich die Werte am Anfang vom Sensor. Eine neue Software sollte für den Sensor ja nichts anderes sein als aus- und wieder einschalten. Evtl. wird aber irgendwo noch der Reset aufgerufen. Den werde ich mal abklemmen.Außerdem wird bei mir der Wert für stillTargetDistance niemals geändert. Der bleibt einfach auf 0.
Bekommst Du da sinnvolle Werte? -
@zarello sagte in Tasmota ESPHome Presence Sensor LD2410:
stillTargetDistance
bei mir auch nicht - steht in der webgui , bleibt aber immer 0 - auch kein mqtt datenpunkt
ich konzentriere mich aber auf den presence dp - mehr brauche ich eigentlich nicht (oder ich weiß noch nicht, dass ich ihn brauche
-
Idee wäre, über zwei Geräte aus den Abständen die Position zu ermitteln. Aber ich vermute, dass wird sowieso nicht funktionieren, da zwei Geräte in einem Raum sich höchstwahrscheinlich gegenseitig stören.
Die müsste man dann synchronisieren und immer eines der beiden ausschalten, allerdings bieten die Geräte diese Option nicht und wenn man ihnen einfach den Strom klaut, funktionieren sie vermutlich nicht mehr so gut, denn nach meinen Beobachtungen funktioniert die Detektion von unbewegten Personen nur, wenn sie vorher als bewegt erkannt wurden.
Wenn man sich im Sensorbereich komplett still verhält (Atem anhalten), kann man danach normal atmen ohne, dass der Sensor anschlägt. Erst wenn man sich wieder etwas mehr bewegt und der Sensor das erkennt, bleibt er danach auch aktiv, wenn man nur atmet. -
@liv-in-sky Danke für das Script! Leider bleibt bei mir der Wert "mmwave_presence_ld2410" immer auf ON. Auch nach den abgelaufenen 5 Sekunden wo keine Bewegung passiert.
Edit: Ah okay musst noch die Out vom Sensor an den D1 anlöten
-
@zarello
sorry - habe deinen letzten post völlig übersehen
scheint, als ob du tief in den sensor einsteigsthabe ja 3 sensoren in einem zimmer getestet - die presence funtioniert ohne gegenseitige störungen - ob das auch für die anderen werte gilt, kann ich nicht sagen, da ich die entfernungen nicht protokoliere bzw trianguliere
wenn ich über die api, die entfernung beobachte - 2 sensoren direkt vor mir am schreibtisch, werden die werte für ... bei beiden korrekt angezeigt
@zarello sagte in Tasmota ESPHome Presence Sensor LD2410:
unbewegten Personen nur, wenn sie vorher als bewegt erkannt
kommt eher selten vor, dass ich in einen bereich (bewegungslos) hineingehe - auch versuche ich meist zu atmen - ist so eine angewohnheit von mir
bisher nutze ich den sensor (weitere langzeit-tests):
- sitze ich auf dem sofa in meinem büro, werden die monitore des hauptdesktops abgeschalten - die brauchen viele watt - gehe ich wieder zum schreibtisch, werden die monitore wieder aktiviert - funktioniert alles sehr stabil
mittlerweile ist die hardware auch in gehäuse eingebaut - habe aber die sensoren außerhalb des gehäuses angebracht - innerhalb wollte das ganze nicht mehr so richtig (obwohl es plastik ist)
ich fand die idee mit den leds ganz gut - muss mal schauen, wenn ich zeit habe, ob ich die aus deinem yaml in meine esp32 yaml bekomme und ob das ganze dann noch funtioniert - sollte bald noch eine lieferung bekommen
-
@stadtschloss ja - den pin braucht man irgendwie
-
@liv-in-sky sagte in Tasmota ESPHome Presence Sensor LD2410:
scheint, als ob du tief in den sensor einsteigst
Ich hatte schon überlegt, ob ich bei Gelegenheit einen Vorschlag für einen überarbeiteten LD2410 in ESPHome mache. Aber da benötige ich etwas mehr meiner knappen Zeit für, da ich dann zuerst rausfinden muss, wie ich eine eigene ESPHome-Variante mit dem ESPHome-Adapter verwende.
Und vermutlich werde ich dann die ganzen unterschiedlichen Sensitivitäten eher über 1-2 Objekte über JSON steuern und in dem Fall evtl. auch als Alternative, dass man einfach nur einen Wert eintragen kann statt einer Liste und dieser dann für alle Bereiche verwendet wird. Wie gesagt: Zeit haben...habe ja 3 sensoren in einem zimmer getestet - die presence funtioniert ohne gegenseitige störungen - ob das auch für die anderen werte gilt, kann ich nicht sagen, da ich die entfernungen nicht protokoliere bzw trianguliere
wenn ich über die api, die entfernung beobachte - 2 sensoren direkt vor mir am schreibtisch, werden die werte für ... bei beiden korrekt angezeigt
Das wäre ja super. Da bin ich mal gespannt. Im Moment warte ich noch auf Anschlusskabel mit passenden Steckern, da ich beschlossen habe, dass ich nicht alle Sensoren anlöten möchte. Die Pins liegen einfach zu dicht beieinander.
kommt eher selten vor, dass ich in einen bereich (bewegungslos) hineingehe - auch versuche ich meist zu atmen - ist so eine angewohnheit von mir
Ich hatte es schon ein paar mal geschafft so ruhig auf dem Sofa zu sitzen, dass der Sensor mich nicht mehr erkannt hat. Passiert eher bei größerer Entfernung (> 3m).
Vielleicht sollte ich mir auch einfach das Atmen wieder angewöhnen
Aber wenn die sich nicht gegenseitig stören kann ich ja auch einfach einen zweiten hinstellen, der dann dichter am Sofa ist.mittlerweile ist die hardware auch in gehäuse eingebaut - habe aber die sensoren außerhalb des gehäuses angebracht - innerhalb wollte das ganze nicht mehr so richtig (obwohl es plastik ist)
Im Datenblatt des Sensors stehen dazu ganz interessante Infos: Je nach Art des Plastiks gibt es eine empfohlene Dicke (berechnet anhand der halben Wellenlänge des Mediums, meist zwischen 2-5 mm) und einen empfohlenen Abstand (einfache oder eineinhalbfache Wellenlänge in der Luft: 12,4 bzw. 18,6mm).
Das Plastik sollte allerdings möglichst homogen sein. Ein 3D-gedrucktes Teil entspricht dem mit Sicherheit nicht, da gibt es viel zu viele Lufteinschlüsse.Ich hatte bei mir einfach mal Papier als Abdeckung getestet. Das hatte gut funktioniert. Ich werde vermutlich die Gehäuse so bauen, dass ich die Seite vor dem Sensor einfach mit Papier abklebe, das sieht etwas netter aus als der blanke Sensor.
-
Ein richtig guter Bewegungs- und Präsenz Sensor der LD2410 und mein langer Weg zur wirklich guten Erkennung.
Den Adapter ESPHome 0.2.4 installiert aber ich habe es nicht geschafft, egal was ich auch probiert habe die YAML Datei über ESPHome im IoBroker zu kompilieren oder gar auf den ESP32 zu übertragen. Stundenlang im Netz gesucht aber keine Lösung dazu gefunden bis ich dann auf diesen Link
https://smarthomeyourself.de/wiki/esphome/esphome-mit-python-ueber-die-kommandozeile-flashen/
gestoßen bin.Hier wird wirklich super erklärt wie man ESPHome mit Python über die Kommandozeile flashen kann.
Bei meiner langen Suche im Netz habe ich auch eine gute id2410.yaml Datei mit dazugehöriger ld2410.h Datei gefunden.Python auf meinem Windows PC installiert, ein neues Verzeichnis esphome angelegt und dann noch Kommandozeile aus dem Arbeitsplatz heraus gestartet. In der Kommandozeile dann noch die 4 Befehle ausgeführt.
Jetzt noch mit dem letzten Befehl die YAML Datei kompiliert und ab damit auf den ESP32Anschließend kann man noch in der Web Oberfläche des ESP32 die einzelnen Parameter einstellen und diese werden auch übernommen.
Was die Werte motionGate0Sensitivity bis motionGate8Sensitivity sowie staticGate2Sensitivity bis staticGate8Sensitivity bewirken ist mir leider nicht bekannt. Vielleicht kann mich jemand aufklären. Diese Werte waren ursprünglich anders aber ich habe in der Web Oberfläche auf den Reset Button geklickt und dann waren es die Einstellungen wie auf meinem Bild und der Sensor arbeitet so wie ich mir das vorgestellt habe.
Jetzt muß ich nur noch jemand finden, der mir ein 3D Gehäuse druckt.
So ein Gehäuse wäre schon schön.
Meine YAML Datei und dazu auch die h Datei
ld2410.yamlIn der ld2410.yaml Datei unter WIFI die IP des ESP32, die SSID und das Netzwerkpasswort, unter mqtt die IP eures mqtt Broker ggf. auch den Port eintragen.
Dann noch ein kleines Blockly. Geht bestimmt einfacher und besser aber funktioniert bei mir.
Ich habe noch nicht ganz die Türklinke in der Hand und das Licht geht an und bleibt auch solange an bis ich den Raum verlasse. Habe noch ein Verzögerung von 4 Sekunden eingebaut mit der Variable setze timer auf 4.