ESP32 als Bluetooth Scanner (mit ESPhome)

Ich möchte des ESP32 als Bluetooth Scanner verwenden und ein bestimmte BT MAC Adresse oder UUID auslesen und dann als ON oder OFF in ESPHome schalten
Aber er macht es nicht. Die gesendete BT MAC Adresse und die UUID aus de iBeacon APP habe ich mehrmals geprüft.

Hinweis: habe sehr viele Shelly Geräte, die auch BT MAC Adressen laufen senden.
Die werden bei

# Enable logging
logger:
  level: VERY_VERBOSE

Nicht erkannt. Aber dafür ganz viele von den Shelly Geräten.

Hier der Code Schnipsel:

  scan_parameters:
    interval: 320ms 
    window: 250ms 
    duration: 10s 
    active: false

binary_sensor:

#Präsenz BT MAC Adresse
  - platform: ble_presence 
    mac_address: AC:80:FB:42:FF:A8
    name: "Flur - Wohnungstür - BT MAC"

# Präsenz iBeacon UUID
  - platform: ble_presence
    ibeacon_uuid: '44806bc7-6c1a-4505-a7f2-f2545898db80'
    name: "Flur - Wohnungstür - UUID"

sensor:
  - platform: ble_rssi
    mac_address: AC:80:FB:42:FF:A8
    name: "Flur - Wohnungstür - BT MAC"

Habe schon alle möglich Parameter geändert. Alles ohne Erfolg.
Bin jetzt schon viele Stunden mir dem Thema beschäftigt :face_with_raised_eyebrow:

Was mache ich falsch oder was kann ich anders machen?

Ich habe das ganze mit Espresense gemacht, dann per MQTT in HA eingebunden.
Meine Sensor in der configuration.yaml sehen so aus:

sensor:
  - platform: mqtt_room
    device_id: "XXXXXXXX"
    name: "Shelly Beacon"
    state_topic: "espresense/devices/XXXXXXXX"
    timeout: 5
    away_timeout: 90

Was hast du denn auf deinen ESP32 geflasht ??

Ich habe einige ESP32 mit ziemlich komplizierten YAML-Codes im erfolgreichen Einsatz.

Aber ich muss hier jetzt gestehen, das ich den Begriff “geflasht” oft gehört habe,
jedoch nie irgend sowas machen musste.
Dh. ich bin bei deiner Frage überfordert.

Ich habe bisher alles mit ESPhome gemacht. Vielleich brauche ich da sowas nicht machen? Kann das sein? Oder heißt das da anders?

ahhh ok … du machst es mit ESP home … da kann ich dir leider nicht helfen

vielleicht fügst du die Info noch mal im Titel und deiner Beschreibung hinzu


Läuft noch etwas anderes auf dem ESP ?? oder wirklich nur reiner Bluetooth Scanner? ansonsten könntest du dir wirklich mal ESPresense anschauen.

Grüße
Jens

Ich dachte, ich hätte das mit dieser Bemerkung gemacht.

sorry … hatte ich wohl nicht richtig gelesen

Hat wirklich keiner eine Vorschlag, warum der code nicht funktioniert.
Der ist genau nach erprobten Anweisungen erstellt.

Schau mal hier:

1 „Gefällt mir“

Ich habe jetzt deinen Vorschlag einmal auf einen ESP32C3-Mini aber auch auf einen normalen ESP32 (board: esp32dev) installiert.
Es werden ganz viele Bluetooth Geräte gescannt.
Leider nicht das Beacon (UUID), welchens von meiner iBeacon App gesendet wird. UND auch nicht die BT MAC Adresse aus den Samsung S23 (Android Version 14) Das gleiche bei meinem BT vom Windows 11 PC .
Wenn ich das BT beim Smansung aus und wieder anschalte, dann kommen jedesmal 3 neue BT MAC Adressen und IDs. Beim BT vom PC jedelmal einen auch eine neue BT MAC und ID. Aber nie die Geräte BT MAC Adressen.
Das verstehe ich nicht. Seit Stunden habe ich alles mögliche versucht Auch bei meinem alten Samsung S8 ist das so.

In den Videos ist das leider nicht so.
Kann mir einer helfen?

Die mir bekannten BT MAC Adressen von diversen Bluetooth Geräten werden ohne Probleme gescannt.

UND ich habe einen gekauften BTScanner (auch mit einen ESP32), der die Geräte BT MAC Adresse eindeutig vom gleichem Smartphone erkennt. Es gaht also offensichtlich.

Das steht auf der Hilfe Seite dazu:

I just want to use the mac address of my device as the id
Add the mac(s) to the box labled Known BLE mac addresses - ESPresense will use the id known:{mac} if that mac is seen.

I tried known mac, but then the device “disappeared”
It appears your device is using BLE Mac Randomization, we instead need to look at things other than mac to track it

Es gibt jede Menge Videos, bei denen es so wie ich es nachgemacht habe, mit Samsung in iPhone funktioniert. Wie so nicht bei uns.
Weder die Variante mit ESPhome noch die mit ESPresense erkennt die bekannten BT MAC Adressen der Smartphones.
Aber zB. von meinen kleinen Bluetooth Etikettendrucker erkennen beide Varianten ohne Probleme das Gerät. Das ist schon alles ziemlich abstruse.

Schau mal wenn du in deinem WLAN bist an deinem Handy, wenn du auf das WLAN klickst was da bei Mac Adresstyp steht. Wahrscheinlich ist da bei dir zufällige Mac drin. Das musst du umstellen auf Telefon MAC

Das ver ?stehe ich nicht. Ich weiß nicht, was du meinst. Kannst du mir das mit anderen Worten sagen, was ich machen soll.

Schau mal unter Einstellungen WLAN und wähle dort dein WLAN aus und dort wieder auf erweiterte Einstellungen klicken:

Da muss das zufällige Mac gegen Telefon Mac getauscht werden

Danke. Jetzt habe ich es gefunden. Ziemlich versteckt. Aber geht trotzden nicht.
Aber was ich immer noch nicht verstehe. Was hat das mit der WLAN MAC Adresse mit der Bluetooth MAC Adresse zu tun?

Hast du denn die Mac Adressen bei deinem ESP als known eingetragen? Und tauchen die weiter im Log auf?

Lade dir auf dein Handy mal Beacon Simulator und erstelle eine Eddystone UID. Vielleicht geht es ja damit.

Homeassistant ist auf dem Handy installiert?

Ja, ja, ja
Habe ich alles gemacht.

Okay… Und trotzdem sind es jedesmal 3 neue Mac Adressen wenn du beim Handy Bluetooth aus und wieder anschaltest? Und keine ist die, welche im Handy unter Bluetooth Mac hinterlegt ist?

Ja genau. Das sollen rolierende BT MAC Adressen sein, was des Sicherheit dienen soll. Angeblich soll man das bei den Einstellumgen irgendwo ändern können. Nach vielen langen und wiederholten SuchenS habe ich das nicht gefunden. Weder bei meinem Samsung S23 noch beim S8.
Was merkwürdig ist, ein anderer gekaufter BT Scanner (auch auf ESP Basis) erkennt die meine BT MAC Adressen. Das ich auch ein in Kleistserien gebautet Sensor, der der “Bastler” verkauft.

Aber die Hardware MAC kennst du und hast die bei known eingetragen? Genauso wie die UUID von der Beacon App?