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@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32

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

      Hallo zusammen,

      ich bekomme es leider nicht hin den Sketch zu kompilieren. Bei Kompilieren erhalte ich immer folgende Fehlermeldung:

      Arduino: 1.8.19 (Windows 10), Board: "ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"
      
      C:\Users\Andy\Downloads\1603999752128-mqtt_anwesenheit_ota.ino\mqtt_anwesenheit_ota\mqtt_anwesenheit_ota.ino: In function 'void setup()':
      
      mqtt_anwesenheit_ota:226:8: error: 'class PubSubClient' has no member named 'set_server'
      
         mqtt.set_server(MQTT_server, MQTT_port); // MQTT Port einstellen
      
              ^
      
      mqtt_anwesenheit_ota:228:29: error: no matching function for call to 'PubSubClient::connect(String&)'
      
         if (mqtt.connect(MQTT_Name))
      
                                   ^
      
      In file included from C:\Users\Andy\Downloads\1603999752128-mqtt_anwesenheit_ota.ino\mqtt_anwesenheit_ota\mqtt_anwesenheit_ota.ino:34:0:
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:112:12: note: candidate: boolean PubSubClient::connect(const char*)
      
          boolean connect(const char* id);
      
                  ^
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:112:12: note:   no known conversion for argument 1 from 'String' to 'const char*'
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:113:12: note: candidate: boolean PubSubClient::connect(const char*, const char*, const char*)
      
          boolean connect(const char* id, const char* user, const char* pass);
      
                  ^
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:113:12: note:   candidate expects 3 arguments, 1 provided
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:114:12: note: candidate: boolean PubSubClient::connect(const char*, const char*, uint8_t, boolean, const char*)
      
          boolean connect(const char* id, const char* willTopic, uint8_t willQos, boolean willRetain, const char* willMessage);
      
                  ^
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:114:12: note:   candidate expects 5 arguments, 1 provided
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:115:12: note: candidate: boolean PubSubClient::connect(const char*, const char*, const char*, const char*, uint8_t, boolean, const char*)
      
          boolean connect(const char* id, const char* user, const char* pass, const char* willTopic, uint8_t willQos, boolean willRetain, const char* willMessage);
      
                  ^
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:115:12: note:   candidate expects 7 arguments, 1 provided
      
      mqtt_anwesenheit_ota:231:18: error: 'MQTT' has not been declared
      
           mqtt.publish(MQTT::Publish("hallo", MQTT_Name).set_qos(QoS)); // im Topic hallo Präsenzmelder Name schreiben
      
                        ^
      
      C:\Users\Andy\Downloads\1603999752128-mqtt_anwesenheit_ota.ino\mqtt_anwesenheit_ota\mqtt_anwesenheit_ota.ino: In function 'void loop()':
      
      mqtt_anwesenheit_ota:271:16: error: 'MQTT' has not been declared
      
         mqtt.publish(MQTT::Publish(MQTT_Name, NachrichtJSON).set_qos(QoS)); // JSON per MQTT senden
      
                      ^
      
      mqtt_anwesenheit_ota:283:27: error: no matching function for call to 'PubSubClient::connect(String&)'
      
           mqtt.connect(MQTT_Name);
      
                                 ^
      
      In file included from C:\Users\Andy\Downloads\1603999752128-mqtt_anwesenheit_ota.ino\mqtt_anwesenheit_ota\mqtt_anwesenheit_ota.ino:34:0:
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:112:12: note: candidate: boolean PubSubClient::connect(const char*)
      
          boolean connect(const char* id);
      
                  ^
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:112:12: note:   no known conversion for argument 1 from 'String' to 'const char*'
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:113:12: note: candidate: boolean PubSubClient::connect(const char*, const char*, const char*)
      
          boolean connect(const char* id, const char* user, const char* pass);
      
                  ^
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:113:12: note:   candidate expects 3 arguments, 1 provided
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:114:12: note: candidate: boolean PubSubClient::connect(const char*, const char*, uint8_t, boolean, const char*)
      
          boolean connect(const char* id, const char* willTopic, uint8_t willQos, boolean willRetain, const char* willMessage);
      
                  ^
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:114:12: note:   candidate expects 5 arguments, 1 provided
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:115:12: note: candidate: boolean PubSubClient::connect(const char*, const char*, const char*, const char*, uint8_t, boolean, const char*)
      
          boolean connect(const char* id, const char* user, const char* pass, const char* willTopic, uint8_t willQos, boolean willRetain, const char* willMessage);
      
                  ^
      
      C:\Users\Andy\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:115:12: note:   candidate expects 7 arguments, 1 provided
      
      Mehrere Bibliotheken wurden für "WiFi.h" gefunden
      
       Benutzt: C:\Users\Andy\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.5\libraries\WiFi
      
       Nicht benutzt: C:\Program Files (x86)\Arduino\libraries\WiFi
      
      exit status 1
      
      'class PubSubClient' has no member named 'set_server'
      
      

      Weiß jemand was ich hier machen kann?

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

        @banis
        Wozu überhaupt noch diesen Sketch verwenden? Espresense funktioniert ganz gut.

        B S 2 Replies Last reply Reply Quote 0
        • B
          Banis @GiuseppeS last edited by

          @giuseppes Super vielen Dank das funktioniert mit Espresense ja mega einfach.

          1 Reply Last reply Reply Quote 0
          • G
            Grace13 last edited by

            Welche Hardware nutzt ihr? Bzw welchen ESP32 sollte man denn kaufen? Bin von den verschiedenen Varianten auf Aliexpress etwas irritiert..

            amg_666 OpenSourceNomad 2 Replies Last reply Reply Quote 0
            • amg_666
              amg_666 @Grace13 last edited by

              @grace13 Also bei mir läuft es mittlerweile ganz gut und ich benutze D1Mini von A-Z Delivery. Die sind da nicht sooo viel teurer als "beim Chinesen" und du hast kürzere Lieferzeiten und Garantie, bzw die sind eh sehr kulant.
              Link auf die Homepage
              Und wenn du dich da für den Newsletter einträgst kriegst du täglich irgendwelche Angebote, oft auch D1 Mini als Mehrfachpackung

              1 Reply Last reply Reply Quote 0
              • OpenSourceNomad
                OpenSourceNomad Most Active @Grace13 last edited by

                @grace13 said in MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32:

                Welche Hardware nutzt ihr? Bzw welchen ESP32 sollte man denn kaufen?

                @amg_666 said in MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32:

                Also bei mir läuft es mittlerweile ganz gut und ich benutze D1Mini

                Einziges Manko: Der gute D1 Mini hat einen esp82xx und keinen esp32. Sprich kein BLE an board und deswegen gänzlich ungeeignet für den gewünschten Einsatzzweck hier.

                1 Reply Last reply Reply Quote 0
                • amg_666
                  amg_666 last edited by

                  @opensourcenomad Sorry, dann hab ich den falschen verlinkt: "D1 Mini" Ausführung und auch in größerer Bauform

                  1 Reply Last reply Reply Quote 0
                  • G
                    Grace13 last edited by

                    @amg_666 wurde mit ESPresense geflasht und funktioniert soweit, die Daten kommen am MQTT Adapter an. Ich hätte aber noch eine Frage.
                    Meine Bluetooth Mac Adresse vom Handy habe ich in "Known BLE mac addresses" eingetragen.
                    Im MQTT Adapter bekomme ich nun bestimmt über 20 Geräte angezeigt, allerdings ist keins mein Gerät. Wo liegt denn der Fehler?

                    1 Reply Last reply Reply Quote 0
                    • OpenSourceNomad
                      OpenSourceNomad Most Active last edited by

                      @grace13 said in MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32:

                      Meine Bluetooth Mac Adresse vom Handy habe ich in "Known BLE mac addresses" eingetragen.

                      Mobilfunkdelefone neuerer Generationen, bzw. deren software randomisiert meist die mac Adressen der WLAN und Bluetooth interfaces (wenn diese passiv/nicht verbunden sind) um ein tracking für "Mitbewerber" zu erschweren.

                      Eventuell macht dir diese Funktion gerade das leben schwer? 🤔

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        Grace13 @OpenSourceNomad last edited by

                        @opensourcenomad hm okay, danke für die Info, dann werde ich es mal mit meiner galaxy watch versuchen.

                        OpenSourceNomad 1 Reply Last reply Reply Quote 0
                        • OpenSourceNomad
                          OpenSourceNomad Most Active @Grace13 last edited by OpenSourceNomad

                          @grace13 said in MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32:

                          danke für die Info

                          Hätte ja Ansporn sein können kurz 20 Sekunden Internetrecherche zu betreiben und z.B. folgendes, für Androiden gültiges, Wissen zu erlangen:

                          For devices running Android 10 or higher, the framework uses randomized MAC address by default. Users can enable or disable MAC randomization for individual networks through an option in the Network details screen in Settings, as shown in Figure 1. If a user disables MAC randomization for a network, the framework uses the factory MAC address (globally unique address).

                          .

                          Quelle: https://source.android.com/devices/tech/connect/wifi-mac-randomization-behavior

                          ..und wer genau liest sieht es geht nur um wifi 😬 ☝

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

                            Hallo @giuseppes,

                            die Installation mit ESPresence funktioniert wirklich gut. Wie verarbeitest du die Werte aktuell weiter?

                            Nach langem hin und her denke ich, dass mir eine einfache Erkennung reichen würde, ob ein Gerät anwesend ist oder nicht.

                            LG

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

                              @spezialtrick
                              Ich habe das Thema Triangulation erstmal pausiert, weil mir die Werte zu stark streuen.
                              Ich habe ein esp32 im Schlafzimmer, eins in der Küche und eins neben der Couch im Wohnzimmer. Damit arbeite ich nun. Ohne viel drum herum, d.h. keine Skripte oder ähnliches, was noch viel verarbeitet. Wenn Distanz kleiner 2,5 Meter von einem esp32, dann bin ich genau da.

                              G S amg_666 3 Replies Last reply Reply Quote 1
                              • G
                                Grace13 @GiuseppeS last edited by

                                @giuseppes wie verarbeitest du die Werte von ESPresense im IoBroker? Bzwe welchen Datenpunkt verwendest du? Bin etwas ratlos was bzw welchen Wert ich nutzen soll.

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

                                  @giuseppes
                                  Vllt. eine blöde Frage, aber ich bin noch nicht so lange mit dem IOBroker befasst... Wie bekommst du die Werte aus dem JSON heraus bzw. wie könnte man sie in einem Skript weiterverarbeiten.

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

                                    @giuseppes sagte in MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32:

                                    Wenn Distanz kleiner 2,5 Meter von einem esp32, dann bin ich genau da.

                                    So wollte ich das eigentlich auch lösen. Problem: Ein ESP ist in einem Raum im OG und einer in einem Kellerraum. Wenn ich mich relativ schnell OG in den Keller begebe, dann wird zwar der Wert vom ESP im Keller aktualisiert (Distanz kleiner xx) aber der Wert im OG wird nicht aktualisiert (zu weit entfernt) und dann ist da auch die (alte) Distanz <xx. Irgendeine Idee, wie man da einen Lösungsansatz findet? Ich bin am überlegen ob ich die Zeitstempel mit auswerte, aber vielleicht gibts da ja noch ne andere Lösung...

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

                                      @spezialtrick
                                      Ich verwende den Wert "distance" aus dem JSON

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

                                        @amg_666
                                        Mir fällt auch nur ein, den Zeitstempel mit auszuwerten

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          da.phreak @GiuseppeS last edited by

                                          Hier gibt's noch eine Firmware von mir zum Scannen von BLE Geräten:

                                          https://github.com/technyon/blescanner

                                          Ist ein Spin-off von meiner NUKI Firmware (https://forum.iobroker.net/topic/53754/nuki-hub), die auch scannen kann. Die Geräte werden über MQTT als CSV gemeldet. Javascript bzw. Typescript zum Parsen findet sich hier:

                                          https://forum.iobroker.net/topic/53754/nuki-hub/30

                                          Binaries sind auf Github vorhanden, diese müssen nur geflashed werden. Die Konfiguration von WiFi und MQTT erfolgt dann über Web-Interface.

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

                                            Hi zusammen, ich bin neu hier im Forum und möchte mich dem Thema einmal anschließen. Den Thread zu lesen hat mich bereits wesentlich weiter gebracht. Ein paar Fragen tun sich mir allerdings auf.

                                            Ist bekannt ob das ganze Verfahren mit ESPresense auch auf dem Shelly 1 Plus funktioniert ohne dessen Funktion als Schalter zu beeinträchtigen? Der Shelly 1 Plus verfügt ja über einen ESP32. Für mich wäre das Ganze in sofern interessant, da ich mein Haus eh mit den Shellys ausstatten möchte. Dadurch könnte ich es mir ersparen die ganzen ESP's an diversen Steckdosen im Haus zu verteilen.

                                            Alternativ könnte ich mir eine Batterie- / Akkulösung für die ESP's vorstellen um die ESP's in Schränken und Schubladen unterzubringen. Hat hier jemand Erfahrung wie lange entsprechende Akkus/Batterien für die Anwesenheitserkennung mit dem ESP32 halten?

                                            Viele Grüße
                                            Utze86

                                            D G 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            834
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            26
                                            242
                                            36488
                                            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