NEWS
Anwesenheitserkennung mit ESPresense
-
Bin ebenfalls gerade am rumspielen mit esp32 dev kit c v4 mit espresense. Aktuell habe ich 2 Module in 2 Räumen im einsatz welche ein iphone und eine Garmin Smartwatch tracken.
Bin leider mit den Ergebnissen absolut nicht zufrieden, da die Entfernungsangaben absolut nicht stimmen. iphone und watch liegen beide ohne hindernisse an verschiedenen Positionen ca 3m vom Esp32 entfernt. Iphone sagt 1,2m, watch sagt 5,5m. Wenn ich beide geräte in den Nebenraum lege - ca 6m vom esp entfernt ändert sich die watch auf 4,9m und das iphone auf 2,5m
Habe heute einen Radarbewegungsmelder RCWL-0516 and das ESP angeschlossen, ist aber auch nicht zufriedenstellend. Auf 3m Distanz erkennt er nur massive Bewegungen.
Bin dann bei weiterer Recherche auf diesen thermischen Präsenzsensor gestossen. Wenn dich dieser einbinden lässt wäre es vielleicht eine vernünftige Lösung.
-
@stefan_tr96
Problem ist halt Funkstrahlen reflektieren mal und mal nicht. So kann jemand im Nachbar Raum eine geringere Dämpfung des Signals haben wie jemand im gleichen Raum hinter einer Pflanze
Wasser schluckt mehr von dem 2.4 ghz Signal wie andere Stoffe.
Irgendwo bei github habe ich mal eine ki. Gesehen die das lernen kann. Aber zaubern kann die auch nicht. Im Zweifel benötigt man pro Raum 2 oder gar 3 Empfänger (triangulation) um genau zu ermitteln wo sich jemand befindet -
@stefan_tr96 sagte in Anwesenheitserkennung mit ESPresense:
D6T1A02 Thermischer MEMS-Präsenzsensor
Denkst du, das klappt zuverlässig?
Vom ersten lesen her gibt das Teil die durchschnittliche Temperatur seiner Zellen aus.Was ist wenn der Raum wärmer wird während man drinnen ist? Erkennt er einen dann noch im Übergangsberech?
-
Ich denke es könnte funktionieren, habe diese info im room-Assistent projekt gefunden:
Präsenzerkennung mit Omron D6T
Eventuell wäre der Grid Eye Sensor auch eine Möglichkeit
-
@stefan_tr96 sagte in Anwesenheitserkennung mit ESPresense:
da die Entfernungsangaben absolut nicht stimmen.
Richtig, daher werte ich auch aus, wann wo sich das Device zuletzt angemeldet hat (bei welchem ESP in welchem Raum) und dann habe ich eine ziemlich zuverlässige "Ortung" (Samsung Galaxy Smartphone iom Test).
Eine thermische Präsenzmessung hat m.E. den gravierenden Nachteil, dass man nur feststellt "da ist jemand im Raum". ich möchte aber idealerweise auch wissen WER da im Raum ist (bzw wessen Handy/Fitnesstracker) -
@amg_666 habe ich auch schon versucht, bringt bei mir aber auch keine sauberen Ergebnisse. Die meines Erachtens vernünftigste Lösung ist der Ansatz: stelle mit möglichst hoher Zuverlässigkeit fest ob sich jemand im Raum befindet um gewisse Grunzustände (Heizung/Licht) herzustellen bzw zu halten und in einem weiteren Schritt wer sich im Raum befindet um personenspezifische Zustände zu halten bzw herzustellen. Am besten beides in einem Sensor vereint. Auch da ich nicht rund um die uhr mein Handy oder meine Smartwatch am Körper habe.
Hab heute mal ein wenig in die Sache reingelesen und es gibt Projekte mit BLE Triangulation bzw. Trilateration und „raumweisen lernen“. Sind leider alle mehrere Jahre alt.
-
@stefan_tr96
Das war das was ich oben mit ki meinte.
Ideale Ergebnisse müsste man erreichen wenn man je Raum 3! Bluetooth Sensoren hat.
Allerdings erzeugen die auch entsprechend Traffic das 2.4ghz wlan (je nachdem wie oft die Geräte angefragt werden) uU in Mitleidenschaft gezogen wird. -
@oliverio mit der ki bin ich bei dir, jedoch denke ich, dass es möglich sein müsste mit 3 bis 5 Sensoren pro Wohneinheit und entsprechendem Anlernen eine Art „RSSI Profil“ je Gerät zu erstellen da ja die BLE Verbindung durch Wände nicht zwangsweise abreisst. Eventuelle Überschneidungen müssten sich gerade in den eigenen vier Wänden durch Bewegungs bzw Präsenzmelder aufklären lassen.
Quasi: nach BLE Ortung könnte sich die Person in der Küche oder im Bad aufhalten (Überschneidung), da jedoch der BM oder PM in der Küche ausgelöst und jener im Badezimmer nicht-> Person ist in der Küche
Also eine sehr zuverlässige aber undetaillierte Technik mit einer sehr detaillierten aber eher unzuverlässigen verbinden.Wäre meine laienhafte Meinung hierzu da ich keine Ahnung betreffend der Umsetzung habe.
-
@stefan_tr96
Genau wie bei WLAN bekommst du 2 Informationen
Einmal eine eindeutige id und einen dämpfungswert in Dezibel. Aber keine richtungsinformation
Anhand der Dezibel kannst du ungefähr auf die Entfernung schließen.
Was du nicht weißt ist ob das Signal direkt oder reflektiert über dämpfende Materialien oder durch dämpfende Materialien geht.
Der selbe gedämpfte wert bedeutet je nach Situation unterschiedliche Entfernungen.
Diese sind Formation hat der Empfänger aber nicht.
Sobald du weitere Empfänger hinzufügst (bspw je Raum ein Empfänger) könntest du aus den dezibelwerten von Raum 1 und Raum 2 unter idealbesingungen ermitteln wo sich der Sender befindet.
Wenn die idealbedingungen Nicht erreicht werden wird es schwieriger -
Hallo miteinander,
jetzt habe ich mich auch mal an das Projekt ESPresense gewagt und die Software, auf einen ESP32 geflasht.
Soweit läuft, die Software auch, auf dem ESP.
Aber jetzt zu meinem Problem:
Wenn ich jetzt ins Terminal gehe, um meinen G-Tag zu identifizieren, bekomme ich mehrere Geräte angezeigt. Check
Wenn ich jetzt aber den G-Tag von dem ESP entferne, um mir anzeigen zu lassen, welches Gerät "Close", oder "Left" ist, wird mir das nicht angezeigt und die Liste aktualisiert sich nicht.Wo könnte da der Fehler liegen?
Danke euch
-
@senger1985 sagte in Anwesenheitserkennung mit ESPresense:
Wenn ich jetzt aber den G-Tag von dem ESP entferne
Na ja, wie weit entfernst du den denn vom ESP? Nicht dass da immer noch Empfang ist.
Ausserdem würd ich auch mal eine gewisse Zeit warten, bei mir dauert das manchmal (nicht immer) gefühlt ewig bis Geräte upgedatet werden -
@amg_666 getestet, mit 50 cm Entfernung und dann mal den Tag, in einen anderen Raum gelegt.
Keine Änderung. -
@stefan_1969
Welche Amazfit hast du? Kann bei deiner Uhr in der Zepp App die Option "Erkennbar" nicht auf "An" eingestellt werden? So schaut es bei meinem Mi Band 6 aus:
Überlege, auf eine andere Uhr umzusteigen, möchte aber das Tracking über ble nicht verlieren. Hatte überlegt mir die Amazfit GTS 4 oder GTS 4 Mini zu kaufen.
-
Hallo.
Ich hab gerade Urlaub und bastel an ESPresense rum.
Installiert ist alles. Ich bekomme auch halbwegs gute Distanzwerte. Meine Probleme sind nur:- Wie kann ich die Distanzwerte direkt auswerten? In dem Tutorial wird eine Anwesenheit über Zeitstempel realisiert. Für mich sind die Distanzwerte, welche in der JSON vorliegen, interessanter. Habe nur keine Ahnung, wie ich da rankommen soll.
- Wenn ich aus 4m Entfernung nun mein iPhone an den ESP herantrage, dann verringert sich die Distanz nur ganz langsam über 30-45 Sekunden (Handy befindet sich dann aber schon fast die gesamt Zeit wenige cm neben dem ESP). Wenn ich dagegen mein Smartphone an den ESP halte, zeigt er mir sofort, dass es "Close" ist. Während er unmittelbar nach Entfernen des iPhones auch anzeigt, dass es "Left" ist; es scheint also auch schnellere Detektion zu geben. Kann man die Distanzberechnung irgendwie beschleunigen?
-
@smarthome2020
An die Distanzwerte im json kommst du über blockly und JS dran. Da müsste Google genug Treffer bringen. Benutze selbst ausschließlich JS und kein blockly, zu JS könnte ich bei Bedarf Infos teilen. (bin selbst ausschließlich mobil online, da auch im Urlaub)ESPresense liefert alle 5s Werte, sammelt aber im Hintergrund so viele Daten wie möglich. Geräte senden unterschiedlich oft advertisements, das kann natürlich zu Trägheit führen. Im json von espresense sind Distanz und RAW Werte. Distanzwerte sind gefiltert. MedianOf3 und OneCoin. Wie stark OneCoin filtert ist mir unbekannt. Median über letzte drei Werte "verschluckt" auf jeden Fall einen Wert. Dadurch werden aber einzelne Ausreißer konsequent ignoriert.
-
@giuseppes
Über die Distanz lasse ich es nun lieber doch, da es teilweise bis zu drei Minuten dauert bis das Licht ausgeht . Hab’s nun über den ESP selber gemacht . Habe max. logdistanz auf 3m. Nun sitze ich 4,5 m
vom ESP weg, dieser zeigt mir komischerweise eine Distanz von 1m an. Hat schon mal einer eine Kalibrierung vorgenommen? -
@smarthome2020
Zunächst würde ich die Streuung beobachten. Wenn diese halbwegs erträglich ist und allgemein die Distanz nicht passt, müsste die Einstellung "Absorbtion" verändert werden. Wie die Einstellung auf der webui lautet, kann ich nicht sagen. Default ist im Code 3.5 eingestellt.Hab selber die Erfahrung gemacht, dass alle esp32 unterschiedlich gut / schlecht empfangen. Auch mit Veränderung der Absorbtion wurde es nicht optimal. Am besten einfach versuchen mit den gesendeten Werten zu arbeiten, unabhängig von der tatsächlichen Distanz. Hatte auch schon was für Triangulation programmiert, war ein Reinfall da einfach zu ungenau.
-
@giuseppes
Was genau meinst du mit Streuung ? Wie kann ich sie beobachten ? -
@smarthome2020
Damit meine ich, in welchen Bereichen sich der Messwert ändert, wenn du die reale Distanz konstant hältst. Würde hier eine konstante Distanz austesten, die einem realen Szenario entspricht.Ich würde in einem Skript einen Trigger auf den espresense Datenpunkt setzen, den dich interessierenden Wert aus dem JSON extrahieren und in ein Array hinzufügen. Nach x Minuten, Array in Konsole ausgeben.
Einfacher: den Wert direkt in Konsole ausgeben, ohne Array.
Noch einfacher: Mit Adleraugen den Datenpunkt über Notebook Browser beobachten. Mit Mouseover sieht man den kompletten JSON.Wenn espresense für dein Geschmack zu stark filtert (=etwas träger), dann kannst du den raw Wert beobachten und ggf selbst nachbearbeiten. Die Übertragungsrate von 5s kannst du nicht verändern.
-
Mit der GTR2e und der GTR4 funktioniert es auch. die haben wir im Einsatz