Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    927

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32

Scheduled Pinned Locked Moved Hardware
242 Posts 26 Posters 49.1k Views 32 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G GiuseppeS

    @Kopterframe
    Wenn du den mqtt Adapter verwendest, bringt der den mqtt Broker + Client mit. Dann musst du dort alles einstellen.

    K Offline
    K Offline
    Kopterframe
    wrote on last edited by
    #26

    @GiuseppeS
    egal, was ich einstelle. Bekommen keine Verbindung??

    1 Reply Last reply
    0
    • G GiuseppeS

      @Kopterframe
      Wenn du den mqtt Adapter verwendest, bringt der den mqtt Broker + Client mit. Dann musst du dort alles einstellen.

      K Offline
      K Offline
      Kopterframe
      wrote on last edited by Kopterframe
      #27

      @GiuseppeS
      ich Esel, habe doch auf dem ESP die die eigene IP eingetragen.
      Geändert und schon geht es.
      Sorry, ich bin relativ neu in der ganzen Materie IOBroker.
      Ist ein bischen viel auf einmal.
      Vielleicht kannst du mir noch sagen wie ich nun einen Datenpungt für die Mac Adressen anlege, zum auswerten.
      Vielen Dank

      1 Reply Last reply
      1
      • G 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

        screendjS Offline
        screendjS Offline
        screendj
        wrote on last edited by
        #28

        @giuseppes
        Beim kompilieren bekomme ich folgende Meldung class PubSubClienthas no member named setServer
        Ich kenne mich damit garnicht so gut. Was genau muß ich de ändern ?

        Gruß
        Lexi

        G 1 Reply Last reply
        0
        • screendjS screendj

          @giuseppes
          Beim kompilieren bekomme ich folgende Meldung class PubSubClienthas no member named setServer
          Ich kenne mich damit garnicht so gut. Was genau muß ich de ändern ?

          Gruß
          Lexi

          G Offline
          G Offline
          GiuseppeS
          wrote on last edited by
          #29

          @screendj
          Hi, sorry, aber ich bin auch alles andere als ein Profi. Viel try&error zzgl Google. Ich könnte auch nur Google bemühen.

          screendjS 1 Reply Last reply
          0
          • G GiuseppeS

            @screendj
            Hi, sorry, aber ich bin auch alles andere als ein Profi. Viel try&error zzgl Google. Ich könnte auch nur Google bemühen.

            screendjS Offline
            screendjS Offline
            screendj
            wrote on last edited by
            #30

            @giuseppes
            Danke....
            Bin langsam am verzweifeln. Bekomme es nicht ans laufen....

            1 Reply Last reply
            0
            • W Offline
              W Offline
              Wildbill
              wrote on last edited by
              #31

              Ich nöchte gerne ein älteres Handy (für Senioren) auf An- und Abwesenheit prüfen. Dieses unterstützt aber leider kein BLD sondern nur Bluetooth classic. Ist jemand so fit und kann mir sagen, wie das Script umzuschreiben ist, um anstatt BLE eben classic-Geräte zu scannen?
              Es gibt diverse Beispiele für BT classic, aber meist geht es da um Zugriff via Bluetooth console. Einen Scanner, oder gar die Anbindung via MQTT finde ich bislang nirgends. Kann doch nicht sein, dass ich der erste bin, der so etwas sucht?!

              Gruss, Jürgen

              G 1 Reply Last reply
              0
              • W Wildbill

                Ich nöchte gerne ein älteres Handy (für Senioren) auf An- und Abwesenheit prüfen. Dieses unterstützt aber leider kein BLD sondern nur Bluetooth classic. Ist jemand so fit und kann mir sagen, wie das Script umzuschreiben ist, um anstatt BLE eben classic-Geräte zu scannen?
                Es gibt diverse Beispiele für BT classic, aber meist geht es da um Zugriff via Bluetooth console. Einen Scanner, oder gar die Anbindung via MQTT finde ich bislang nirgends. Kann doch nicht sein, dass ich der erste bin, der so etwas sucht?!

                Gruss, Jürgen

                G Offline
                G Offline
                GiuseppeS
                wrote on last edited by
                #32

                @wildbill
                Im Zusammenhang mit IoBroker kannst du den Radar Adapter verwenden.

                W 1 Reply Last reply
                0
                • G GiuseppeS

                  @wildbill
                  Im Zusammenhang mit IoBroker kannst du den Radar Adapter verwenden.

                  W Offline
                  W Offline
                  Wildbill
                  wrote on last edited by
                  #33

                  @giuseppes Den kenne ich, der bringt mir aber nichts, da dort, wo ich gerne die Anwesenheit per BT classic prüfen würde, keiner meiner Rechner steht und mir selbst ein Raspi nur für diese eine Aufgabe etwas zu viel Overkill wäre. Zumal ich da jetzt auch extra einen kaufen müsste oder zumindest einen BT-Dongle für einen alten Raspi 1, der noch rumliegt.
                  Via ESP32 wäre halt schön schlank und ich hätte alles da, bis auf den passenden Sketch...

                  Gruss, Jürgen

                  G 1 Reply Last reply
                  0
                  • W Wildbill

                    @giuseppes Den kenne ich, der bringt mir aber nichts, da dort, wo ich gerne die Anwesenheit per BT classic prüfen würde, keiner meiner Rechner steht und mir selbst ein Raspi nur für diese eine Aufgabe etwas zu viel Overkill wäre. Zumal ich da jetzt auch extra einen kaufen müsste oder zumindest einen BT-Dongle für einen alten Raspi 1, der noch rumliegt.
                    Via ESP32 wäre halt schön schlank und ich hätte alles da, bis auf den passenden Sketch...

                    Gruss, Jürgen

                    G Offline
                    G Offline
                    GiuseppeS
                    wrote on last edited by
                    #34

                    @wildbill
                    Habe gerade kurz google bemüht aber bzgl. BTClassic auch kaum was gefunden, höchstens Hinweise, dass der esp32 das könnte...
                    Der einfache Weg für dich könnte sein, auf dem Android die App "Beacon Simulator" zu installieren. Das würde mit dem hier gezeigten Sketch funktionieren.
                    Aber nicht jedes Smartphone kann das. Selbst bei aktuellen Modellen gibt es Unterschiede. Mein Huawei P30 Pro sendete einwandfrei, mein aktuelles Smartphone, ein OnePlus 8 Pro, weil einfach nichts senden...

                    Ich benutze in Verbindung mit dem esp32 die xiaomi mi band 5.

                    W 1 Reply Last reply
                    0
                    • G GiuseppeS

                      @wildbill
                      Habe gerade kurz google bemüht aber bzgl. BTClassic auch kaum was gefunden, höchstens Hinweise, dass der esp32 das könnte...
                      Der einfache Weg für dich könnte sein, auf dem Android die App "Beacon Simulator" zu installieren. Das würde mit dem hier gezeigten Sketch funktionieren.
                      Aber nicht jedes Smartphone kann das. Selbst bei aktuellen Modellen gibt es Unterschiede. Mein Huawei P30 Pro sendete einwandfrei, mein aktuelles Smartphone, ein OnePlus 8 Pro, weil einfach nichts senden...

                      Ich benutze in Verbindung mit dem esp32 die xiaomi mi band 5.

                      W Offline
                      W Offline
                      Wildbill
                      wrote on last edited by
                      #35

                      @giuseppes Es ist leider ein wirkliches Seniorenhandy. Kein Android, kein Apple, kein Internet. Sondern ein einfaches Klapphandy von Doro. Klappe auf, Anruf annehmen, Klappe zu auflegen, dazu drei Kurzwahltasten. Da ist leider nix mit Apps installieren. Aber BT classic hat es drin.
                      Dass mit dem ESP32 in Verbindung mit diesem Handy BT Classic geht, habe ich bereits getestet. Es gibt ja durchaus Sketche um sich manuell vom Handy aus per BT classic mit dem ESP zu verbinden. Das hat geklappt. Und hätte ich auf dem Handy Apps installierne können, dann hätte ich Eingaben auch sicher auf der seriellen Console gesehen. Also die Hardware kann alles. Nur sind alle BT-Scanner die ich gefunden habe immer nur für BLE. Für BT classic gibt es immer nur Beispiele, um sich per Terminal-App zu verbinden. Warum auch immer...
                      Meiner Mutter mit >70 Jahren möchte ich deshalb aber jetzt auch nicht mehr Android oder so näherbringen. Die kommt mit dem Handy gerade so klar, alles andere wäre 100% nix.

                      Gruss, Jürgen

                      W 1 Reply Last reply
                      0
                      • W Wildbill

                        @giuseppes Es ist leider ein wirkliches Seniorenhandy. Kein Android, kein Apple, kein Internet. Sondern ein einfaches Klapphandy von Doro. Klappe auf, Anruf annehmen, Klappe zu auflegen, dazu drei Kurzwahltasten. Da ist leider nix mit Apps installieren. Aber BT classic hat es drin.
                        Dass mit dem ESP32 in Verbindung mit diesem Handy BT Classic geht, habe ich bereits getestet. Es gibt ja durchaus Sketche um sich manuell vom Handy aus per BT classic mit dem ESP zu verbinden. Das hat geklappt. Und hätte ich auf dem Handy Apps installierne können, dann hätte ich Eingaben auch sicher auf der seriellen Console gesehen. Also die Hardware kann alles. Nur sind alle BT-Scanner die ich gefunden habe immer nur für BLE. Für BT classic gibt es immer nur Beispiele, um sich per Terminal-App zu verbinden. Warum auch immer...
                        Meiner Mutter mit >70 Jahren möchte ich deshalb aber jetzt auch nicht mehr Android oder so näherbringen. Die kommt mit dem Handy gerade so klar, alles andere wäre 100% nix.

                        Gruss, Jürgen

                        W Offline
                        W Offline
                        Wildbill
                        wrote on last edited by
                        #36

                        @GiuseppeS Ich habe nun doch eine kleine BLE beacon für den Schlüsselbund gekauft. Der ist auch immer am Mann (an der Frau) und alles funktioniert.

                        Gruß, Jürgen

                        1 Reply Last reply
                        1
                        • W Offline
                          W Offline
                          Wildbill
                          wrote on last edited by Wildbill
                          #37

                          @GiuseppeS Muss nochmal blöd fragen, weil ich grad irgendwie auf dem Schlauch stehe. Zum testen hatte ich mir die MQTT-Messages an einen Mosquitto-Testserver geschickt, den ich mit FHEM abfrage. Dort bekam ich für jedes gefundene Gerät einen eigenen Datenpunkt und konnte direkt darauf reagieren.
                          Nun wollte ich mir den Umweg über FHEM sparen und die Daten direkt an den MQTT-Broker in iobroker schicken, der sowieso läuft. Die Daten kommen auch an, aber leider habe ich nur einen Datenpunkt, der alle enthält:

                          [{"manuData": "8f3a109e405c6fe27c23448103fa010ff3f11000","mac": "44:23:7c:e2:6f:5e","rssi": -86}, {"manuData": "8f3a1055a08b33dfce55c8103f545ff3f11000","mac": "5c:e5:0c:df:33:8d","rssi": -82}, {"manuData": "8f3a109e40d279bc190648103fd46ff3f11000","mac": "64:90:c1:9b:27:0f","rssi": -83}, {"manuData": "8f3a109e40522da2c190648103fa47ff3f11000","mac": "64:90:c1:a2:2d:54","rssi": -73}, {"manuData": "00789ce77308b0a2c190648103f748ff3f11000","mac": "78:9c:e7:07:30:8b","rssi": -80}, {"manuData": "4c0215fda5693a4e24fb1afcfc6eb7647825275165c1","mac": "dc:0d:7f:05:26:47","rssi": -83}, {"manuData": "0000e77308b0a2c190648103ffcaff3f11000","mac": "e8:f2:e2:cd:2f:05","rssi": -68}]
                          

                          Wie kann ich denn da auf ein ebstimmtes Gerät triggern? Also, wenn es Daten schickt, setze einen Datenpunkt "Anwesenheit" auf true, wenn keine Daten kommen, setzte ihn auf false. Ich habe auch schon mehrere Scripte hier im Forum getestet, die JSON-Strings in einzelne Datenpunkte aufteilen, aber irgendwie bin ich zu doof. Muss glaub doch noch Javascript lernen... :confounded:

                          Gruss, Jürgen

                          G 1 Reply Last reply
                          0
                          • W Wildbill

                            @GiuseppeS Muss nochmal blöd fragen, weil ich grad irgendwie auf dem Schlauch stehe. Zum testen hatte ich mir die MQTT-Messages an einen Mosquitto-Testserver geschickt, den ich mit FHEM abfrage. Dort bekam ich für jedes gefundene Gerät einen eigenen Datenpunkt und konnte direkt darauf reagieren.
                            Nun wollte ich mir den Umweg über FHEM sparen und die Daten direkt an den MQTT-Broker in iobroker schicken, der sowieso läuft. Die Daten kommen auch an, aber leider habe ich nur einen Datenpunkt, der alle enthält:

                            [{"manuData": "8f3a109e405c6fe27c23448103fa010ff3f11000","mac": "44:23:7c:e2:6f:5e","rssi": -86}, {"manuData": "8f3a1055a08b33dfce55c8103f545ff3f11000","mac": "5c:e5:0c:df:33:8d","rssi": -82}, {"manuData": "8f3a109e40d279bc190648103fd46ff3f11000","mac": "64:90:c1:9b:27:0f","rssi": -83}, {"manuData": "8f3a109e40522da2c190648103fa47ff3f11000","mac": "64:90:c1:a2:2d:54","rssi": -73}, {"manuData": "00789ce77308b0a2c190648103f748ff3f11000","mac": "78:9c:e7:07:30:8b","rssi": -80}, {"manuData": "4c0215fda5693a4e24fb1afcfc6eb7647825275165c1","mac": "dc:0d:7f:05:26:47","rssi": -83}, {"manuData": "0000e77308b0a2c190648103ffcaff3f11000","mac": "e8:f2:e2:cd:2f:05","rssi": -68}]
                            

                            Wie kann ich denn da auf ein ebstimmtes Gerät triggern? Also, wenn es Daten schickt, setze einen Datenpunkt "Anwesenheit" auf true, wenn keine Daten kommen, setzte ihn auf false. Ich habe auch schon mehrere Scripte hier im Forum getestet, die JSON-Strings in einzelne Datenpunkte aufteilen, aber irgendwie bin ich zu doof. Muss glaub doch noch Javascript lernen... :confounded:

                            Gruss, Jürgen

                            G Offline
                            G Offline
                            GiuseppeS
                            wrote on last edited by GiuseppeS
                            #38

                            @wildbill
                            Ich mache das wie folgt:
                            In meinem Skript ist die MAC oder die Manu Data notiert und in dem JSON suche ich danach. Das Ergebnis, wenn vorhanden, schreibe ich in ein separates State extra für dieses Gerät. Ist in Javascript geschrieben. Könnte ich auch zur Verfügung stellen.

                            Bzgl JSON musste ich zu Beginn auch viel Try&Error durchmachen, inkl Google. Aber ich sag mal so: hier ist es eine klare kleine Aufgabe. Mit einer entsprechenden Vorlage sollte man klar kommen.

                            W 1 Reply Last reply
                            0
                            • G GiuseppeS

                              @wildbill
                              Ich mache das wie folgt:
                              In meinem Skript ist die MAC oder die Manu Data notiert und in dem JSON suche ich danach. Das Ergebnis, wenn vorhanden, schreibe ich in ein separates State extra für dieses Gerät. Ist in Javascript geschrieben. Könnte ich auch zur Verfügung stellen.

                              Bzgl JSON musste ich zu Beginn auch viel Try&Error durchmachen, inkl Google. Aber ich sag mal so: hier ist es eine klare kleine Aufgabe. Mit einer entsprechenden Vorlage sollte man klar kommen.

                              W Offline
                              W Offline
                              Wildbill
                              wrote on last edited by
                              #39

                              @giuseppes Ja gerne. Ich tippsel mir gerade die Finger wund und versuche aus verschiedenen Scripten, die ich hier im Forum zum Thema JSON parsen finde, was zusammenzustupfen, aber irgendwie will es nicht so ganz. Wenn Du mir da einen Denkanstoß geben könntest, würde ich das sicher angepasst bekommen.

                              Mir fehlen halt die Grundlagen der Javascript-Befehle und dann wird es da schon schwer. Mit Blockly fühle ich mich sehr wohl, aber das ist hier fehl am Platz.
                              Worin ich aber recht gut bin, ist Scripte anderer dann zu verstehen und für meine Zwecke anzupassen. :blush:

                              Gruss, Jürgen

                              G 1 Reply Last reply
                              0
                              • W Wildbill

                                @giuseppes Ja gerne. Ich tippsel mir gerade die Finger wund und versuche aus verschiedenen Scripten, die ich hier im Forum zum Thema JSON parsen finde, was zusammenzustupfen, aber irgendwie will es nicht so ganz. Wenn Du mir da einen Denkanstoß geben könntest, würde ich das sicher angepasst bekommen.

                                Mir fehlen halt die Grundlagen der Javascript-Befehle und dann wird es da schon schwer. Mit Blockly fühle ich mich sehr wohl, aber das ist hier fehl am Platz.
                                Worin ich aber recht gut bin, ist Scripte anderer dann zu verstehen und für meine Zwecke anzupassen. :blush:

                                Gruss, Jürgen

                                G Offline
                                G Offline
                                GiuseppeS
                                wrote on last edited by
                                #40

                                @wildbill
                                Geht klar, dann setze ich mich gleich mal an den PC. Nur vorab als Tip: Es ist eigentlich ein Array mit mehreren JSON Objekten.

                                W 1 Reply Last reply
                                0
                                • G GiuseppeS

                                  @wildbill
                                  Geht klar, dann setze ich mich gleich mal an den PC. Nur vorab als Tip: Es ist eigentlich ein Array mit mehreren JSON Objekten.

                                  W Offline
                                  W Offline
                                  Wildbill
                                  wrote on last edited by
                                  #41

                                  @giuseppes Das habe ich ziemlich am Anfang schon festgestellt. Erster Schritt war, den Inhalt des Datenpunktes mal in einen Online JSON Parser zu schieben und zu schauen, wie die Struktur genau ist. Array machte es dann für mich nicht leichter. Das meiste, was ich gefunden habe, waren JSON ohne Array und meist noch mit fester Struktur. Hier im Array ändern sich ja auch immer mal die Nummern der einzelnen Geräte, je nachdem, was ankommt und gerade nicht gehört wird...

                                  Gruss, Jürgen

                                  G 1 Reply Last reply
                                  0
                                  • W Wildbill

                                    @giuseppes Das habe ich ziemlich am Anfang schon festgestellt. Erster Schritt war, den Inhalt des Datenpunktes mal in einen Online JSON Parser zu schieben und zu schauen, wie die Struktur genau ist. Array machte es dann für mich nicht leichter. Das meiste, was ich gefunden habe, waren JSON ohne Array und meist noch mit fester Struktur. Hier im Array ändern sich ja auch immer mal die Nummern der einzelnen Geräte, je nachdem, was ankommt und gerade nicht gehört wird...

                                    Gruss, Jürgen

                                    G Offline
                                    G Offline
                                    GiuseppeS
                                    wrote on last edited by GiuseppeS
                                    #42

                                    @wildbill

                                    
                                    // erstelle States für Zielwerte
                                    createState("VIS.bleScan.Pino.RawWemos");
                                    createState("VIS.bleScan.Pino.AvgWemos");
                                    
                                    // nachfolgend kann auch manuData statt MAC eingetragen werden
                                    // dann müsste unten der Vergleich auf manuData statt mac erfolgen
                                    // z.B. val[dev].manuData.includes(pino) statt val[dev].mac.includes(pino)
                                    let pino = "ed:4b:90:40:e7:ba";
                                    
                                    // für Berechnung gleitender Mittelwert
                                    let arrPinoWemos = [0,0,0,0,0,0];
                                    
                                    
                                    on({id: "mqtt-client.0.bleScan.bett_192_168_192_49", change: "ne"}, function (obj) {
                                    
                                        // Array in val schreiben
                                        let val = JSON.parse(obj.state.val);
                                        
                                        // Array durchlaufen
                                        for ( let dev=0; dev < val.length; dev++){
                                            //console.log(val[dev].mac + " | " + val[dev].rssi + " | " + val[dev].manuData);
                                            
                                            // Wenn MAC des betrachteten Array Elements oben definierte MAC enthält...
                                            if( val[dev].mac.includes(pino) ) {
                                                
                                                // Schreibe RSSI Wert direkt in das RAW State (oben definiert)
                                                setState("javascript." + instance + ".VIS.bleScan.Pino.RawWemos", val[dev].rssi);
                                    
                                                // ab hier gleitender Mittelwert über letzte 6 Elemente (kann oben auch größer definiert werden)
                                                arrPinoWemos.shift();
                                                arrPinoWemos.push(val[dev].rssi);
                                                let sum = arrPinoWemos.reduce((a, b) => a + b, 0);
                                                let avg = (sum / arrPinoWemos.length) || 0;
                                                setState("javascript." + instance + ".VIS.bleScan.Pino.AvgWemos", Math.round(avg));
                                            }
                                        };
                                    });
                                    

                                    Habe ergänzende Kommentare hinzugefügt. Sollte hoffentlich selbsterklärend sein. Wenn nicht, einfach nachfragen ;-)

                                    W S 2 Replies Last reply
                                    1
                                    • G GiuseppeS

                                      @wildbill

                                      
                                      // erstelle States für Zielwerte
                                      createState("VIS.bleScan.Pino.RawWemos");
                                      createState("VIS.bleScan.Pino.AvgWemos");
                                      
                                      // nachfolgend kann auch manuData statt MAC eingetragen werden
                                      // dann müsste unten der Vergleich auf manuData statt mac erfolgen
                                      // z.B. val[dev].manuData.includes(pino) statt val[dev].mac.includes(pino)
                                      let pino = "ed:4b:90:40:e7:ba";
                                      
                                      // für Berechnung gleitender Mittelwert
                                      let arrPinoWemos = [0,0,0,0,0,0];
                                      
                                      
                                      on({id: "mqtt-client.0.bleScan.bett_192_168_192_49", change: "ne"}, function (obj) {
                                      
                                          // Array in val schreiben
                                          let val = JSON.parse(obj.state.val);
                                          
                                          // Array durchlaufen
                                          for ( let dev=0; dev < val.length; dev++){
                                              //console.log(val[dev].mac + " | " + val[dev].rssi + " | " + val[dev].manuData);
                                              
                                              // Wenn MAC des betrachteten Array Elements oben definierte MAC enthält...
                                              if( val[dev].mac.includes(pino) ) {
                                                  
                                                  // Schreibe RSSI Wert direkt in das RAW State (oben definiert)
                                                  setState("javascript." + instance + ".VIS.bleScan.Pino.RawWemos", val[dev].rssi);
                                      
                                                  // ab hier gleitender Mittelwert über letzte 6 Elemente (kann oben auch größer definiert werden)
                                                  arrPinoWemos.shift();
                                                  arrPinoWemos.push(val[dev].rssi);
                                                  let sum = arrPinoWemos.reduce((a, b) => a + b, 0);
                                                  let avg = (sum / arrPinoWemos.length) || 0;
                                                  setState("javascript." + instance + ".VIS.bleScan.Pino.AvgWemos", Math.round(avg));
                                              }
                                          };
                                      });
                                      

                                      Habe ergänzende Kommentare hinzugefügt. Sollte hoffentlich selbsterklärend sein. Wenn nicht, einfach nachfragen ;-)

                                      W Offline
                                      W Offline
                                      Wildbill
                                      wrote on last edited by
                                      #43

                                      @giuseppes Perfekt, läuft.
                                      Vielen vielen Dank. Da hätte ich noch eine Weile rumgemacht. Ich glaube auch, ich habe im Array eine Ebene übersehen gehabt. Aber nun kommen die Daten einwandfrei. :+1:

                                      Gruss, Jürgen

                                      G 1 Reply Last reply
                                      1
                                      • W Wildbill

                                        @giuseppes Perfekt, läuft.
                                        Vielen vielen Dank. Da hätte ich noch eine Weile rumgemacht. Ich glaube auch, ich habe im Array eine Ebene übersehen gehabt. Aber nun kommen die Daten einwandfrei. :+1:

                                        Gruss, Jürgen

                                        G Offline
                                        G Offline
                                        GiuseppeS
                                        wrote on last edited by
                                        #44

                                        @wildbill
                                        Gern geschehen :v:

                                        W 1 Reply Last reply
                                        0
                                        • G GiuseppeS

                                          @wildbill
                                          Gern geschehen :v:

                                          W Offline
                                          W Offline
                                          Wildbill
                                          wrote on last edited by
                                          #45

                                          @giuseppes Habe heute ein kleines Problem festgestellt. Wenn ich den MQTT-Adapter im iobroker neu starte, dann verbindet sich der ESP nicht mehr automatisch. Es kommt dann im Log

                                          Client [bleScan/oben_192_168_100_94] has invalid password(undefined) or username(undefined)
                                          

                                          Scheint, als würde er keine neue Verbindung aushandeln. Ich muss ihn dann einmal neu starten (aus- und wieder einstecken) und schon läuft er wieder. Bevor ich ihn jetzt umflashe und den Umweg über meinen Mosquitto nehmen lasse, bringt mir das überhaupt was? Der ist auch mit user/password versehen. Handelt der das anders?

                                          Gruss, Jürgen

                                          G 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          389

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe