Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      GiuseppeS @Utze86 last edited by

      @utze86
      Die aktuellen Shellies können mit Tasmota scannen, habe ich zufällig auf Facebook in der iobroker Gruppe gelesen. Tasmota konnte zuletzt für die Shellies als alternative Firmware verwendet werden. Daher würde ich Mal behaupten, dass sich das Scannen und die Relais Funktionen nicht gegenseitig ausschließen.
      Habe es selbst noch nicht getestet, da ich noch keine Plus Geräte von Shelly besitze

      1 Reply Last reply Reply Quote 0
      • U
        Utze86 last edited by

        @da-phreak @GiuseppeS danke für die Infos. Damit ist die Akku/Batterie Alternative wohl gestorben.

        Ein Shelly 1 Plus hab ich noch zuhause. Ich werde den mal mit Tasmota flashen und gucken was passiert. Sollte der Shelly die Relais Funktion verlieren habe ich mir überlegt den Shelly mit ESPresens zu Flashen und hinter eine Steckdose zu setzten. Da benötige ich ja nur Dauerstrom und keine Schalterfunktion. Wenn es funktioniert wären die Shellys zwar etwas teurer als die ESP's, dafür hätte ich aber eine Unterputzlösung und bräuchte keine zusätzliche Stromversorgung.

        Gibt es etwas was dagegen spricht?

        Viele Grüße
        Utze86

        B 1 Reply Last reply Reply Quote 0
        • B
          bicmac @Utze86 last edited by

          @utze86 und hast du das mal getestet? ich suche quasi auch sowas in der Art um meine espresence Devices möglichst versteckt im Haus zu verteilen.

          U 2 Replies Last reply Reply Quote 0
          • stolly82
            stolly82 last edited by

            Hey zusammen,

            ich hatte noch 10x ESP32s aus einem anderem Projekt über gehabt und hatte diese heute mal in alte iPhone USB Adapter eingebaut und vorher mit ESPresence geflasht.

            Das Script mit der Trieangulierung ist 1a für Einstöckige Wohnungen, ich hatte es gerade mal im Erdgeschoss ausprobiert.

            Da wir drei Stockwerke haben wäre da nur die Frage, wie man es hier am besten aufsetzt.

            Im Erdgeschoss hatte ich in der Küche / Wohnzimmer drei ESP32 verteilt.

            Dahinter grenzt dann praktisch ein Schlafzimmer, nur eben ein Stockwerk darüber.

            Über dem Wohnzimmer ist ein zweites Schlafzimmer und ein Büro.

            Theoretisch würde ich sagen, dass wenn man mit dem Script alle drei Stockwerke abbildet (natürlich in jedem Stockwerk genügend ESP's verteilt), dass das Script nicht richtig tracken kann, da wir hier praktisch ja in's Dreidimensionale gehen müssen und die Höhe der ESP's mit angegeben werden müsste.

            Ebenfalls wenn man je Stockwerk ein Script laufen lässt, kann es sein, dass man hier praktisch doppelt in unterschiedlichen Stockwerken anwesend ist, oder?

            Habt Ihr sonst eine Idee, wie man das ggf. umsetzen kann?

            Liebe Grüsse

            G 1 Reply Last reply Reply Quote 0
            • G
              GiuseppeS @stolly82 last edited by

              @stolly82
              https://synyx.de/blog/fingerprinting-indoor-positionsbestimmung-mit-bluetooth-low-energy-2-2/

              Mit Fingerprint Methode sollte es funktionieren. Müsstest dir selbst was programmieren. So wie das gedanklich überschlage, wäre zumindest die Erstellung einer Karte der Wohnung bzw Haus unnötig.

              stolly82 1 Reply Last reply Reply Quote 0
              • stolly82
                stolly82 @GiuseppeS last edited by

                @giuseppes said in MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32:

                @stolly82
                https://synyx.de/blog/fingerprinting-indoor-positionsbestimmung-mit-bluetooth-low-energy-2-2/

                Mit Fingerprint Methode sollte es funktionieren. Müsstest dir selbst was programmieren. So wie das gedanklich überschlage, wäre zumindest die Erstellung einer Karte der Wohnung bzw Haus unnötig.

                Ja, mit der Karte hast du recht.

                Ich muss mal überlegen, wie ich das realisieren kann, ich vermute das wird etwas kompliziert.

                Mit der Triangolierung fand ich ganz witzig, dass man da eben nicht so viel definieren muss (wobei es natürlich auch ungenau ist).

                Ggf. geht dann auch ein Ansatz mit dem Script von dir, dass ich Bedingungen mit einbaue "Wenn Distance von ESP1,2,3 < 3m, ignoriere ESP5,9,6" und lege die Karten nebeneinander,...

                Mit der Fingerprint Methode muss ich sonst mal schauen, ob das über eine Server- Lösung klappen kann, ohne dass ich das hier mit allen Geräten machen muss (das habe ich bei dem Artikel noch nicht so ganz verstanden).

                G 1 Reply Last reply Reply Quote 0
                • G
                  GiuseppeS @stolly82 last edited by

                  @stolly82
                  Das mit dem Fingerprint funktioniert so dass du jede für dich relevante Position "anlernen" musst. Dabei beachtest du alle Sensoren mit deren Werten. Dadurch werden lokale Ungenauigkeiten auch beachtet. Zum Beispiel ist ein Sensor hinter dem Schrank evtl nur 1m entfernt, könnte aber über espresense mit 3m angezeigt werden. Wenn du das ganze mit Skript generisch lösen möchtest ist es natürlich aufwendig. Aber wenn du die Werte pro Position manuell notietst und im Skript verwendest, würde es sich in Grenzen halten.

                  1 Reply Last reply Reply Quote 0
                  • U
                    Utze86 @bicmac last edited by

                    @bicmac nein, leider noch nicht getestet. Das wird wohl ein Projekt für die kommenden Wintermonate. Da ich das ganze ebenfalls über mehrere Stockwerke realisieren müsste bin ich aber gespannt was hier bei der aktuellen Diskussion raus kommt.

                    Könnte man nicht eine Abfrage erstellen, dass wenn ich mich einem bestimmten esp nähere, dass dadurch quasi festgelegt wird auf welcher Etage ich mich befinde? Sobald die Etage dann erkannt wurde, könnte man ja nurnoch esps für die Auswertung hinzu ziehen die sich nur auf der betretenen Etage befinden und die restlichen esp werden für die Auswertung ausgeblendet.

                    1 Reply Last reply Reply Quote 0
                    • U
                      Utze86 @bicmac last edited by

                      @bicmac Das Projekt mit den Shellys liegt leider bis auf weiteres auf Eis. Ich habe es leider nicht geschafft die Shelly's erfolgreich zu flashen. Nach dem aufspielen von Espresense erzeugen die Shellys keine WLAN AP und verfallen in einen Bootloop. Auch das Aufspielen von Esp Home und Tasmota Bluetooth führte leider nur zum gleichen Ergebnis. Hat hier jemand einen Tipp?

                      Alternativ besteht die Möglichkeit die Esp32 Mini mit einem 220V-5V Netzteil zu versehen und vor eine Steckdose zu schlalten. Es gibt da passende Netzteile von Azdelivery. Das Gerät wäre insgesamt etwa genau so groß wie ein Shelly. Allerdings müsste das Netzteil mit dem Esp32, am besten ohne Platine, verlötet werden und befindet sich dann nicht in einem abgeschlossen Gehäuse. Für mich als Hobbyelektiker wäre das keine Alternative da ich mir das Haus nicht abfackeln will. Wenn hier jemand der mehr Ahnung hat, eine Anleitung oder Lösung dafür hätte wäre das für mich eine Option. Ich möchte mir aber keine Eigenkonstruktion in die Wände basteln. Für Hilfe wäre ich an der Stelle dankbar.

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        GiuseppeS @Utze86 last edited by GiuseppeS

                        @utze86
                        Hast du die korrekte esp32 Version von tasmota aufgespielt? Die Shelly haben SingleCore, nicht DualCore, was üblicherweise bei esp32 der Fall ist.

                        Habe selbst erfolgreich ein Shelly Plus 2pm geflashed und verwende es für das Licht. Rollläden mit Tasmota muss ich mich bzgl Kalibrierung einlesen, scheint komplex zu sein.

                        Habe von hier das binary zum flashen:
                        (ganz unten solo1 bluetooth)
                        https://github.com/Jason2866/Tasmota-specials/tree/firmware/firmware/tasmota32/other

                        BLE muss dann über Einstellungen eingeschaltet werden. Außerdem muss das Scannen per Rule eingerichtet werden, damit es nach reboot weiter funktioniert. Nutze folgende Regeln:

                        • Rule1 ON System#Boot DO iBeacon 1 endon
                        • Rule2 ON System#Boot DO BLEAlias E861515FF02E=Giuseppe endon
                        • Rule3 ON System#Boot DO Backlog iBeaconPeriod 10; iBeaconOnlyAliased 1; BLEMaxAge 20 endon
                        • Rule1 1
                        • Rule2 1
                        • Rule3 1

                        Mit diesen Regeln wird alle 10 Sekunden ein Scanvorgang gestartet und nur mit Alias versehene MAC Adressen per mqtt übermittelt.

                        Für den Shelly Plus 2pm gilt folgende Tasmota config:

                        {"NAME":"Shelly Plus 2PM","GPIO":[320,0,192,0,0,0,1,1,225,224,0,0,0,0,193,0,0,0,0,0,0,608,3840,32,0,0,0,0,0,640,0,0,3456,4736,0,0],"FLAG":0,"BASE":1}

                        Edit:
                        Bekomme über den Sonoff Adapter alle ca. 12/13 Sekunden den rssi Wert vom Shelly. Funktioniert also ganz gut. Gefiltert wird leider nicht wie bei espresense.

                        U stolly82 W 3 Replies Last reply Reply Quote 0
                        • U
                          Utze86 @GiuseppeS last edited by

                          @giuseppes ich habe tatsächlich nicht gesehen, dass es auch eine 1-Kern Version von Tasmota Bluetooth gibt. Das könnte mir wirklich weiter helfen. "Leider" bin ich aktuell im Urlaub und kann deinen Vorschlag erst am Wochenende testen.

                          Kann ich die Scanfrequenz über Ibeacon period noch weiter runter setzten, weißt du ob es eine Untergrenze gibt? Ich denke grundsätzlich wäre ein Wert je Sekunde für eine Raumerkennung praktisch.

                          Lässt sich dein Shelly weiterhin schalten, oder kannst du mit dem Shelly "nurnoch" Ble scannen?

                          G 3 Replies Last reply Reply Quote 0
                          • G
                            GiuseppeS @Utze86 last edited by

                            @utze86
                            Bei meinem ersten Versuch hatte ich auch meinen Shelly in bootloop und war nach Recherche über das Thema SingleCore gestolpert. Glücklicherweise bin ich im Netz auf das verlinkte Repo mit entsprechenden Versionen gestoßen.

                            Bzgl des Scan Intervalls: ich habe keine Grenzen in tasmota gefunden. Hatte die Zeit zu Testzwecken auf 5s und 8s gesetzt, allerdings wurde meine Uhr dennoch alle >10s übermittelt. Von einem esp32 mit espresense weiß ich, dass meine Uhr alle 7-8 Sekunden sendet. Keine Ahnung woran die Erkennung >10s nun liegt. Optimal ist es nicht, aber in Kombi mit Bewegungsmelder gut nutzbar. Anwesenheit würde dann per BWM in einem Bereich erkannt werden und die Abwesenheit über "rssi > x" detektiert werden. Somit wäre Präsenz über BWM sofort erkannt und die Abwesenheit nach ca. 15s oder 30s (wenn zwei Messungen gewartet wird).

                            1 Reply Last reply Reply Quote 0
                            • G
                              GiuseppeS @Utze86 last edited by GiuseppeS

                              @utze86
                              Da sind ja noch weitere unbeantwortete Fragen in deinem Beitrag:

                              Ein Wert pro Sekunde wäre klasse, aber sendet dein "Beacon" auch wirklich jede Sekunde? Espresense scannt wohl kontinuierlich, damit kannst du deinen Sende Intervall prüfen. Leider kam ich mit Tasmota auf eine höhere Intervall Zeit als mit ESPresense.

                              Der Shelly funktioniert natürlich ohne Probleme mit Tasmota. Shelly nur für ble Scan zu verwenden hätte ich nicht gemacht. Dafür wäre mir der Mehrwert zu gering.

                              1 Reply Last reply Reply Quote 0
                              • G
                                GiuseppeS @Utze86 last edited by GiuseppeS

                                @utze86

                                KORREKTUR:
                                Habe nochmal mit Tasmota getestet, den Intervall zu reduzieren. Es funktioniert doch! Rules werden immer nur übernommen wenn einmalig aus/an oder nach einem esp Neustart. Bei einer Sekunde war mir etwas zu viel traffic, außerdem unnötig. Habe es nun auf 3 Sekunden eingestellt, somit sollte ich jeden zweiten Intervall meine Uhr "erwischen". Klappt super. Meine Motivation das Thema weiter zu verfolgen, nimmt weiter zu.

                                U 1 Reply Last reply Reply Quote 0
                                • U
                                  Utze86 @GiuseppeS last edited by

                                  @giuseppes
                                  Danke für die vielen Hinweise. Ich habe die Hardware für die Varianten Shelly mit Tasmota und esp32 mit Espresene Zuhause und werde am Wochenende mal beide Varianten testen. Bewegungsmelder habe ich ebenfalls noch ein paar zuhause.
                                  Ich werde den Ansatz verfolgen die Shelly Variante mit so wenig Bewegungsmeldern wie möglich umzusetzen. Zwischendurch sind ja auch Gäste im Haus, mal sehen wie ich dass dann umsetze ohne, dass der BWM ständig Licht AN/ Licht AUS macht.

                                  Aktuell ist der Plan, dass ich meine Anwesenheit über ein Mi Band 4 tracke. Ich habe ehrlich gesagt, keine Ahnung wie oft das funkt. Ich hatte eigentliche erwartet, dass der Esp das Mi Band innerhalb eines gewünschten Intervalls anpingt. Wenn das ganze vielversprechend läuft denke ich aber über eine neueres Modell oder eine neue Smart Watch nach. Welches Gerät nutzt du bei dir zum tracken?

                                  Der Erfolg mit der Reduzierung des Intervalls klingt viel versprechend. Genau wie, dass du das Thema wieder intensiver verfolgen willst. Am Wochenende klemme ich mich dann auch mal dran.

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    GiuseppeS @Utze86 last edited by

                                    @utze86
                                    Benutze selbst die Mi Band 5. BLE Advertisements werden einfach im Intervall gesendet, da ist nichts mit ping. Klasse wäre es wenn beim Sender das Intervall eingestellt werden könnte, ist aber bei der Mi nicht der Fall.

                                    U 1 Reply Last reply Reply Quote 0
                                    • stolly82
                                      stolly82 @GiuseppeS last edited by

                                      @giuseppes

                                      Welche Shellys haben denn alle einen ESP32 verbaut?

                                      Ich muss selbst mal eben schauen was ich verbaut habe 😀

                                      Ich habe bei uns im EG1

                                      • Küche 2x Dimmer 2 (ESP32)
                                      • Wohnzimmer 3x Dimmer 2 (ESP32)
                                      • Wohnzimmer 1x Shelly 2.5 (??)
                                      • Flur 1x Dimmer (??)
                                      • WC 1x Shelly 1

                                      EG2

                                      • Büro 2x 2.5 (??)
                                      • Flur 2 2x 2.5 (??)
                                      • Bad 2 Shelly RBBW 2 (??)

                                      Und im OG leider,...

                                      • Treppenhaus 1x Dimmer (??)
                                      • Kind 1 Dimmer (??)
                                      • Kind 2 Dimmer (??)
                                      • Chill Dimmer (??)
                                      • Netzwerk Raum Shelly 2.5 (??)
                                      • Schlafzimmer 1 1x Dimmer (??)
                                      • Gästezimmer 1x DImmer (??)
                                      • Wandschrank 2.5 (??)
                                      • Schlafzimmer 2 1x Dimmer 2 (ESP32)
                                      • Schlafzimmer 2 1x RGBW 2 (??)
                                      • Bad 1x Shelly 1 (??)
                                      • Bad 1x Dimmer (??)

                                      OG2

                                      • Mitte 1x Shelly 2.5 (??)
                                      • Büro2 1x Shelly 1 (??)

                                      Aussenbereich

                                      • 4x Shelly 2.5 (??)

                                      Ich hoffe, dass hier ein paar von geeinigt sind, so dass ich nicht überall externe ESP32 positionieren muss,...

                                      G 1 Reply Last reply Reply Quote 0
                                      • G
                                        GiuseppeS @stolly82 last edited by

                                        @stolly82
                                        Die neuen Plus Modelle verwenden esp32 (SingleCore). Wenn deine Shelly älter sind, werden es wohl noch keine esp32 Modelle sein

                                        1 Reply Last reply Reply Quote 0
                                        • U
                                          Utze86 @GiuseppeS last edited by

                                          @giuseppes so hab am Wochende den ersten Shelly wie von dir beschrieben geflashed. Hat soweit auch alles gut geklappt. Ich habe die Scanfrequenz mal probeweise auf eine Sekunde gestellt und der Iobroker wirft mir mit von meinem Mi Band 4 ca alle 3 bis 12 Sekunden eine Rssi Wert aus. Das Intervall streut also doch schon sehr, im. Zweifel sollte man das mit den Bewegungsmeldern aber gut in den Griff bekommen.

                                          Im nächsten Schritt werde ich dann mal ein paar mehr shellys flashen und dann auch verbauen.

                                          Verfolgt du noch den Ansatz mit der über die Triangulation? Um zu bestimmen in welchem Raum ich mich befinde würde ich einen Ansatz mit Schnittflächen verfolgen. Indem sich die Rssi Werte von verschiedenen Shellys in einem Raum überschneiden.

                                          Ich bin mir allerdings noch nicht sicher ob ich mit durchschnittlichen Werten arbeiten soll oder ob ich die direkten Rssi Werte nehme. Die Durchschnittlichen Werte mache das ganze doch bestimmt etwas träger, wie wären deine Erfahrungen?

                                          G 1 Reply Last reply Reply Quote 0
                                          • G
                                            GiuseppeS @Utze86 last edited by

                                            @utze86
                                            Zum Intervall inkl ioBroker:
                                            Check am besten in der Tasmota Console vom Shelly, wie häufig da tatsächlich deine Uhr erkannt wird. Innerhalb ioBroker läuft das mit dem sonoff Adapter nicht optimal. Wenn zu viele Aktualisierungen kommen, schafft es der Adapter nicht, die rssi Werte und mac bzw. uid synchron in die States zu schreiben. Evtl müsste man mqtt Adapter verwenden und selbst verarbeiten. Dann wäre alles innerhalb eines json. Leider müsste dann auch die Steuerung über mqtt laufen... Hier bin ich allgemein noch am testen

                                            Positionsbestimmung:
                                            Triangulation bringt mit ble rssi nichts. Schwankungen sind zu extrem. Daher habe ich das Thema Fingerprint ins Auge gefasst. Jede interessante Position wird angelernt. D.h. zu jeder Position werden rssi Werte aufgezeichnet und später zum Gegenprüfen wieder verwendet.
                                            Nachteil: sich frei im Raum bewegen führt nicht dazu dass es in einer 2D oder gar 3D Karte nachvollziehbar ist. Es ist mit ble nur ein scheinbarer Nachteil, da es aktuell wegen der rssi Streuung immens viele Sprünge gäbe.
                                            Vorteil: Abweichungen der rssi Werte aufgrund der Scanner Positionen (verdeckt, hinterm Schrank o.ä.) wird beim Anlernen direkt mit berücksichtigt. Die Frage hierbei ist, wie sich die rssi Schwankungen bei diesem Verfahren bemerkbar machen.

                                            Fingerprint ist im Vergleich zur Triangulation etwas komplexer in der ioBroker Umsetzung, da Interaktionen nötig sind (start anlernen, welche Position?). Daher müsste ich mit etwas html die VIS einbinden. Werde vsl. im Dezember damit starten.

                                            Zu deinem Ansatz mit den Schnittflächen: Du meinst quasi triangulation innerhalb des Raumes. Das würde sehr viele Shelly / Scanner benötigen, oder versteh ich dich falsch?
                                            Original rssi ist zwar schneller aber schwankt deutlich. Ich hatte mal mit Mittelwerten experimentiert, das war ok aber träger. Im Code von ESPresense habe ich gesehen, dass sie den median von den letzten 3 Werten nehmen. Das finde ich sehr geschickt, da einzelne Ausreißer quasi 0 berücksichtigt werden und die Trägheit noch ok ist.

                                            U 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            900
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            26
                                            242
                                            34057
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo