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.
    • Raidy007
      Raidy007 last edited by

      Finde ich auch eine super Idee!?!

      Wäre der Betrieb mit Batterie sinnvoll und könnte man sich auch den Ladezustand bzw. Spannung übermitteln lassen?

      Wenn die Batterie nen Jahr hält, wäre das doch schon super, oder?

      Dann könnte man auch einfach abfragen .... (zB) Wo liegt meine Uhr , Antwort wäre zB. Liegt im "Wohnzimmer"...

      1 Reply Last reply Reply Quote 0
      • L
        Lordcyber last edited by

        Hallo,
        genau das will ich gerade nachbauen.
        Allerdings bringt er mir mit dem Code aus dem Oben angegebenen Link immer einen Fehler.

        C:\Users\laval\OneDrive\Documents\Arduino\ESP32 BTE MQTT\ESP32-MQTT-BTE-DHT22\ESP32-MQTT-BTE-DHT22.ino: In function 'void loop()':
        
        ESP32-MQTT-BTE-DHT22:97:16: error: 'MQTT' has not been declared
        
           mqtt.publish(MQTT::Publish(MQTT_Name, NachrichtJSON).set_qos(QoS)); // JSON per MQTT senden
        
                        ^
        
        Mehrere Bibliotheken wurden für "WiFi.h" gefunden
         Benutzt: C:\Users\laval\OneDrive\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.2\libraries\WiFi
         Nicht benutzt: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\WiFi
        exit status 1
        'MQTT' has not been declared
        
        
        

        Woran liegt das?
        Danke

        lobomau 1 Reply Last reply Reply Quote 0
        • lobomau
          lobomau @Lordcyber last edited by lobomau

          Edit: ich habe noch nicht den Hinweis beachtet. Ist bestimmt wichtig. Hast du es gemacht?
          "Verwendete MQTT Bibliothek ist MQTT client library for Arduino(vom Imroy)."

          @Lordcyber ich bin leider auch nicht so fit damit. Bei mir ähnlicher Fehler.

          Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: "AI Thinker ESP32-CAM"
          
          C:\Users\Marcellus\Documents\Arduino\ESP32_BT-scanner\ESP32_BT-scanner.ino: In function 'void setup()':
          
          ESP32_BT-scanner:65:8: error: 'class PubSubClient' has no member named 'set_server'
          
             mqtt.set_server(MQTT_server, MQTT_port); // MQTT Port einstellen
          
                  ^
          
          ESP32_BT-scanner:66:20: error: 'MQTT' has not been declared
          
             if (mqtt.connect(MQTT::Connect(MQTT_Name).set_auth(MQTT_User, MQTT_Pass)))
          
                              ^
          
          ESP32_BT-scanner:69: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\Marcellus\Documents\Arduino\ESP32_BT-scanner\ESP32_BT-scanner.ino: In function 'void loop()':
          
          ESP32_BT-scanner:96:16: error: 'MQTT' has not been declared
          
             mqtt.publish(MQTT::Publish(MQTT_Name, NachrichtJSON).set_qos(QoS)); // JSON per MQTT senden
          
                          ^
          
          ESP32_BT-scanner:107:18: error: 'MQTT' has not been declared
          
               mqtt.connect(MQTT::Connect(MQTT_Name).set_auth(MQTT_User, MQTT_Pass));
          
                            ^
          
          Mehrere Bibliotheken wurden für "WiFi.h" gefunden
           Benutzt: C:\Users\Marcellus\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.2\libraries\WiFi
           Nicht benutzt: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\libraries\WiFi
          exit status 1
          'class PubSubClient' has no member named 'set_server'
          
          Ungültige Bibliothek C:\Users\Marcellus\Documents\Arduino\libraries\esp-epaper-29-ws-20171230-gemu-1.0 in keine Header-Dateien (.h) in C:\Users\Marcellus\Documents\Arduino\libraries\esp-epaper-29-ws-20171230-gemu-1.0 gefunden gefunden
          Ungültige Bibliothek C:\Users\Marcellus\Documents\Arduino\libraries\esp-epaper-29-ws-20171230-gemu-1.0 in keine Header-Dateien (.h) in C:\Users\Marcellus\Documents\Arduino\libraries\esp-epaper-29-ws-20171230-gemu-1.0 gefunden gefunden
          
          Dieser Bericht wäre detaillierter, wenn die Option
          "Ausführliche Ausgabe während der Kompilierung"
          in Datei -> Voreinstellungen aktiviert wäre.
          
          
          L 1 Reply Last reply Reply Quote 0
          • L
            Lordcyber @lobomau last edited by

            @lobomau
            ich habe jetzt einen Andere Library benutzt und alles neu geschrieben. Jetzt funktioniert es bei mir.
            Da sind eben alle Befehle anders..
            aber es funktioniert so.

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

              @Lordcyber

              kannst du mir dein Arduino Sketch mal geben?

              Das originale läuft bei mir null, bereits beim Überprüfen des Sketches von @mischaka Sketch bekomme ich die Fehlermeldung Globale Variablen verwenden 57900 Bytes (17%) des dynamischen Speichers, 269780 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes. obwohl ich extra die 16MB ESP32 gekauft hatte, damit ich von @mischaka den WiFi Manager mit installieren kann,....

              no ide why 😞

              Vielen Dank

              Jan

              1 Reply Last reply Reply Quote 1
              • S
                senger1985 last edited by senger1985

                Einen schönen guten Abend.

                Ich hoffe, euch allen geht es gut.

                seit ihr hier schon weitergekommen?

                Ich sitze da schon einige Stunden dran und habe eine Lib, nach der anderen nachinstalliert und dürfte jetzt alle Libs haben.

                Aber ich bekomme jetzt folgende Fehlermeldung:

                In file included from C:\Users\ICH\Dokumente\Arduino\ESP32_anwesenheit\ESP32_anwesenheit.ino:14:0:
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h:29:54: error: 'ArduinoJson::Internals' has not been declared
                 
                     Connect& set_will(String willTopic, ArduinoJson::Internals::JsonPrintable<J>& willMessage, uint8_t willQos, bool willRetain) {
                 
                                                                      ^
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h:29:78: error: expected ',' or '...' before '<' token
                 
                     Connect& set_will(String willTopic, ArduinoJson::Internals::JsonPrintable<J>& willMessage, uint8_t willQos, bool willRetain) {
                 
                                                                                              ^
                 
                In file included from C:\Users\ICH\Dokumente\Arduino\ESP32_anwesenheit\ESP32_anwesenheit.ino:14:0:
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h: In member function 'MQTT::Connect& MQTT::ConnectJSON::set_will(String, int)':
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h:31:19: error: 'willQos' was not declared in this scope
                 
                       _will_qos = willQos;
                 
                                   ^
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h:32:22: error: 'willRetain' was not declared in this scope
                 
                       _will_retain = willRetain;
                 
                                      ^
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h:37:27: error: 'willMessage' was not declared in this scope
                 
                       _will_message_len = willMessage.measureLength() + 1;
                 
                                           ^
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h: At global scope:
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h:55:44: error: 'ArduinoJson::Internals' has not been declared
                 
                     PublishJSON(String topic, ArduinoJson::Internals::JsonPrintable<J>& object) :
                 
                                                            ^
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h:55:68: error: expected ',' or '...' before '<' token
                 
                     PublishJSON(String topic, ArduinoJson::Internals::JsonPrintable<J>& object) :
                 
                                                                                    ^
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h: In constructor 'MQTT::PublishJSON::PublishJSON(String, int)':
                 
                C:\Users\ICH\Dokumente\Arduino\libraries\pubsubclient-master\src/PubSubClient_JSON.h:56:31: error: 'object' was not declared in this scope
                 
                       Publish(topic, nullptr, object.measureLength() + 1)
                

                Kann mir da vielleicht jemand weiterhelfen?

                Danke und bleibt gesund.

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

                  Sind weitere Smartwatches bekannt, die dauerhaft BLE Advertisements senden? Außer Xiaomi Mi Band?
                  Überlege mir eine Smartwatch zu kaufen und würde diese Funktion aktuell als wichtig ansehen.

                  Habe in ioBroker schon mit triangulation der Position angefangen und würde das Thema gerne weiterverfolgen; aber nur mit Smartwatch statt aktuell Smartphone macht die Nutzung Sinn.

                  @mischaka
                  Wie lange hält dein Akku der Xiaomi Mi Band mit Dauer-BLE oder hast du inzwischen eine andere Uhr?

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

                    @GiuseppeS wir haben die Mi Band 2 & 3 zu Hause im Einsatz. Beide senden ständig ihr BLE Signal was zuverlässig vom Pi3 detektiert wird. Akkus halten 2-3 Wochen.

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

                      @lobomau
                      Vielen Dank für die Rückmeldung. Top, dass der Akku auch so lange hält. Evtl sind noch weitere Alternativen bekannt. Ansonsten werde ich die nächsten Tage mal die Mi Band 4 oder 5 bestellen. Anscheinend ist es in der Mi Band Serie ein übliches Feature.

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

                        Ich habs auch mal Versucht, die Mi Band kommt, ich hab aktuell ne Huawai, die bleibt leider stummt solange das Handy an ist. Mein Philipps TV gibt allerdings Laut von sich, ist aber etwas unhandlich 😁
                        Meine Frage, ich hab hier nur ein alive Objekt, wie komme ich an die json Daten ran?
                        In der serielle Konsole sammelt er fleißig MAC Adressen.
                        Benutze den sonoff Adapter. Bin allerdings noch blutiger ioBroker Anfänger.

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

                          @Vujagig
                          Du brauchst den mqtt Adapter. Grundsätzlich:

                          Esp32 über mqtt -> mqtt broker -> mqtt Client

                          Ich selbst nutze mosquitto als mqtt Broker unter Linux und in ioBroker nutze ich den mqtt client Adapter. Bisher damit super gefahren. Es gibt für ioBroker auch einen mqtt Adapter mit broker+Client. Ist dir selbst überlassen. Mit mosquitto bin ich aber oft schon froh gewesen, außerhalb von ioBroker die Signale abfragen zu können (besser für Fehlersuche).

                          Im Sketch von Arduino musst du den Server mit IP und Port angeben. Sonoff kommuniziert zwar über mqtt aber die Messages bzw deren Aufbau sind wahrscheinlich sehr relevant für diesen Adapter.
                          Achte darauf, verschiedene Ports zwischen Sonoff und Standard mqtt zu nutzen.

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

                            @GiuseppeS
                            Ah vielen dank, werde ich mal testen. Wobei ich irgendwo schon mal gehört hatte das jemand den Sonoff Adapter auch als generischen MQTT Adapter genommen hatte.
                            Morgen kommt das Mi Band. Überlege schon das auch als Keyless Entry für Auto und Garge zu nutzen. Wohnung und Haustür wird etwas komplizierter. Evtl lege ich die Adressen auch im ESP intern fest, für KFZ Nutzung eh notwendig. War schon erschrocken was hier in der Gegend alles auf Bluetooth rumbrüllt. In ner halben Stunde min 15 verschiedene Geräte und von mir kam nur der TV und evtl das Smartphone (muss ich aber noch verifizieren). Die Soudbar von einem Nachbar scheint sich im Dauerconnect Modus zu befinden, muss ich mich mal connecten und ordentliche Musik abspielen 🙂

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

                              @Vujagig
                              Nur das mi band als Zugang für Haus oder Garage nutzen wäre grob fahrlässig, falls ich dich korrekt verstanden habe. Jeder, der iwie scannt könnte dein Signal klonen. Es sei denn du würdest Mac und manipulierte rolling Manufacturer Data (quasi als Schlüssel Code) nutzen. Aber sowas ist glaub mir der Mi nicht möglich.
                              Evtl könnte das Smartphone umfunktioniert werden, sodass z.B. der Code vom Google Authenticator gesendet werden könnte. Aber auch das ist nur ein Denkanstoß und übersteigt meine Programmierkenntnisse bei Weitem.

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

                                @GiuseppeS nun bei der Wohnungstür geb ich dir schon Recht, da würd ich noch einen 2ten Faktor nehmen. Garage ist unkritisch und den Funksender der Zentralverriegelung vom Auto zu Kopieren ist einfacher, da gibt es fertige Produkte in einschlägigen Kreisen. Zum starten brauchst du immer noch den Zündschlüssel. Ist ein ziemlich alter Ford den kommst du mit jedem dritten Ford Schlüssel auf 🙂
                                Dazu kommt noch das security by obscurity hier ganz gut funktioniert weil wirklich niemand auf die Idee kommt. Da belauschen die eher Funkschlüssel.

                                1 Reply Last reply Reply Quote 1
                                • S
                                  shooter last edited by

                                  Moin,
                                  ich hab das Ding auch mal aufgesetzt (paar kleine Bugs hat das Teil noch, z.B. sollte es einen Ordern im Broker erstellen um seine Infos dann dort zu sammeln...hab ich auch schon soweit umgesetzt).

                                  Ich habe jetzt ehr das Problem das mein Handy nicht erkannt wird. LE Beacons gehen aber ...

                                  Workaround ist für mich der Beacon Simulator (auf Android), damit geht das soweit auch aber bei jedem Neustart von Bluetooth oder Handy habe ich leider eine andere MAC Adresse...das ist so nicht praktikabel (außer halt zum testen). Eine feste MAC lässt sich leider nicht einstellen, ist wohl Betriebssystem bedingt.

                                  Hat jemand noch eine Lösung parat? Mit Handy? Ohne Beacon?

                                  Es geht mir darum das meine Family IMMER ihr Handy dabei hat, es wäre schon wenn es damit ginge...

                                  Ansonsten super Arbeit! Genau was ich gesucht habe!

                                  Gruß,

                                  Flo

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

                                    @shooter
                                    Auf Basis des Skripts aus dem ersten Post, habe ich meins erstellt.

                                    Optimierungen:

                                    • nicht nur Mac sondern auch manufacturer data wird gesendet. Somit auch über das Smartphone nutzbar, da wechselnde iBeacon Mac mit Android App "Beacon Simulator", aber manu data bleibt konstant.
                                    • Bugfix bzgl json string: keine Treffer beim Scan führten zu fehlerhaftem json. Ist nun korrigiert.
                                    • im Namen der empfangenen ioBroker id steht auch der Ort des Absenders und dessen IP. Ort wird im ino Skript angegeben, aktuell "bett".
                                    • Updates können ota über den Webserver eingespielt werden.

                                    Übrigens: bei mir wird die Smartphone App mit dem Handy Neustart nicht automatisch gestartet. Nutze dafür die App Tasker, die ich eh aus verschiedenen Gründen installiert habe. Parallel zum Handy nutze ich neuerdings auch meine Mi Watch Band 5. Klappt einwandfrei.

                                    mqtt_anwesenheit_ota.ino.zip

                                    K screendj 2 Replies Last reply Reply Quote 0
                                    • S
                                      shooter last edited by

                                      @GiuseppeS

                                      Vielen Dank! Das schaue ich mir an, klingt ja nach einer Lösung 🙂

                                      Viele Grüße,

                                      Flo

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

                                        @GiuseppeS
                                        Vielen Dank für dein Script
                                        Ich benötige mal Hilfe, das Script läuft und erkennt auch die Mac Adressen.
                                        Bekomme keine Verbindung zum MQTT Adapter.
                                        gibt es da irgend ein HowTo?
                                        Danke

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

                                          @Kopterframe

                                          Ich verwende mosquitto als Broker und in ioBroker nur den mqtt Client. Damit habe ich keine Probleme. Über den "Umweg" mit mosquitto kannst du auch den Weg vom esp32 zum Server besser prüfen. In meinem Script hatte ich übrigens das login für mqtt deaktiviert, d.h. es können hier kein User + Passwort angegeben werden.
                                          Grundsätzlich solltest du IP und Port checken

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

                                            @GiuseppeS
                                            Ip und Port passen, habe ich mehfach geprüft. Hatte auch schon das original von
                                            http://esp32-server.de/mqtt-ble/ mit meinen Wlan Zugangsdaten versucht.
                                            beide Fils laufen, das sehe ich am Terminal. Es werden auch alle MAC ausgegeben.
                                            Auf welchem Systhem hast du IoBroker laufen?
                                            Ich am NAS Synology in Docker.
                                            kann mir nur vorstellen, dass es mit dem Docker zusammenhängt.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            833
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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