Something wrong with my config or don't I understand ble_trackers?

Hi,

I have this config. I moved things around so the things (I think) are relevant are close to the top.

substitutions:
  max_temp: "70" # °C
  action_single_text: single
  action_double_text: double
  max_ble_connections: "5"
  devicename: "keller-flur-flurlicht"

esphome:
  name: ${devicename}
  friendly_name: "Keller Flurlicht"
  platformio_options:
    board_build.f_cpu: 160000000L


esp32:
  board: esp32-c3-devkitm-1
  flash_size: 8MB
  framework:
    type: esp-idf
    version: recommended
    sdkconfig_options:
      COMPILER_OPTIMIZATION_SIZE: y
      CONFIG_FREERTOS_UNICORE: y
      CONFIG_ESP32_DEFAULT_CPU_FREQ_160: y
      CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ: "160"
      CONFIG_ESP_TASK_WDT_TIMEOUT_S: "20"
      #CONFIG_BT_BLE_50_FEATURES_SUPPORTED: y
      #CONFIG_BT_BLE_42_FEATURES_SUPPORTED: y


wifi:
  ssid: !secret wifi_iot_ssid
  password: !secret wifi_iot_password
  fast_connect: true #required for hidden ssids
  reboot_timeout: 10min

logger:
  level: VERBOSE

esp32_ble_tracker:
  id: ble_tracker
  #max_connections: $max_ble_connections
  scan_parameters:
    continuous: false
    interval: 211ms
    window: 120ms


bluetooth_proxy:
  #connection_slots: $max_ble_connections
  #active: true

debug:
  update_interval: 5s

text_sensor:
  - platform: debug
    device:
      name: "Device Info"
    reset_reason:
      name: "Reset Reason"  
  - platform: ble_scanner
    name: "BLE Devices Scanner"


# Enable Home Assistant API
api:
  encryption:
    key: !secret ha_api_key

ota:
  - platform: esphome
    password: !secret esphome_ota_password
time:
  - platform: homeassistant



safe_mode:

button:
  - platform: safe_mode
    id: safe_mode_button
    name: "(Safe Mode)"
    
sensor:
  - platform: ntc
    sensor: temp_resistance_reading
    name: Internal Temperature
    id: internal_temperature
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    icon: "mdi:thermometer"
    calibration:
      b_constant: 3350
      reference_resistance: 10kOhm
      reference_temperature: 298.15K
    on_value:
      then:
        - if:
            condition:
              - sensor.in_range:
                  id: internal_temperature
                  above: ${max_temp}
            then:
              - switch.turn_off:
                  id: relay
              - logger.log: "Switch turned off because temperature exceeded ${max_temp}°C"

    on_value_range:
      - above: ${max_temp}
        then:
          - logger.log: "Temperature exceeded ${max_temp}°C"
  - platform: resistance
    id: temp_resistance_reading
    sensor: temp_analog_reading
    configuration: DOWNSTREAM
    resistor: 10kOhm
  - platform: adc
    id: temp_analog_reading
    pin: GPIO3
    attenuation: 12db

output:
  - platform: gpio
    id: "relay_output"
    pin: 7

switch:
  - platform: output
    id: "relay"
    name: Relay
    output: "relay_output"
    restore_mode: restore_default_off

#wallswitch turned into a binary sensor (push button switch)
#https://github.com/esphome/issues/issues/2825
binary_sensor:
  - platform: gpio
    name: Wallswitch
    pin: 10
    filters:
    - delayed_on: 50ms
    internal: true
    id: wallswitch
    on_state:
      then:
        - binary_sensor.template.publish:
            id: wallswitch_clicker
            state: ON
        - delay: 100ms
        - binary_sensor.template.publish:
            id: wallswitch_clicker
            state: OFF

  - platform: template
    id: wallswitch_clicker
    on_multi_click:
      - timing:
        - ON for at most 0.2s
        - OFF for at least 0.3s
        then:
          - logger.log: "Single Click"
          - if:
              condition:
                and:
                  - wifi.connected:
                  - api.connected:
              # send single click event in case wifi and api are conncected
              then:
                - homeassistant.event:
                    event: esphome.button_pressed
                    data:
                      click: ${action_single_text}
                      device_name: ${devicename}
              else:
                - switch.toggle: relay

      - timing:
        - ON for at most 0.2s
        - OFF for at most 0.3s
        - ON for at most 0.2s
        - OFF for at least 0.3s
        then:
          - logger.log: "Double Click"
          - if:
              condition:
                and:
                  - wifi.connected:
                  - api.connected:
              # send double click event in case wifi and api are conncected
              then:
                - homeassistant.event:
                    event: esphome.button_pressed
                    data:
                      click: ${action_double_text}
                      device_name: ${devicename}                    
  - platform: gpio
    name: "Reset Button"
    pin:
      number: 1
      inverted: yes
      mode:
        input: true
        pullup: true


status_led:
  pin:
    number: 0
    inverted: true`

I’m expecting this to print all the bluetooth advertisements it finds (I would like to use them with bermuda (bluetooth tracking).

But the log says

[16:58:08.632][I][app:185]: ESPHome version 2025.9.1 compiled on Oct  9 2025, 16:57:41
[16:58:08.635][C][status_led:018]: Status LED:
[16:58:08.637][C][status_led:019]:   Pin: GPIO0
[16:58:08.647][C][wifi:661]: WiFi:
[16:58:08.652][C][wifi:444]:   Local MAC: E4:B0:63:E0:BF:84
[16:58:08.652][C][wifi:449]:   SSID: [redacted]
[16:58:08.655][C][wifi:452]:   IP Address: 10.1.103.80
[16:58:08.659][C][wifi:456]:   BSSID: [redacted]
[16:58:08.659][C][wifi:456]:   Hostname: 'keller-flur-flurlicht'
[16:58:08.659][C][wifi:456]:   Signal strength: -68 dB ▂▄▆█
[16:58:08.662][C][wifi:467]:   Channel: 6
[16:58:08.662][C][wifi:467]:   Subnet: 255.255.255.0
[16:58:08.662][C][wifi:467]:   Gateway: 10.1.103.1
[16:58:08.662][C][wifi:467]:   DNS1: 10.1.99.2
[16:58:08.662][C][wifi:467]:   DNS2: 10.1.99.3
[16:58:08.666][C][logger:273]: Logger:
[16:58:08.666][C][logger:273]:   Max Level: VERBOSE
[16:58:08.666][C][logger:273]:   Initial Level: VERBOSE
[16:58:08.670][C][logger:279]:   Log Baud Rate: 115200
[16:58:08.670][C][logger:279]:   Hardware UART: USB_SERIAL_JTAG
[16:58:08.671][C][logger:286]:   Task Log Buffer Size: 768
[16:58:08.690][C][gpio.output:010]: Binary Output:
[16:58:08.693][C][gpio.output:011]:   Pin: GPIO7
[16:58:08.730][C][template.binary_sensor:016]: Template Binary Sensor 'wallswitch_clicker'
[16:58:08.734][C][gpio.binary_sensor:016]: GPIO Binary Sensor 'Reset Button'
[16:58:08.736][C][gpio.binary_sensor:072]:   Pin: GPIO1
[16:58:08.739][C][gpio.binary_sensor:073]:   Mode: interrupt
[16:58:08.742][C][gpio.binary_sensor:075]:   Interrupt Type: ANY_EDGE
[16:58:08.767][C][gpio.binary_sensor:016]: GPIO Binary Sensor 'Wallswitch'
[16:58:08.769][C][gpio.binary_sensor:072]:   Pin: GPIO10
[16:58:08.773][C][gpio.binary_sensor:073]:   Mode: interrupt
[16:58:08.775][C][gpio.binary_sensor:075]:   Interrupt Type: ANY_EDGE
[16:58:08.779][C][output.switch:087]: Output Switch 'Relay'
[16:58:08.779][C][output.switch:087]:   Restore Mode: restore defaults to OFF
[16:58:08.797][C][ble_scanner:011]: BLE Scanner 'BLE Devices Scanner'
[16:58:08.800][C][homeassistant.time:010]: Home Assistant Time:
[16:58:08.800][C][homeassistant.time:010]:   Timezone: 'UTC0'
[16:58:08.815][C][bluetooth_proxy:123]: Bluetooth Proxy:
[16:58:08.815][C][bluetooth_proxy:123]:   Active: YES
[16:58:08.815][C][bluetooth_proxy:123]:   Connections: 3
[16:58:08.819][C][safe_mode.button:015]: Safe Mode Button '(Safe Mode)'
[16:58:08.821][C][safe_mode.button:018]:   Icon: 'mdi:restart-alert'
[16:58:08.836][C][resistance:015]: Resistance Sensor 'temp_resistance_reading'
[16:58:08.836][C][resistance:015]:   State Class: 'measurement'
[16:58:08.836][C][resistance:015]:   Unit of Measurement: 'Ω'
[16:58:08.836][C][resistance:015]:   Accuracy Decimals: 1
[16:58:08.838][C][resistance:029]:   Icon: 'mdi:flash'
[16:58:08.842][C][resistance:011]:   Configuration: DOWNSTREAM
[16:58:08.842][C][resistance:011]:   Resistor: 10000.00Ω
[16:58:08.842][C][resistance:011]:   Reference Voltage: 3.3V
[16:58:08.845][C][adc.esp32:015]: ADC Sensor 'temp_analog_reading'
[16:58:08.845][C][adc.esp32:015]:   State Class: 'measurement'
[16:58:08.845][C][adc.esp32:015]:   Unit of Measurement: 'V'
[16:58:08.845][C][adc.esp32:015]:   Accuracy Decimals: 2
[16:58:08.848][C][adc.esp32:025]:   Device Class: 'voltage'
[16:58:08.851][C][adc.esp32:122]:   Pin: GPIO3
[16:58:08.857][C][adc.esp32:123]:   Channel:       3
[16:58:08.857][C][adc.esp32:123]:   Unit:          ADC1
[16:58:08.857][C][adc.esp32:123]:   Attenuation:   12 dB
[16:58:08.857][C][adc.esp32:123]:   Samples:       1
[16:58:08.857][C][adc.esp32:123]:   Sampling mode: average
[16:58:08.858][C][adc.esp32:133]:   Setup Status:
[16:58:08.858][C][adc.esp32:133]:     Handle Init:  OK
[16:58:08.858][C][adc.esp32:133]:     Config:       OK
[16:58:08.858][C][adc.esp32:133]:     Calibration:  OK
[16:58:08.858][C][adc.esp32:133]:     Overall Init: OK
[16:58:08.860][C][adc.esp32:352]:   Update Interval: 60.0s
[16:58:08.864][C][ntc:015]: NTC Sensor 'Internal Temperature'
[16:58:08.864][C][ntc:015]:   State Class: 'measurement'
[16:58:08.864][C][ntc:015]:   Unit of Measurement: '°C'
[16:58:08.864][C][ntc:015]:   Accuracy Decimals: 1
[16:58:08.867][C][ntc:025]:   Device Class: 'temperature'
[16:58:08.869][C][ntc:029]:   Icon: 'mdi:thermometer'
[16:58:08.880][C][esp32_ble:523]: BLE:
[16:58:08.880][C][esp32_ble:523]:   MAC address: E4:B0:63:E0:BF:86
[16:58:08.880][C][esp32_ble:523]:   IO Capability: none
[16:58:08.889][C][esp32_ble_tracker:619]: BLE Tracker:
[16:58:08.893][C][esp32_ble_tracker:620]:   Scan Duration: 300 s
[16:58:08.893][C][esp32_ble_tracker:620]:   Scan Interval: 210.6 ms
[16:58:08.893][C][esp32_ble_tracker:620]:   Scan Window: 120.0 ms
[16:58:08.893][C][esp32_ble_tracker:620]:   Scan Type: ACTIVE
[16:58:08.893][C][esp32_ble_tracker:620]:   Continuous Scanning: NO
[16:58:08.895][C][esp32_ble_tracker:628]:   Scanner State: IDLE
[16:58:08.901][C][esp32_ble_tracker:629]:   Connecting: 0, discovered: 0, disconnecting: 0
[16:58:08.902][C][bluetooth_proxy.connection:091]: BLE Connection:
[16:58:08.905][C][esp32_ble_client:078]:   Address: 
[16:58:08.905][C][esp32_ble_client:078]:   Auto-Connect: FALSE
[16:58:08.907][C][esp32_ble_client:082]:   State: IDLE
[16:58:08.918][C][bluetooth_proxy.connection:091]: BLE Connection:
[16:58:08.920][C][esp32_ble_client:078]:   Address: 
[16:58:08.920][C][esp32_ble_client:078]:   Auto-Connect: FALSE
[16:58:08.923][C][esp32_ble_client:082]:   State: IDLE
[16:58:08.926][C][bluetooth_proxy.connection:091]: BLE Connection:
[16:58:08.931][C][esp32_ble_client:078]:   Address: 
[16:58:08.931][C][esp32_ble_client:078]:   Auto-Connect: FALSE
[16:58:08.933][C][esp32_ble_client:082]:   State: IDLE
[16:58:08.939][C][esphome.ota:075]: Over-The-Air updates:
[16:58:08.939][C][esphome.ota:075]:   Address: keller-flur-flurlicht.local:3232
[16:58:08.939][C][esphome.ota:075]:   Version: 2
[16:58:08.942][C][esphome.ota:082]:   Password configured
[16:58:08.945][D][api:144]: Accept 10.1.101.164
[16:58:08.949][C][safe_mode:018]: Safe Mode:
[16:58:08.949][C][safe_mode:018]:   Successful after: 60s
[16:58:08.949][C][safe_mode:018]:   Invoke after: 10 attempts
[16:58:08.949][C][safe_mode:018]:   Duration: 300s
[16:58:08.997][V][api.connection:1369]: Hello from client: 'Home Assistant 2025.9.3' | 10.1.101.164 | API Version 1.12
[16:58:09.001][D][api.connection:1353]: Home Assistant 2025.9.3 (10.1.101.164) connected
[16:58:09.010][D][time:061]: Synchronized time: 2025-10-09 14:58:09
[16:58:09.018][W][component:443]: api took a long time for an operation (64 ms)
[16:58:09.020][W][component:446]: Components should block for at most 30 ms
[16:58:09.023][C][api:205]: Server:
[16:58:09.023][C][api:205]:   Address: keller-flur-flurlicht.local:6053
[16:58:09.027][C][api:210]:   Noise encryption: YES
[16:58:09.040][C][mdns:213]: mDNS:
[16:58:09.040][C][mdns:213]:   Hostname: keller-flur-flurlicht
[16:58:09.046][C][debug:018]: Debug component:
[16:58:09.048][C][debug:020]:   Device info 'Device Info'
[16:58:09.051][C][debug:020]:     Icon: 'mdi:chip'
[16:58:09.053][D][debug:033]: ESPHome version 2025.9.1
[16:58:09.057][D][debug:037]: Free Heap Size: 80428 bytes
[16:58:09.065][D][debug:182]: Chip: Model=ESP32-C3, Features=2.4GHz WiFi, BLE,  Cores=1, Revision=4
[16:58:09.065][D][debug:191]: CPU Frequency: 160 MHz
[16:58:09.065][D][debug:199]: Framework: ESP-IDF
[16:58:09.068][D][debug:206]: ESP-IDF Version: 5.4.2
[16:58:09.070][D][debug:211]: EFuse MAC: E4:B0:63:E0:BF:84
[16:58:09.074][D][debug:079]: Reset Reason: Reboot request from esphome.ota
[16:58:09.076][D][debug:107]: Wakeup Reason: undefined
[16:58:09.082][V][text_sensor:015]: 'Device Info': Received new state 2025.9.1|Chip: ESP32-C3 Features:2.4GHz WiFi, BLE,  Cores:1 Revision:4|CPU Frequency: 160 MHz|Framework: ESP-IDF|ESP-IDF: 5.4.2|EFuse MAC: E4:B0:63:E0:BF:84|Reset: Reboot request from esphome.ota|Wakeup: undefined
[16:58:09.085][D][text_sensor:069]: 'Device Info': Sending state '2025.9.1|Chip: ESP32-C3 Features:2.4GHz WiFi, BLE,  Cores:1 Revision:4|CPU Frequency: 160 MHz|Framework: ESP-IDF|ESP-IDF: 5.4.2|EFuse MAC: E4:B0:63:E0:BF:84|Reset: Reboot request from esphome.ota|Wakeup: undefined'
[16:58:09.089][D][debug:079]: Reset Reason: Reboot request from esphome.ota
[16:58:09.092][V][text_sensor:015]: 'Reset Reason': Received new state Reboot request from esphome.ota
[16:58:09.095][D][text_sensor:069]: 'Reset Reason': Sending state 'Reboot request from esphome.ota'
[16:58:09.098][C][debug:112]: Partition table:
[16:58:09.098][C][debug:112]:   Name         Type Subtype  Address    Size      
[16:58:09.101][C][debug:119]:   otadata      1    0        0x00009000 0x00002000
[16:58:09.105][C][debug:119]:   phy_init     1    1        0x0000B000 0x00001000
[16:58:09.106][C][debug:119]:   app0         0    16       0x00010000 0x003C0000
[16:58:09.109][C][debug:119]:   app1         0    17       0x003D0000 0x003C0000
[16:58:09.112][C][debug:119]:   nvs          1    2        0x00790000 0x0006D000
INFO Processing unexpected disconnect from ESPHome API for keller-flur-flurlicht @ 10.1.103.80
WARNING Disconnected from API
INFO Successfully resolved keller-flur-flurlicht @ 10.1.103.80 in 0.000s
INFO Successfully connected to keller-flur-flurlicht @ 10.1.103.80 in 0.002s
INFO Successful handshake with keller-flur-flurlicht @ 10.1.103.80 in 0.055s
[16:59:42.415][D][api:144]: Accept 10.1.101.164
[16:59:42.464][V][api.connection:1369]: Hello from client: 'Home Assistant 2025.9.3' | 10.1.

So it doesn’t see any bluetooth devices (I don’t want it to connect to them, I just want to see whats sending out bluetooth data. My phone and my headset are on.

The device is a shelly mini gen3, in case that makes a difference.

So, is my assumption wrong and this isn’t how that is supposed to work: What should I do?

Thanks!

Set it true.

Thanks, I will try this as soon as I can, but the device doesn’t seem to boot anymore after setting it to true. I can flash it with the “standard” config from web.esphome.io, but I am getting the same error.

I’ll solve that issue and try true again.

Try with bare minimum setup with default parameters and upload via serial.

I did, but it’s still bootlooping. Trying to figure out why at the moment.