NEWS
MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32
-
@giuseppes okay, da muss ich aber wieder die Kabel hinstecken, oder?
-
@Wuschl jupp
-
@giuseppes
Hallo guiseppes, ich habe das mit den Rules noch nicht ganz verstanden. Ich habe einen G-tag zum testen, der funktioniert einwandfrei. Ich benutze sie um mit dem Auto das Hoftor und die Garage zu öffnen. Jetzt habe ich einen 2. im anderen Auto, der wird angezeigt, macht auch das was er machen soll, aber er löst mehrmals am Tag die Öffnung aus obwohl er nicht bewegt wird. Ich habe deine Rules übernommen, muss ich da etwas ändern bei 2 G-Tags?Rule1 ON System#Boot DO iBeacon 1 endon Rule2 ON System#Boot DO BLEAlias 7C2F80C3A094=SeatLeon 7C2F80C4633E=AudiA4 endon Rule3 ON System#Boot DO Backlog iBeaconPeriod 10; iBeaconOnlyAliased 1; BLEMaxAge 20 endon Rule1 1 Rule2 1 Rule3 1
Schöne Grüße
-
@wuschl
Hi wuschl, die Frage lautet hier: kommen die Werte der g-Tags im ioBroker an? Wie stark schwanken die rssi Werte? Evtl hast du deine Grenzen so eng gesetzt, dass die Streuung dafür sorgt, dass das g-Tag mal nah und mal fern erkannt wird. Ich weiß nicht, ob Tasmota irgendwie filtert. Wenn nicht, müsstest du das in ioBroker machen.
Schritt 1: beobachte die eingehenden Werte und deren Streuung. -
@giuseppes Die Werte kommen an, beide Tags öffnen genau wie sie sollen. Grenzen habe ich noch keine gesetzt, sobald sie erkannt werden, sollen sie öffnen. Was mir aufgefallen ist, daß der 2. G-Tag um einiges länger braucht, bis er erkannt wird.
Die Schwankungen gehen von -54 bis -74, habe ich schon Stundenlang beobachtet.
-
@wuschl
Evtl liegt es an der Option BLEMaxAge 20 von der dritten Regel? Ich weiß nicht, wie du Anwesend steuerst. BLEMaxAge steuert seitens Tasmota, nach welcher Zeit ein BLE als Abwesend angezeigt wird (keine Ahnung, wie das über mqtt mitgeteilt wird). Evtl senden deine Tags zu selten oder Tasmota findet die nicht immer. Du hast als Scan Intervall 10s drin. Bedeutet, wenn Tasmota einmalig den Tag nicht findet, könnte es beim nächsten Scan schon zu spät sein.P.S.: du hattest auch schon meine Firmware geflashed. Hatte diese bei dir eigentlich funktioniert oder hattest du auch ein Bootloop o.ä. wie Utze86?
-
@giuseppes okay, das könnte sein. Sollte ich die BLEMaxAge ganz entfernen, oder auf 50 setzen? edit: (geht nur Max 22)
Das wird etwas schwieriger zu überwachen, da der Age über mqtt nicht mit gesendet wird.Über mqtt bekomme ich ein ganz klares "ON" oder "OFF", das reicht mir vorerst. Aber der G-Tag muss irgendwann das "ON" verlieren, da ich das als Auslöser benutze. Komisch ist halt, daß es nur der eine macht, darum die Frage ob ich an den Rules etwas ändern muss wenn ich einen 2. G-Tag benutze. Ich werde mir noch einen bestellen, vielleicht ist der G-Tag ja fehlerhaft.
Klar ist mein Ziel das ganze langsam zu erweitern, z.B. wenn ich aus der Garage fahre, dann wird das Hoftor auch beim ausfahren automatisch geöffnet. Ob ich das mit den Rssi Werten hin bekomme werden wir sehen. Bei Schwankungen zwischen -54 und -74 sollte es funktionieren.Ich habe deine Fimware geflasht, konnte in die Maske alles eingeben, Bootloop ist mir nichts aufgefallen. Aber mir war das dann irgendwie zu kompliziert, wusste nicht mehr wie weiter, bin nur ein Laie.
Dann bin ich zurück zu Tasmota. -
@wuschl
Ich würde zunächst prüfen, wie oft die g-Tags überhaupt senden. Wenn du ein Android Handy hast, kann ich die folgenden Apps empfehlen[https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp](nRF Connect)
oder
[https://play.google.com/store/apps/details?id=net.alea.beaconsimulator](Beacon Simulator)
Evtl kannst du den Scan Intervall verkürzen. Je nach dem wie häufig die g-Tags senden, würde es Sinn machen.
Danke für das Feedback zu meiner Firmware. Damit es weniger Verwirrung in der Anleitung gibt, werde ich das Thema PlatformIO in ein Unterkapitel verschieben. Beim Rest wüsste ich nicht, wie ich das einfacher gestalten soll.
-
@giuseppes danke. die G-tags senden 250.00ms - 398.75ms interval. also an dem sollte es nicht liegen.
Ich werde mich mit deinem Projekt nochmal befassen, muss mir sowieso noch einen 2. Shelly zu legen. Ich bin schon an den mqtt.client Einstellungen gescheitert. Diese Einstellungen die du da beschreibst finde ich bei mir nicht. PlatformIO fand ich jetzt gar nicht so schwierig. Ich bekam die mqtt Verbindung gar nicht erst zum laufen. Aber wie gesagt, ich bin Laie und lerne nur vom lesen und Videos.
Ich lerne mich gerade in Homeassistant ein, vielleicht funktioniert es da ein bischen anders, einfacher... -
@wuschl
Das passt schon. Wenn Tasmota für dich alles bereitstellt was du benötigst, dann bleib ruhig dabei.Wie oben erwähnt, du solltest den scan Intervall von Tasmota verringern. Das ist in der dritten Regel der Parameter iBeaconPeriod. Diesen kannst du auch auf 5 oder 2 einstellen. Wenn mal ein Scan scheitert, geht's nicht so schnell in den Timeout, da noch mehrfach gescannt wird. Die g-Tags scheinen ja oft genug zu senden.
Zu meiner Firmware:
Hast du mosquitto auf deinem System am laufen? Wenn in ioBroker der mqtt.client verwendet wird, muss separat auf dem Linux System ein mqtt Server laufen. Bei mir (und bei vielen anderen) ist es mosquitto.
Das ist schon ein guter Hinweis. Werde in der Readme genauer drauf eingehen. Ich fragte hauptsächlich wegen dem Flashprozess. Es ist weiterhin unklar, wieso utze86 Probleme nach der Erstkonfiguration hatte. -
@giuseppes Ich habe den iBeaconPeriod jetzt auf 2, und den BLEMaxAge auf 50. Mal sehen was passiert die nächsten Stunden. Aber das erklärt immer noch nicht warum der eine G-tag das Tor innerhalb von Sekunden öffnet, und der andere soviel länger braucht.
Nein ich habe nur den internen mqtt von iobroker laufen. Wahrscheinlich liegt da das Problem begraben. Aber der HomeAssistant arbeitet ja mit mosquitto, dann könnte es da funktionieren. Der Flashprozess hatte damals sicher geklappt
-
@GiuseppeS
Guten Tag habe mich nachdem ich einige ESP32 gekauft habe in dieses Topic nun eingelesen.
Kenne mich zwar eigentlich gar nicht aus aber habe es mal geschafft auf dem esp die "Standard-Firmware" von ESPresense zu flashen damit wird auch mein Handy schonmal richtig erkannt und hoffentlich auch meine (neue) Uhr welche aber erst nächste Woche oder so kommt.
Nun aber zur Frage bzw Problem Schilderung:
Mein Plan war es eigentlich In jedem Raum einen ESP32 mit der oben genannten Firmware zu flashen über die Distanz einzuschränken wie weit der esp meine Uhr scannt und an iobroker sendet und über die Blockly Skripte den jeweiligen raum als True angibt.
Nun ist die Frage ob sich irgendwelche Vorteile ergeben wenn ich mich tiefer in diese Materie einlese und das so mache wie ihr das beschrieben habt über Shellys ect. oder ob das in meinen Fall keinen wirklichen Mehrwert hat. Aktuell habe ich keine Shelly Plus Geräte verbaut da für mich die "normal" vollkommen reichen bzw ich keinen Vorteil sehe/sah die plus Geräte zu verbauen. Lohnt sich ein Umstieg7Umplanung des Projektes? Funktioniert es aktuell schon sie wie Ihr es wollt?
mfg -
@glowzz
Wieso Shelly statt Standard esp32:
ein esp32 blockiert eine Steckdose ggf ein USB Ladegerät etc und erfüllt mit espresense "nur" den Zweck des Scanners.Mit Shelly Plus Modellen hat man die Möglichkeit, den Scanner Unterputz zu verwenden und es besteht die Möglichkeit Rollläden oder Lichter zu steuern.
Espresense läuft aber ausschließlich auf dem Shelly Plus 2PM, falls dieser eine DualCore CPU hat. Ältere Chargen des 2PM haben SingleCore und alle anderen Shelly Plus Modelle haben definitiv SingleCore. Außerdem kann espresense nicht die Ein- und Ausgänge vom Shelly Plus 2PM (DualCore) steuern.
In Kombi mit Shelly fällt daher wegen der fehlenden SingleCore Unterstützung Espresense raus, da gibt es stattdessen Tasmota. Ich finde die Lösung mit Tasmota nicht optimal und schreibe meine eigene Software.
Ich würde an deiner Stelle die funktionierenden Shelly nicht mit Plus Modellen ersetzen. Außerdem hast du dich bereits mit ESP32 eingedeckt.
-
@giuseppes sagte in MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32:
ein esp32 blockiert eine Steckdose ggf ein USB Ladegerät etc und erfüllt mit espresense "nur" den Zweck des Scanners
Seh ich anders. Ich habe z.B. die IKEA Vindrikning Luftsensoren "smart" gemacht und in den Teilen ist genaug Platz um da auch einen ESP32 mit unterzubringen. Die D1 Mini-Module sind klein genug, dass man sie in "irgendwelchen" Geräten mit unterbringen kann.
Shelly liegt um 30 Euro, ein D1 Mini bei 4 Euro, wenn man mehrere kauft, ist sicherlich auch ein Entscheidungsfaktor. -
@amg_666
Wenn man einige Geräte selbst smart macht, mag das stimmen. Bei mir hält es sich in Grenzen, da kein Bedarf besteht. Vom Kostenpunkt lohnt sich ein Shelly nicht, wenn es nur als Scanner genutzt wird, daher habe ich vom Tausch der alten Shellies abgeraten. -
@GiuseppeS
Ok danke für die rasche Antwort.
Da mein Plan ist die ESP in den Gehäusen der Deckenlampen einzubauen wo ich nur einen Draht mit Dauerstrom raufziehen muss und dann mit nem „Keystone 230V->USB“ den ESP anschließen kann habe ich den Vorteil das die ESP zwar nicht Unterputz aber trotzdem nicht sichtbar sind sowie keine Steckdosen oder ähnliches belegen und meist sogar ziemlich mittig in den Räumen gelegen sind. -
@giuseppes said in MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32:
Meine Hoffnung basiert weiterhin auf UWB und deren Unterstützung mit Arduino-Hardware. Diese Code Basis könnte ich ja weiterhin nutzen, nur die Quelle der Scanner wäre ein anderer State. Es gibt bereits Scanner Hardware zu kaufen, alber die Sender sind das Problem. Diese Scanner funktionieren bisher nur untereinander, nicht mit AirTags o.ä.
Hat sich bzgl. UWB etwas neues ergeben?
Mein Handy kann UWB. Ich möchte gerne das Handy vor oder hinter einer Tür lokalisieren können.
Wie schnell erkennen sich 2 solcher Geräte?
Was wäre ein UWB Gerät, mit dem ich die Lokalisierung des Handys durchführen könnte und wie verheirate ich das mit iobroker? -
@maxpd
Gibt nix neues bzgl UWB. Hab zumindest nichts neues in letzter Zeit dazu finden können. Hab das Gefühl, dass es weiterhin Jahre dauern könnte...