Anwesenheit-Erkennung - Raspi + ESP32 (BLE + Eddystone + BTHome (Shelly) Protokoll)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • hismastersvoice
    Supermoderator
    • 25.08.2015
    • 7597

    #16
    Wärend ich auf das Memory-Leak Ergebnis warte, habe ich mal noch die Vorlage für Loxone Virtuelle UDP Eingänge gemacht

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 285
Größe: 36,9 KB
ID: 478255
    Kein Support per PN!

    Kommentar

    • challo
      LoxBus Spammer
      • 21.09.2016
      • 388

      #17
      hismastersvoice: Cooles Projekt und auch die Umsetzung sieht auf den Screenhots super aus! Vielleicht hast du während der Wartezeit auch noch Zeit deine Anwendung und die Positionierung der unterschiedlichen Empfänger etwas näher zu beschreiben. Grundsätzlich ist das Thema Präsenz Ja/Nein auf Basis eines Tags z.b. am Schlüssel klar. Aber vielleicht hast du hier ja noch ein paar zusätzliche Ideen die man Umsetzen kann.

      Kommentar

      • AlexAn
        Lebende Foren Legende
        • 25.08.2015
        • 4555

        #18
        Shelly Plus 1 Mini ESP32-C3 - mit dem würde ich es als erstes versuchen
        Shelly 1 Mini Gen3 ESP-Shelly-C38F vermutliche ein ESP32-C3
        Shelly 1 Mini Gen4 ESP-Shelly-C68F vermutlich ein ESP32-C6

        Shelly 1 Gen3 ESP-Shelly-C38F
        Shelly 1 Gen4 ESP-Shelly-C68F

        Eine Reaktionszeit von 1sec sehe ich für die Anwesenheit gar nicht kritisch.
        Für den Taster schaut es natürlich wieder anders aus.

        Anwendungszweck: Freischaltung Wallbox, Alarm scharf wenn der letzte Button weg ist, Betriebsmodi usw.
        Zuletzt geändert von AlexAn; 27.01.2026, 15:31.
        Grüße Alex

        Kommentar


        • hismastersvoice
          hismastersvoice kommentierte
          Kommentar bearbeiten
          Ich kann dir jetzt schon sagen das C3/C6 aufgrund des Ram und 1 Core nicht gehen.
          Wifi BT läuft durch das kontinuierliche scannen das ich für die Button-Erkennung des Shelly brauche auf einem eigenen Kern.
          Nur so konnte ich schnell erkennen und abstürze und das Memory Leak vermeiden. Shelly verwendet hier ein auf ihr System zugeschnittenes System, ich bin mit BLE Tags / Eddystone / BTHome hier natürlich umfangreicher unterwegs.

          Anwendungszweck: Freischaltung Wallbox, Alarm scharf wenn der letzte Button weg ist, Betriebsmodi usw.
          Das ist ja alles ein Präsenz Thema, oder schaltest du diese Funktionen per Button?
          Zuletzt geändert von hismastersvoice; 01.02.2026, 08:03.

        • AlexAn
          AlexAn kommentierte
          Kommentar bearbeiten
          Die Funktion nutze ich per Beacon.
      • hismastersvoice
        Supermoderator
        • 25.08.2015
        • 7597

        #19
        Zitat von challo
        hismastersvoice: Cooles Projekt und auch die Umsetzung sieht auf den Screenhots super aus! Vielleicht hast du während der Wartezeit auch noch Zeit deine Anwendung und die Positionierung der unterschiedlichen Empfänger etwas näher zu beschreiben. Grundsätzlich ist das Thema Präsenz Ja/Nein auf Basis eines Tags z.b. am Schlüssel klar. Aber vielleicht hast du hier ja noch ein paar zusätzliche Ideen die man Umsetzen kann.
        Position kommt ganz drauf an was du vor hast.
        Es kommt erst mal auf die Fläche an die du abdecken willst.
        Normales aus ca. 70-100m² würde vermutlich einer in der Mitte des Hauses reichen um 2 Stockwerke abzudecken.
        Ich habe für das normale erkennen der Präsenz 2 Stück an Ost- und Westwand. So ist die Garage und der Garten auch dabei.
        Was ich noch mache ist einen ins Gartenhaus oder Gewächshaus zu platzieren. Hier könnte meine Frau sich vorstellen mit dem Shelly per Button die Zisternen-Pumpe einzuschalten. Die geht zwar per Druckschalter an aus, wenn aber niemand Home ist schalten wir sie aus Sicherheitsgründen ganz ab.

        Will man aber eine indoor positioning machen, dann braucht man deutlich mehr Scanner.
        Je Stockwerk min. 4 Stück an jeder Ecke.
        Der RSSI jedes BLE-Device wird trianguliert und das BLE Device in zuvor angelegte Zonen positioniert.

        Indoor Positionierung ist genau das Problem an dem ich gerade arbeite.
        Da der RSSI selbst wenn sich das Device nicht bewegt trotzdem variiert springen die Devices zum Teil von Raum zu Raum.
        Das ist schon schwer genug wenn man nur ein Stockwerk hat, über 2,3 Stockwerke wird das sehr aufwendig.
        Ist alles nut Mathe, aber durch den schwankenden RSSI so wirklich schwer.
        Es reicht das du einen Raum betrittst in dem ein Device liegt, dann bist du eine Dämpfung und der RSSI ändert sich.
        Die Meter der Entfernung zum Scanner wird über den RSSI berechnet, und schon bewegt sich dein Device auf der Karte, obwohl es da noch liegt.

        Es ist jetzt nicht so das es gar nicht stimmt, aber der Raum kann sich eben wechseln,
        und dann ist es ja wieder uninteressant für eine Steuerung wenn ich Büro melde aber im Wohnzimmer bin.

        Ich bin mir noch nicht sicher ob ich das weiter verfolge.


        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 219
Größe: 118,2 KB
ID: 478463


        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 329
Größe: 39,3 KB
ID: 478462

        Wie man auf den Bildern und MQTT Messages sieht, passt das schon "oft", aber für ein ordentliches System ist mir da noch viel zu viel springen dabei.

        PS:
        Memory Leak habe ich gefunden, die Scanner laufen seit >48h ohne Fehler
        Allerdings musste ich ESP32-C3/C5 raus nehmen, die habe einfach zu wenig Ram
        ESP32 Dev und ESP32-S3 laufen jetzt perfekt. Wegen 1€ was ein S3 mehr kostet werde ich jetzt auch nicht weiter schrauben.
        Kein Support per PN!

        Kommentar


        • AlexAn
          AlexAn kommentierte
          Kommentar bearbeiten
          Völlig egal die Dinger sind ja nicht so teuer.
      • hismastersvoice
        Supermoderator
        • 25.08.2015
        • 7597

        #20
        AlexAn

        Habe das mit dem Button auswählbar gemacht.

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 200
Größe: 11,3 KB
ID: 478482

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 218
Größe: 13,7 KB
ID: 478481

        So kann jeder wählen was er will, schnell ohne Rücksicht von welchem Scanner, oder bester Scanner-RSSI um die Position zu berücksichtigen.
        Bei Sofort ist es wirklich so das es sehr schnell (nur wenige 0,x Sek.) braucht bis der MiniServer den Button-Press bekommt.

        Denke mal das ich nächste Woche die erste Version (ohne indoor-positioning) freigeben kann.
        Lass alles noch ein paar Tage laufen, sieht aber schon gut aus.
        Kein Support per PN!

        Kommentar

        • Dütt
          LoxBus Spammer
          • 24.02.2019
          • 437

          #21
          hismastersvoice welcher rpi wird den vorausgesetzt ? Hab noch nen zweier da liegen würde die Software darauf laufen oder ist der zu schwach?

          Hast du mal getestet wie es mit den ESP‘s aussieht wenn man das Wlan abschaltet bei Abwesenheit oder Nachts.

          Nutze aktuell Espresense nur da hatte ich immer wieder bei der W-Lan Verbindung Probleme so das ich auf Kabelgebunden umgestiegen bin.

          Gruß Marco

          Kommentar

          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7597

            #22
            Dütt

            Die Logik ist so...

            Wenn SSID und Passort gespeichert sind...
            • SSID im Scan gefunden ✓
            • 30s Stabilität abwarten ✓
            • Verbindung mit Passwort testen
            • Nur wenn WL_CONNECTED → Neustart ✓
            • Wenn Passwort falsch → Bleibt im AP Mode ✓
            Keine Daten im Speicher, dann bleibt er im AP Mode.
            Kein Support per PN!

            Kommentar


            • hismastersvoice
              hismastersvoice kommentierte
              Kommentar bearbeiten
              Nein, zumindest meine aktuelle Software versucht es alle 30 Sek. die SIID zu finden.
              Wenn gefunden dann...

              Das heißt so lange dein WLAN Off ist, geht er in den AP Mode und läuft die 30 Sek. Schleife ab.

              Also verbindet er sich automatisch neu wenn WLAN SIID wieder da ist.

              Was ich noch vergessen habe zu beantworten... Pi Zero 1 oder zwei oder Pi 2 reicht locker.

            • hismastersvoice
              hismastersvoice kommentierte
              Kommentar bearbeiten
              Habe es gerade nochmal getestet.

              Nach ca. 30 Sek. merkt der ESP ob das WLAN weg ist.
              Dann geht er in AP Mode.
              Jetzt scannt er alle 30 Sek. nach der SSID die gespeichert ist.
              Wir diese gefunden, checkt er mit SSID und PAss ob diese zu connecten ist, und wartet 15 Sek. ob es stabil da bleibt.
              Wenn ja = reboot. (reboot ist sicherer als NTP/MQTT/BLE etc neu zu initialisieren)

              Das alte System was ich genutzt habe, hatte hier genau die Schwachstelle. WLAN länger weg, dann ging er nicht mehr online, oder nur mit viel Glück.

            • Dütt
              Dütt kommentierte
              Kommentar bearbeiten
              👍 sehr geil gefällt mir immer mehr
          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7597

            #23
            Ich bin in den letzten Tagen bei der Indoor-Positioning sehr viel weiter gekommen.
            Mit Filter und Logik kann man das springen verhindern und es wird ganz gut die Position der Devices angezeigt. Die Räume stimmen in 99% der Fälle bei mir.

            Der Nachteil... Es sind min. 4 Scanner je Stockwerk nötig um es einigermaßen genau hin zu bekommen.
            Auch die Positionierung der Scanner macht einen großen Unterschied.
            Früher hatte ich sie auf Deckenhöhe. Jetzt eher auf Schalterhöhe in jedem Stockwerk. so wird das Stockwerk besser erkannt. (EG war manchmal OG etc)



            Klicke auf die Grafik für eine vergrößerte Ansicht  Name: grafik.png Ansichten: 0 Größe: 200,9 KB ID: 478712

            Klicke auf die Grafik für eine vergrößerte Ansicht  Name: grafik.png Ansichten: 0 Größe: 193,6 KB ID: 478713

            Ich habe es so Designt das theoretisch unendlich viele Stockwerke möglich sind. Aktuell teste ich nur mit zwei (EG/OG)

            MQTT Output

            Code:
            {
              "hostname": "test",
              "address": "AA:BB:CC:DD:EE:FF",
              "is_online": 1,
              "last_battery_percent": 100,
              "name": "Shelly 2",
              "alias": "Shelly 2",
              "rssi": -38,
              "distance": 0.144544,
              "room": "Esszimmer",
              "floor": "eg",
              "scanner": "test",
              "timestamp": 1770230331
            }

            Grafisch muss ich zwar noch ein paar Verbesserungen vornehmen, aber es ist schon 90% fertig.
            Kein Support per PN!

            Kommentar


            • AlexAn
              AlexAn kommentierte
              Kommentar bearbeiten
              Wow😀
              Danke für deine Erfahrungswerte da ich auch den Gedanken hatte den Scanner in der Deckenlampe zu verstecken.
          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7597

            #24
            Heute habe ich noch das Update ganz fertig gemacht...
            Cooles Feature das mir heute gekommen ist weil ich mehrere Scanner updaten musste Remote-Update.
            Die Scanner laden selber die Update-Bin runter und spielen sie ein.

            Morgen mache ich mal den Installer fertig und eine kurze Anleitung, ich hoffe das ich dann alles habe für ein Release



            Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 189
Größe: 137,1 KB
ID: 478748Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 160
Größe: 151,7 KB
ID: 478749
            Kein Support per PN!

            Kommentar

            • hismastersvoice
              Supermoderator
              • 25.08.2015
              • 7597

              #25
              Will mich mal zurück melden...
              Eigentlich war ich schon kurz vor dem ersten Release, da ist mir wegen AlexAn noch eine Idee gekommen.

              Die neuen Shelly können ja Bluetooth, warum diese nicht auch als Scanner nutzen?
              Der Shelly bekommt ein Skript, und verhält sich dann wie ein ESP32 Scanner. Der einzige Unterschied ist das er die Daten nicht direkt an MQTT sendet, sondern an die API, und diese Daten werden dann dort aufbereitet.
              Was nicht geht ist Battery-Scan von reinen BLE Devices, ich habe keinen kpl. BLE-Stack im Shelly. BTHome und Eddystone gehen aber.

              Auch hier bin ich schon fast fertig, nur die Button-Events machen noch ein klein wenig ärger (Verzögerung)

              UUIDs können inzwischen auch verarbeitet werden (zB BeaconScop auf Android)

              Aber es wird immer besser


              Klicke auf die Grafik für eine vergrößerte Ansicht  Name: grafik.png Ansichten: 0 Größe: 58,6 KB ID: 479361
              Zuletzt geändert von hismastersvoice; 18.02.2026, 21:02.
              Kein Support per PN!

              Kommentar


              • <Andreas>
                <Andreas> kommentierte
                Kommentar bearbeiten
                Sehr cooles Feature 👍🏻
            • hismastersvoice
              Supermoderator
              • 25.08.2015
              • 7597

              #26
              Kurze Frage...

              Ich habe eine Möglichkeit getestet um iPhone/Android per kurzem auslesen des IRK (Identity Resolving Key) einzubinden.
              Dazu wird das Telefon kurz mit dem Raspi gepairt und der Key gelesen. Danach wird das pairing wieder gelöscht.

              So ist/wäre ein Telefon per UUID und dem Key dauerhaft erkennbar (Theorie).

              Hört sich erst mal gut an...
              Aber sowohl iPhone (nach ca. 1Min) als auch Android (nach ca.7-10Min) schlafen ein und senden keine Advertisements mehr.
              Man kann es am iPhone künstlich am Leben halten... zB iWatch kommuniziert dauerhaft mit iPhone.
              Bei Android habe ich die App BeaconScope gefunden die das im Hintergrund macht, beim iPhone geht das nicht, da es in iOS zu viele Restriktionen gibt.

              Wie wichtig wäre so ein Feature?
              Android geht mit der App
              iOS nur mit Watch (aktuell)

              Ich würde mich da einlesen, aber das wird der größte Zeitfresser des kpl. Projekt hier.
              Das mache ich nur wenn es wirklich wichtig wäre.

              Reicht euch ein natives Gerät am Schlüssel, im Geldbeutel oder wo auch immer?




              Kein Support per PN!

              Kommentar

              • Dütt
                LoxBus Spammer
                • 24.02.2019
                • 437

                #27
                wie macht das den espresense mit dem Iphone weil so mache ich das schon länger ohne Probleme?

                Gruß Marco

                Kommentar


                • Noschvie
                  Noschvie kommentierte
                  Kommentar bearbeiten
                  Welches Modell bzw. welche iOS Version hast du in Verwendung?

                • hismastersvoice
                  hismastersvoice kommentierte
                  Kommentar bearbeiten
                  Bei mir geht nicht
                  iPhone SE 2025
                  iPhone 15 Max
                  iPhone 16 Max

                  Ich habe keine iWatch deswegen kann ich das nicht testen.
                  Interessant ist wirklich das es wohl mit manchen iPhone gehen soll.
                  Man kann im Netz Bereichte finden von Usern die sogar ein Phone habe das geht und das andere nicht am gleichen Scanner.

                  ESPresense Discussion #492:

                  DTTerastar (Maintainer): "My iPhone blasts out nearby info every 500ms no matter what." → Er hat fast sicher eine Apple Watch.
                  harphere: "Screen goes off → stops broadcasting" → Identisch zu dir.
                  bayees: "I have two iPhones and one works perfectly, the other stops while locked." → Gleicher Haushalt, verschiedenes Verhalten!
                  huytd2k: "After installing the room-assistant app, the issue is fixed for me."
                  51av0sh: "Apple Watch 6 tracks for 20 minutes with screen off. Stopped at exactly 20 min mark."
                  RacoJo (Feb 2023): "Tracking perfectly only when screen is on. Is there a solution?"

                • Noschvie
                  Noschvie kommentierte
                  Kommentar bearbeiten
                  Vermutlich mit iOS 18 oder höher. Wenn ich mich recht erinnere, war iOS 17 die letzte, mit der es noch klappte oder die erste, mit der es nicht mehr funktionierte.
              • hismastersvoice
                Supermoderator
                • 25.08.2015
                • 7597

                #28
                Wer von euch hat es schon geschafft mit dem iPhone eine saubere Anwesenheit-Erkennung zu machen.
                Ich lese bei esppresence es geht mit manchen iPhones oder dann wenn man eine iWatch hat, bei vielen geht es nicht.
                Alle Apps die mal im Hintergrund das iPhone wachgehalten haben sind aus dem App Store verbannt.

                Ich finde keine saubere Lösung die wirklich klappt.
                Kein Support per PN!

                Kommentar

                • Dütt
                  LoxBus Spammer
                  • 24.02.2019
                  • 437

                  #29
                  Also bei mir laufen eigentlich alle iphones wo ich bisher probiert habe Problemlos. Aktuell sind es zwei Iphone 16, 1 Iphone 16 Max und ein Iphone 13

                  und das läuft seid circa einem Jahr sehr stabil.
                  einzige Problem was ich manchmal hatte war das sich der Esp verabschiedet hatte, aber die überwache ich jetzt auch und wenn einer nicht mehr erreichbar ist wird die Poe Versorgung abgeschaltet und nach einer Zeit wieder eingeschaltet.


                  Kommentar


                  • hismastersvoice
                    hismastersvoice kommentierte
                    Kommentar bearbeiten
                    iWatch im Einsatz?

                  • Dütt
                    Dütt kommentierte
                    Kommentar bearbeiten
                    Ich ja die anderen nicht funktioniert aber auch wenn sie leer ist
                • hismastersvoice
                  Supermoderator
                  • 25.08.2015
                  • 7597

                  #30
                  Dütt

                  Hinweis: Einige iOS-Geräte senden kein Signal aus, wenn der Bildschirm des Telefons ausgeschaltet ist und kein Grund für das Gerät besteht, ein Signal zu senden. Daher wird das Gerät möglicherweise nicht angezeigt, wenn der Bildschirm ausgeschaltet ist. Geräte wie eine iWatch, Universal Clipboard mit aktivierter Handoff-Funktion oder andere Dienste, die eine regelmäßige Kommunikation mit dem Telefon erfordern, können dieses Problem möglicherweise beheben, da sie eine Kommunikation des betreffenden iOS-Geräts im „Ruhezustand“ erfordern. Falls Sie kein Bluetooth-Gerät wie eine iWatch besitzen, berichten einige Nutzer, dass die Verwendung von Hintergrund-Apps wie iCloud Family Sharing, iCloud Photo Backup oder Room Assistant das Gerät dazu gebracht hat, im „Ruhemodus” zu kommunizieren. Dieses Problem tritt nicht universell auf, aber es ist derzeit nicht klar, warum es auftritt, und möglicherweise tritt dieses Problem auch dann nicht auf, wenn das Gerät scheinbar keinen Grund zur Kommunikation hat.

                  Nutzt du die Cloud?
                  iOS Version?



                  Zuletzt geändert von hismastersvoice; 20.02.2026, 16:37.
                  Kein Support per PN!

                  Kommentar


                  • Dütt
                    Dütt kommentierte
                    Kommentar bearbeiten
                    Ja nutze die Cloud, Version ist die 26.2.1

                  • hismastersvoice
                    hismastersvoice kommentierte
                    Kommentar bearbeiten
                    Ich denke ich habe es wann es geht...

                    Dütt
                    Vielleicht kannst du das bestätigen

                    Bei allen Usern die berichten das es ohne Probleme geht scheinen eines gemeinsam zu haben.

                    1. iPhone mit iWatch, die kommunziert dann recht viel mit der Uhr und die Ads belieben aktiv
                    oder
                    2. min zwei Apple Geräte in der Cloud angemeldet iPhone, iPad, Macboook etc, dann geht es auch ohne iWatch

                    Hat man nur ein iPhone ohne Cloud oder iWatch geht nach dem Display off das Gerät in einen Tiefschlaf und sendet keine Ads mehr.
                    Deswegen scheint es bei mir nicht zu laufen... Da muss ich wohl noch ein iPhone zum testen besorgen

                    Dütt
                    Erfüllst du das mit den zwei Apple Geräten in der Cloud?
                Lädt...