NEWS
Anwesenheitserkennung mit ESPresense
-
Ich bin gerade auf der Suche nach einer raumbezogenen Anwesenheitserkennung. Zuerst habe ich diese Anleitung versucht, scheitere jedoch daran, dass der Sketch wohl um 3% zu groĂ ist fĂŒr das ESP32 DevkitV1.
Jetzt bin ich auf ESPresense gestoĂen, welches allerdings offiziell nur mit Home Assistant funktioniert. Da es aber MQTT nutzt, dĂŒrfte es doch eigentlich auch im iobroker nutzbar sein. Leider taucht es bei mir im MQTT-Adapter (Sonoff) nicht auf.
Hat jemand schon eine solche Anwesenheitserkennung umsetzen können? Hat vielleicht schon eine der beiden Lösungen erfolgreich im Einsatz und kann mir Tipps geben. -
Ich bin gerade auf der Suche nach einer raumbezogenen Anwesenheitserkennung. Zuerst habe ich diese Anleitung versucht, scheitere jedoch daran, dass der Sketch wohl um 3% zu groĂ ist fĂŒr das ESP32 DevkitV1.
Jetzt bin ich auf ESPresense gestoĂen, welches allerdings offiziell nur mit Home Assistant funktioniert. Da es aber MQTT nutzt, dĂŒrfte es doch eigentlich auch im iobroker nutzbar sein. Leider taucht es bei mir im MQTT-Adapter (Sonoff) nicht auf.
Hat jemand schon eine solche Anwesenheitserkennung umsetzen können? Hat vielleicht schon eine der beiden Lösungen erfolgreich im Einsatz und kann mir Tipps geben.@1337gut
Du musst die einen zusĂ€tzlichen MQTT-Adpater installieren, nimm fĂŒr den Anfang den MQTT Server/Client und setze diesen als Server auf.
ACHTUNG: Pass auf das du einen anderen Port als beim Sonoff-Adapter nimmst.
Dann bekommst du unterhalb vonmqtt.0die Datenpunkte.Der Sonoff ist KEIN MQTT-Adapter. Der Simuliert soviel wie nötig den Tasmota-GerĂ€ten gegenĂŒber um deren Daten abzugreifen und diese zu steuern, mehr nicht. Alles was der nicht kennt ignoriert dieser.
-
@1337gut
Du musst die einen zusĂ€tzlichen MQTT-Adpater installieren, nimm fĂŒr den Anfang den MQTT Server/Client und setze diesen als Server auf.
ACHTUNG: Pass auf das du einen anderen Port als beim Sonoff-Adapter nimmst.
Dann bekommst du unterhalb vonmqtt.0die Datenpunkte.Der Sonoff ist KEIN MQTT-Adapter. Der Simuliert soviel wie nötig den Tasmota-GerĂ€ten gegenĂŒber um deren Daten abzugreifen und diese zu steuern, mehr nicht. Alles was der nicht kennt ignoriert dieser.
@bananajoe Geil, das war's. Ich dachte immer der Sonoff-Adapter wÀre (auch) ein vollwertiger MQTT-Server. Vielen Dank!
-
Ich bin gerade auf der Suche nach einer raumbezogenen Anwesenheitserkennung. Zuerst habe ich diese Anleitung versucht, scheitere jedoch daran, dass der Sketch wohl um 3% zu groĂ ist fĂŒr das ESP32 DevkitV1.
Jetzt bin ich auf ESPresense gestoĂen, welches allerdings offiziell nur mit Home Assistant funktioniert. Da es aber MQTT nutzt, dĂŒrfte es doch eigentlich auch im iobroker nutzbar sein. Leider taucht es bei mir im MQTT-Adapter (Sonoff) nicht auf.
Hat jemand schon eine solche Anwesenheitserkennung umsetzen können? Hat vielleicht schon eine der beiden Lösungen erfolgreich im Einsatz und kann mir Tipps geben. -
@1337gut Was verwendest du denn als Beacon?
Meine Versuche habe ich vor 1 Jahr eingestellt, da alle GerÀte entweder utopisch teuer waren oder nach 4-6 Wochen die Batterien leer waren. -
@1337gut Was verwendest du denn als Beacon?
Meine Versuche habe ich vor 1 Jahr eingestellt, da alle GerĂ€te entweder utopisch teuer waren oder nach 4-6 Wochen die Batterien leer waren.Habe gerade eine erste Anwesenheitserkennung in Betrieb genommen und brauchbare Beacons liegen nach meiner aktuellen Recherche bei 10-20⏠je StĂŒck.
Dabei gibt es wohl derzeit 3 brauchbare Optionen zum Innenleben.
- Nordic Semiconductor nrf528xx (wohl am hÀufigsten verbreitet)
- Texas Instruments CC2640
- Dialog SemiConductor DA14531 (lt. feasycom die lÀngste Batterielebenszeit)
Ganz billiger Kram bei Beacons hÀlt auch gerne mal nur 1 Monat. Was in den beliebten Gigaset Beacons steckt, konnte ich nicht heraus finden, gehe aber basierend auf deren Markteintritt von Àlteren ChipsÀtzen aus.
Alle Versionen findest Du zB bei feasycom im Portfolio. Ich habe leider bei AliExpress nrF52810 bei einem anderen Hardwarelöter gekauft und der Schwachpunkt ist die App fĂŒrs Smartphone, die nirgendwo funktioniert und lĂ€uft um die standard settings zu verĂ€ndern. Zur App habe ich auch keine Referenz bei feasycom.
Per Standard Settings kann ich die Beacons zwar nutzen und rechne mit einer Batterielaufzeit von 1 Jahr. Mit eigenen Settings wĂŒrde ich aber vermutlich das Doppelte erreichen.
-
Was ich auch öfters gelesen habe, ist dass Leute ein Xiaomi MiBand nutzen. Die halten ~2 Wochen und sind wiederaufladbar und man hat noch eine (halbwegs) smarte Uhr. :D FĂŒr ~20⏠eine Option fĂŒr jene, die noch keine (bessere) Smartwatch haben.
-
Ist das noch aktiv hier?
Ich bin auch gerade am Testen. Das mit den Beacons habe ich schon wieder aufgegeben. Ich möchte nicht extra was mit mir herum tragen.
Meine Amazfit funktioniert leider auch nicht. Sobald die mit dem Smartphone gekoppelt ist, verschwindet sie.Auf der Seite von espresence werden zwei Apps erwÀhnt, die Beacons emulieren und das bin ich aktuell mit zwei esp32 am Testen.
Der eine ist an meinem Schreibtisch und soll versuchsweise die Schreibtischlampe an machen, wenn ich da sitze bzw nach einer Minute wieder aus machen wenn ich aufstehe.
Gesteuert wird es von einem Blockly-Script.
Den zweiten habe ich im Wohnzimmer am Sofa. Der ist noch nicht integriert und sammelt gerade nur Daten - also die Entfernung und meldet sie per mqtt an den iobroker. -
Ist das noch aktiv hier?
Ich bin auch gerade am Testen. Das mit den Beacons habe ich schon wieder aufgegeben. Ich möchte nicht extra was mit mir herum tragen.
Meine Amazfit funktioniert leider auch nicht. Sobald die mit dem Smartphone gekoppelt ist, verschwindet sie.Auf der Seite von espresence werden zwei Apps erwÀhnt, die Beacons emulieren und das bin ich aktuell mit zwei esp32 am Testen.
Der eine ist an meinem Schreibtisch und soll versuchsweise die Schreibtischlampe an machen, wenn ich da sitze bzw nach einer Minute wieder aus machen wenn ich aufstehe.
Gesteuert wird es von einem Blockly-Script.
Den zweiten habe ich im Wohnzimmer am Sofa. Der ist noch nicht integriert und sammelt gerade nur Daten - also die Entfernung und meldet sie per mqtt an den iobroker.@stefan_1969 Guten Abend, đ
Bin gerade durch Zufall ĂŒber deinen Beitrag gestolpert bist du schon weitet in deinem blockly und wenn ja kannst du es evtl mir zu VerfĂŒgung stellen stehe auch gerade an dem Punkt
Beste GrĂŒĂe
Silvan -
@stefan_1969 Guten Abend, đ
Bin gerade durch Zufall ĂŒber deinen Beitrag gestolpert bist du schon weitet in deinem blockly und wenn ja kannst du es evtl mir zu VerfĂŒgung stellen stehe auch gerade an dem Punkt
Beste GrĂŒĂe
SilvanIch bin auch interessiert . Wir haben aktuell das Problem, dass einige Scripte nur sinnvoll in jeder Situation funktionieren können , wenn eine anwesenheitserkennung im Raum möglich ist .
Muss aber ein Armband sein :D -
@smarthome2020 ich habe die app Beacon Simulator Android funktioniert eigentlich super in Verbindung mit dem esp32 und dann via mqtt die Daten an den iobroker. Nur jetzt weiĂ ich noch nicht so recht weiter bin noch am ĂŒberlegen habe auch aktuell Nachtdienst also weniger zeit fĂŒr IO. Kannst du deine skripte evtl zur VerfĂŒgung stellen fĂŒr eine grobe Ăbersicht??
WĂŒrde mich auch aktiv an der Weiterentwicklung beteiligen. WĂŒrde gerne damit die Lichsteuerung gröĂtenteils ĂŒbernehmen und auch evtl bei meinem Putzwahn im Haus, die Musik mich verfolgen lassen.
Und halt eine generelle zusÀtzliche anwesenheitserkennung..LG
Silvan -
Hallo,
fĂŒr alle interessierten ich habe dieses Youtube-Video gefunden wie man eine anwesenheitserkennung mit Espresense und iobroke rumsetzen kann.Ich habe dies mit einer Apple-Watch getestet und funktioniert.
Meine Frage wÀre noch das skript hier wurde von einem User vorgeschlagen dies mit folgenden Punkten umzusetzen um die Zeitsteuerung nicht zu haben.- Triggern auf Aktualisierung des ESPresence-Datenpunkt
- Iobroker Variable-Anwesenheit auf Wahr aktualisieren
- Stoppe 30 Sekunden-Timeout
- Im Timeout: Variable-Anwesenheit auf Falsch aktualisieren
Punkt 1-2 war kein Problem allerdings verstehe ich Punkt 3 und 4 nicht wie soll dies mit einem Stop und einer im Timeout funktionieren.
Hat hier vielleicht jemand einen Vorschlag? -
Hallo,
fĂŒr alle interessierten ich habe dieses Youtube-Video gefunden wie man eine anwesenheitserkennung mit Espresense und iobroke rumsetzen kann.Ich habe dies mit einer Apple-Watch getestet und funktioniert.
Meine Frage wÀre noch das skript hier wurde von einem User vorgeschlagen dies mit folgenden Punkten umzusetzen um die Zeitsteuerung nicht zu haben.- Triggern auf Aktualisierung des ESPresence-Datenpunkt
- Iobroker Variable-Anwesenheit auf Wahr aktualisieren
- Stoppe 30 Sekunden-Timeout
- Im Timeout: Variable-Anwesenheit auf Falsch aktualisieren
Punkt 1-2 war kein Problem allerdings verstehe ich Punkt 3 und 4 nicht wie soll dies mit einem Stop und einer im Timeout funktionieren.
Hat hier vielleicht jemand einen Vorschlag?@leachim200 ich glaube er meint mit "stoppe" das eine Zeit von 30 Sek gestoppt werden soll (mittels Timeout).
Und dann hast du im Blockly 2 verschiedene Programme laufen, dass eine ist Punkt 1/2 und setzt bei Aktualisierung Anwesenheit auf Wahr und das andere Punkt 3/4 lÀsst einen Timer laufen und setzt danach die Variable auf Falsch -
@leachim200 ich glaube er meint mit "stoppe" das eine Zeit von 30 Sek gestoppt werden soll (mittels Timeout).
Und dann hast du im Blockly 2 verschiedene Programme laufen, dass eine ist Punkt 1/2 und setzt bei Aktualisierung Anwesenheit auf Wahr und das andere Punkt 3/4 lÀsst einen Timer laufen und setzt danach die Variable auf FalschHier mal ein Update an Interessierte. Das Skript aus dem o.g. youtube Tutorial habe ich so Àhnlich umgesetzt, der Erfolg war aber eher bescheiden und wirklich funktioniert hat das alles nicht.
Ich hab das jetzt mal ganz simpel umgesetzt: Im Moment habe ich in 5 RĂ€umen D1 Mini ESP32... mit ESPresence. Arbeitszimmer im Keller, Wohnztimmer/Flur/Wintergarten im EG, Schlafzimmer im OG und GartenhĂŒtte (im Garten
)
2 * Blockly, ein Skript das im Minutentakt prĂŒft, ob Zeitstempel in den RĂ€umen "abgelaufen" sind, sprich >60 Sekunden und ein 2. Skript, was bei Aktualisierung eines Zeitstempels eine Variable auf den entsprechenden Raum setzt. Das Skript lĂ€uft ziemlich gut, Finetuning mache ich dann nur noch in den D1 Minis (Maximale Grenze ab wann er zĂ€hlen soll feinjustieren).Skript1:

Skript2 (nur Auszug, geht noch weiter mit anderen RĂ€umen):

Wenn ich mit meinem Handy von einem Raum in den nĂ€chsten gehe, springt es sehr schnell um (habe mir dafĂŒr testhalber in der VIS eine Ausgabe der Variable Position_Andreas_Text eingefĂŒgt).
Off Topic: Die D1 Minis verbaue ich jetzt noch in vorhandene GerĂ€te, 1. sieht man dann den hĂ€sslichen D1 nicht, 2. spart man sich ein zusĂ€tzliches USB Netzteil fĂŒr die Stromversorgung. Ein D1 ist z.B. in einem IKEA Vindrikting mit verbaut, da ist super viel Platz drin, einen 2. baue ich grade in einen Amazon Echo Dot 2. Generation ein (der hat genĂŒgend Luft zwischen Platine und Lautsprecher).
-
Hier mal ein Update an Interessierte. Das Skript aus dem o.g. youtube Tutorial habe ich so Àhnlich umgesetzt, der Erfolg war aber eher bescheiden und wirklich funktioniert hat das alles nicht.
Ich hab das jetzt mal ganz simpel umgesetzt: Im Moment habe ich in 5 RĂ€umen D1 Mini ESP32... mit ESPresence. Arbeitszimmer im Keller, Wohnztimmer/Flur/Wintergarten im EG, Schlafzimmer im OG und GartenhĂŒtte (im Garten
)
2 * Blockly, ein Skript das im Minutentakt prĂŒft, ob Zeitstempel in den RĂ€umen "abgelaufen" sind, sprich >60 Sekunden und ein 2. Skript, was bei Aktualisierung eines Zeitstempels eine Variable auf den entsprechenden Raum setzt. Das Skript lĂ€uft ziemlich gut, Finetuning mache ich dann nur noch in den D1 Minis (Maximale Grenze ab wann er zĂ€hlen soll feinjustieren).Skript1:

Skript2 (nur Auszug, geht noch weiter mit anderen RĂ€umen):

Wenn ich mit meinem Handy von einem Raum in den nĂ€chsten gehe, springt es sehr schnell um (habe mir dafĂŒr testhalber in der VIS eine Ausgabe der Variable Position_Andreas_Text eingefĂŒgt).
Off Topic: Die D1 Minis verbaue ich jetzt noch in vorhandene GerĂ€te, 1. sieht man dann den hĂ€sslichen D1 nicht, 2. spart man sich ein zusĂ€tzliches USB Netzteil fĂŒr die Stromversorgung. Ein D1 ist z.B. in einem IKEA Vindrikting mit verbaut, da ist super viel Platz drin, einen 2. baue ich grade in einen Amazon Echo Dot 2. Generation ein (der hat genĂŒgend Luft zwischen Platine und Lautsprecher).
-
@amg_666 sehr cool werde ich nachher mal testen hast du eventuell den blockly Export noch fĂŒr mich ??
Beste GrĂŒĂe
Silvan@navlis sagte in Anwesenheitserkennung mit ESPresense:
hast du eventuell den blockly Export noch fĂŒr mich
Bitteschön, musst du aber noch einkĂŒrzen, weil die Skripte jeweils doppelt sind (einmal Handy, einmal Fitnessarmband):
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="schedule" id="^Vg{iwQ~PHBeu2{!WK[V" x="-1687" y="-1812"> <field name="SCHEDULE">{"time":{"start":"00:00","end":"24:00","mode":"minutes","interval":1},"period":{"days":1}}</field> <statement name="STATEMENT"> <block type="controls_if" id=".0p?cR|N8*q-e5PScU_S"> <value name="IF0"> <block type="logic_compare" id="g/;v{lR6aNfQ#!.eu5ON"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="L4w$GoBeL[OO9=Y|mjZY"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.exp:20.arbeitszimmer</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="SxuyPbN_k[GOZj$K;cVE"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="9agp,/U%z}!Bd_H8$t0-"> <field name="NUM">1</field> </shadow> <block type="time_get" id="pty?4J^?Ybk/rUf]f,.U"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number" id="/xIm4DM9PIGdPmXk?)VW"> <field name="NUM">1</field> </shadow> <block type="math_number" id="D}1ae$^v0z..^t}=eJsq"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="f$HbwQ[87i5?24^.7T1k"> <value name="IF0"> <block type="logic_compare" id="~[kEF|j*UGj@3Fv_x*yH"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="Ec/;/:Z86V);HU?7:=7?"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.exp:20.flur</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="o7aWD5Sy3vFpsCBN0_r/"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="a}UlqtiDQp[2q%J/7vj9"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="Tm$qg72Gy{okfVD{,CYq"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="WOBWKqkfobsRSSv!t8gL"> <value name="IF0"> <block type="logic_compare" id="o;phV40E[5CHg|+!+:O%"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="[138|=cgne=kIWsMMa2$"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.exp:20.schlafzimmer</field> </block> </value> <value name="B"> <block type="math_arithmetic" id=")!|3.v4wf08LWOrA*po;"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="ZUM6W.qP9`~](Vi-0bs8"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="gBj9BD@L[X9hrCR^u447"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="iFbC[LWje7WEfj)=hcDm"> <value name="IF0"> <block type="logic_compare" id="JfNTFcL5N^J^MHKG#3pC"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="_@qx9d*Glms_t%Ysov{V"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.exp:20.wintergarten</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="p=),SS(S,v(sjbRx5n8+"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="NYeK$Y~N^xYOB9Kd`t.^"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="z]V./})y=cuymj313^K;"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="N@k[juPDG~/6[2h?GRh*"> <value name="IF0"> <block type="logic_compare" id="mqzz:a7bqh?-]GBnQ!bX"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="9-**H$oa-sY^]tKuyioG"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.exp:20.gartenhaus</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="`t!%|n}RcvkhzWHfC7!q"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="8B!O^O1^!Rl:Z9aTr+oV"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="u9}sn}!M[2!=Shp4/nX["> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="Q1=PLKcC5Xiunf@qxFQL"> <value name="IF0"> <block type="logic_compare" id="2%NGpO+LP@iS-c.N}/JH"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="f6x$f+;tQE6:,3hy8j;d"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.exp:20.wohnzimmer</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="^o?MzqyOo|6J-~$Hrr97"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="$5Il7RXaG(t:H9G~=/ha"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="s_*P+|~HNCVGg:rC:Z0_"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="NkEg6AOJshJ1p4rAJ=Tn"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Position_Andreas</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="vw4oO8.EbTYnvPVk`|z`"> <field name="NUM">-1</field> </block> </value> <next> <block type="update" id="8u3;oUE2u]YXIkO@sAkL"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Position_Andreas_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id=")n;.}OzEp1#cq:*_CC*-"> <field name="TEXT">???</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </statement> <next> <block type="controls_if" id="6}`;5=.Hc+jetS`?=3Ie"> <value name="IF0"> <block type="logic_compare" id="}#`9)fd@1ft9ej`B)U;`"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="rFK^Tx7I@s*k4_E?QDeD"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.mifit:f54207d89c63.arbeitszimmer</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="V%yvC(5d(dyRl2eXAcQ?"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="_Brg7nb.@@)2kFU^W%_E"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="aa##nkyk$J1^nGq[Qz*)"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="WDIW}(_)*6fB+bOQHj~!"> <value name="IF0"> <block type="logic_compare" id="4kG5$YBMAhq9}:g-@#x5"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="xpDVqv3[;_GpyAf$?OD3"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.mifit:f54207d89c63.flur</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="E0|}}4|c1`mdmlT8}}B_"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="3S1,f0g1iZaJ(.*X(nQ@"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="r:{$W~f-M{w!j%n[yp8."> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="Q%p@-1cE8/7k,ch.jusE"> <value name="IF0"> <block type="logic_compare" id="`ayI?hukL[MCPSP{jVjr"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="RWoyY.U/dx:5!~OyYa;r"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.mifit:f54207d89c63.schlafzimmer</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="]B0-8@U%I60,M_xDDB)W"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="SY@zBejVtf*W{O8J,Zw?"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="6a[ULlqqWu07xgDcFnNt"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="?K#OiOB#FZ?Rnzy+$%+Z"> <value name="IF0"> <block type="logic_compare" id="/o2O68]gv#yc#E1IKWwO"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="]dDy-wesF6N*vJm:*s/r"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.mifit:f54207d89c63.wintergarten</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="z8DoG?ozW-$g`tDp*Y@m"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id=",}I3/M{xh@NmIryGU~7|"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="{Ns#M5{`BYRjL+xBUP`/"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="i*f7#CD/!=n}8*{JJa.5"> <value name="IF0"> <block type="logic_compare" id="pEtH3*f*.yCz1YpN,/12"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="Yp(k{PG|f44qi9-U-)G0"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.mifit:f54207d89c63.gartenhaus</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="^2t3n7!!j}|7N`[I9[0G"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="WGS$tZX7kA1FW_ibk6iR"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="+=6$u%=ivRjqBVmXH$Mb"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id=",zht8UnEHqKf5F=4y#ds"> <value name="IF0"> <block type="logic_compare" id="sP?QjHYT^$xYnZ:JUgy9"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="OGTPM.uc,q[3OQSsky5Y"> <field name="ATTR">ts</field> <field name="OID">mqtt.0.espresense.devices.mifit:f54207d89c63.wohnzimmer</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="e~2~{jwa9s/d#!A-{G+h"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="time_get" id="@5f?-;.))08:3G=ZxPKM"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_number" id="X9=-TEK:~UuA7iRt-@,*"> <field name="NUM">60000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id=",Zo*`]-yZC3Q7E0u?iZ3"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Positon_Andreas_Mi_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="VXR0h1Cs4)E3~o,Jyu8k"> <field name="TEXT">???</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> <block type="on_ext" id="?ubjY4H%Tu_.NRm!=HDh" x="-1659" y="-928"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="i$Jh,vSEwaev.vDI^Rfr"> <field name="oid">mqtt.0.espresense.devices.exp:20.arbeitszimmer</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="om]%g{8,uie+%zaFbHW@"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Position_Andreas_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="URXOV_fBtGKt}CQAjgGe"> <field name="TEXT">Arbeitszimmer</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="Y4sz(0j_[({viMBVcLF?"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="rk,#)%1+dK$9$.u_e*;F"> <field name="oid">mqtt.0.espresense.devices.exp:20.flur</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="oVqzeIh}v`|VL..LSBhp"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Position_Andreas_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="$I:9j_MUrG3+?8`%XKMU"> <field name="TEXT">Flur</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="%=V$[G`c.nm`jS_(_g$N"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="GOrC-r`K:y+p3Ry+e;(R"> <field name="oid">mqtt.0.espresense.devices.exp:20.gartenhaus</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="lr:v]1l/FvHIS%!ldN6f"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Position_Andreas_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="!oRop`Q]su]ymNt0eZZ8"> <field name="TEXT">Gartenhaus</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="nr@NC^Qq]-REcf(74fj8"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="4*~=MIO_qVRb`Q,|muMk"> <field name="oid">mqtt.0.espresense.devices.exp:20.schlafzimmer</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="yan0h|:9!nxmRbR,h8=X"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Position_Andreas_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="7reVF8U?z6]_6m]1dd$P"> <field name="TEXT">Schlafzimmer</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="/^3~.m#k%8T@w0O7],tC"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="yyP=FW.3uh7=`H7[0XQ/"> <field name="oid">mqtt.0.espresense.devices.exp:20.wintergarten</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="9`=V^[M$ux$asKF19eP4"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Position_Andreas_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="bHJmaDfX)9)z4v2-SW]k"> <field name="TEXT">Wintergarten</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="Q+o,:[j|q+K9_GKtW^/h"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="9/{lgw[.u{@bOXC%noh!"> <field name="oid">mqtt.0.espresense.devices.exp:20.wohnzimmer</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="Jg.e}o3]03D@57h7Q6Jx"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Position_Andreas_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="VXrT]r4LFif-}lw-Je#Q"> <field name="TEXT">Wohnzimmer</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="on_ext" id="?,nI+L{$OgM2{HYz$$@r" x="-937" y="-937"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="%p47_hNI+:o*3|qfezT8"> <field name="oid">mqtt.0.espresense.devices.mifit:f54207d89c63.arbeitszimmer</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="U]s{~})r!)Nfu1Vzh;Z7"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Positon_Andreas_Mi_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="wqmu,pBe(]-~Tc^gbu~A"> <field name="TEXT">Arbeitszimmer</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="N[{|:UV:J0.d2FM,zfAY"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="~C{|%ly1U#Wn,`5R]H|w"> <field name="oid">mqtt.0.espresense.devices.mifit:f54207d89c63.flur</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id=".S=WvewbF5,r9Lx]Hm.@"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Positon_Andreas_Mi_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="!H3CPBQ-1|KuMBPp`U$4"> <field name="TEXT">Flur</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="v==vw*#GwAGa8*^/Bn:J"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="$+CfRN87@Dq8R~dSL3B0"> <field name="oid">mqtt.0.espresense.devices.mifit:f54207d89c63.gartenhaus</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="3vNGNRMOX]V%Ot6B`SM7"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Positon_Andreas_Mi_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="?bpPP.#U[JPSkX-::s_+"> <field name="TEXT">Gartenhaus</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="7){.[EqIF*o,}8[3Pvb3"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="_[li7_jsy~j9IgPIq1@j"> <field name="oid">mqtt.0.espresense.devices.mifit:f54207d89c63.schlafzimmer</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="8O`,]Hn@zJ00]+6-Vm[v"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Positon_Andreas_Mi_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="pVeT}Vb/~*#Kryg.oP]$"> <field name="TEXT">Schlafzimmer</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="ejmDVTPwswc%Y9M2VI4q"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="?L^3sMl6UPp;Rbn``4II"> <field name="oid">mqtt.0.espresense.devices.mifit:f54207d89c63.wintergarten</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="Y+.{qNUmb6.h8KIov[Hv"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Positon_Andreas_Mi_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="mlNIR}:pDEtzw%V1Rl+G"> <field name="TEXT">Wintergarten</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="ufpWxhA_/!g+EM9wK[*y"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="9@|*KutgWS^H%A]Ti{9U"> <field name="oid">mqtt.0.espresense.devices.mifit:f54207d89c63.wohnzimmer</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="HQU2|fkNrfTpCw`tpOVu"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Positon_Andreas_Mi_Text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="d+ocX.Cy-]ny;2!No1ZU"> <field name="TEXT">Wohnzimmer</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml> -
Mal eine Frage: erzielt mit den ESP32 irgendjemand ein auch nur halbwegs brauchbares Ergebnis? Bei mir zeigen die Dinger z.B. bei der Entfernung irgendwas an, aber zu 95% nichts, was der realen Entfernung entspricht. Mein Handy liegt 30-50cm neben dem ESP32 - und plötzlich erkennt er das Handy als nicht mehr im Raum (bzw. in der NĂ€he). So ist das Zeugs fĂŒr mich zumindest nicht brauchbar, aber vielleicht mache ich ja auch etwas falsch...
-
Mal eine Frage: erzielt mit den ESP32 irgendjemand ein auch nur halbwegs brauchbares Ergebnis? Bei mir zeigen die Dinger z.B. bei der Entfernung irgendwas an, aber zu 95% nichts, was der realen Entfernung entspricht. Mein Handy liegt 30-50cm neben dem ESP32 - und plötzlich erkennt er das Handy als nicht mehr im Raum (bzw. in der NĂ€he). So ist das Zeugs fĂŒr mich zumindest nicht brauchbar, aber vielleicht mache ich ja auch etwas falsch...
@higginsd Ne, die Teile sind schon extrem ungenau (kann man wohl auch fĂŒr so Billigteile wie ESP32 nicht anders erwarten...).
In der aktuellen Version (ESPresense Version: v3.1.0) kann man aber noch im Webfrontend nachjustieren.
Mein Handy liegt grade direkt vor einem D1 Mini, laut DP ist es 63cm entfernt. Mein mifit Armband ist ca 60cm vom D1 entfernt, DP sagt 1,69m.
Also zum ermitteln ob sich was eingebucht hat ist es ok, aber Entfernungen messen kannst du imho vergessen. -
Wie habt ihr denn eure Apple Watch eingebunden bekommen? Ich habe eine Anleitung gesehen, dazu wurde allerdings ein Mac benötigt
Die Entfernung klappt bei mir relativ zuverlĂ€ssig. Ich wĂŒrde sagen +/- 20%@darkdevil so wie verdrahtet das in sein Video zeigt. Klappte wunderbar und ist sehr zuverlĂ€ssig. Hab das nur in blockly ein bisschen anders gemacht als er.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden