AtomS3 Lite Bluetooth Proxy

Hey all,

I cant figure out why I cant connect Bluetooth devices to my AtomS3 Lite Bluetooth Proxy. I’ve got the M5 Atom S3 Lite module and set it up via ESPHome. The installation was done manually since the ESPHome website does not support the S3 lite yet.

I see log output via ESPHome. But when I set my Tuya Soil measure in pairing mode it is not popping up in notifications whatsoever. Can anyone have a look at my config and help me out?

Log output:

INFO ESPHome 2023.12.9
INFO Reading configuration /config/esphome/atoms3bluetooth-proxy.yaml...
INFO Starting log output from 192.168.2.72 using esphome API
INFO Successfully connected to atoms3bluetooth-proxy @ 192.168.2.72 in 0.047s
INFO Successful handshake with atoms3bluetooth-proxy @ 192.168.2.72 in 0.124s
[10:34:39][I][app:102]: ESPHome version 2023.12.9 compiled on Jan 31 2024, 10:23:37
[10:34:39][C][status_led:019]: Status LED:
[10:34:39][C][status_led:020]:   Pin: GPIO2
[10:34:39][C][wifi:573]: WiFi:
[10:34:39][C][wifi:405]:   Local MAC: DC:54:75:CE:AC:2C
[10:34:39][C][wifi:410]:   SSID: [redacted]
[10:34:39][C][wifi:411]:   IP Address: 192.168.2.72
[10:34:39][C][wifi:413]:   BSSID: [redacted]
[10:34:39][C][wifi:414]:   Hostname: 'atoms3bluetooth-proxy'
[10:34:39][C][wifi:416]:   Signal strength: -44 dB ▂▄▆█
[10:34:39][C][wifi:420]:   Channel: 1
[10:34:39][C][wifi:421]:   Subnet: 255.255.255.0
[10:34:39][C][wifi:422]:   Gateway: 192.168.2.254
[10:34:39][C][wifi:423]:   DNS1: 192.168.2.250
[10:34:39][C][wifi:424]:   DNS2: 192.168.2.250
[10:34:39][C][logger:439]: Logger:
[10:34:39][C][logger:440]:   Level: DEBUG
[10:34:39][C][logger:441]:   Log Baud Rate: 115200
[10:34:39][C][logger:443]:   Hardware UART: USB_SERIAL_JTAG
[10:34:39][C][bluetooth_proxy:088]: Bluetooth Proxy:
[10:34:39][C][bluetooth_proxy:089]:   Active: YES
[10:34:39][C][esp32_ble:374]: ESP32 BLE:
[10:34:39][C][esp32_ble:376]:   MAC address: DC:54:75:CE:AC:2E
[10:34:39][C][esp32_ble:377]:   IO Capability: none
[10:34:39][C][esp32_ble_tracker:645]: BLE Tracker:
[10:34:39][C][esp32_ble_tracker:646]:   Scan Duration: 300 s
[10:34:39][C][esp32_ble_tracker:647]:   Scan Interval: 1100.0 ms
[10:34:39][C][esp32_ble_tracker:648]:   Scan Window: 1100.0 ms
[10:34:39][C][esp32_ble_tracker:649]:   Scan Type: ACTIVE
[10:34:39][C][esp32_ble_tracker:650]:   Continuous Scanning: True
[10:34:39][C][captive_portal:088]: Captive Portal:
[10:34:39][C][mdns:115]: mDNS:
[10:34:39][C][mdns:116]:   Hostname: atoms3bluetooth-proxy
[10:34:39][C][ota:097]: Over-The-Air Updates:
[10:34:39][C][ota:098]:   Address: atoms3bluetooth-proxy.local:3232
[10:34:39][C][ota:101]:   Using Password.
[10:34:39][C][api:139]: API Server:
[10:34:39][C][api:140]:   Address: atoms3bluetooth-proxy.local:6053
[10:34:39][C][api:142]:   Using noise encryption: YES
[10:34:55][I][ota:117]: Boot seems successful, resetting boot loop counter.
[10:34:55][D][esp32.preferences:114]: Saving 1 preferences to flash...
[10:34:55][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[10:34:56][D][esp32_ble_tracker:266]: Starting scan...
[10:39:56][D][esp32_ble_tracker:266]: Starting scan...

YAML code

esphome:
  name: atoms3bluetooth-proxy
  friendly_name: AtomS3Bluetooth-proxy

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

# Enable logging
logger:
  level: DEBUG

# Enable Home Assistant API
api:
  encryption:
    key: "****"

ota:
  password: "****"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Atoms3Bluetooth-Proxy"
    password: "****"

captive_portal:

# Setup BLE config
esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

# Enable BT proxy
bluetooth_proxy:
  active: true

status_led:
  pin: GPIO2

I’ve checked the mac address in the Tuya app and I can see it is listed in the verbose logs I’ve enabled too.

RSSI based on MAC address %NAME%

- platform: ble_rssi
  mac_address: 'DC:23:50:18:C2:96'
  name: 'Soil Measure 1'

log output

[19:51:56][VV][esp32_ble_tracker:440]:   Address: DC:54:75:D6:0D:15 (PUBLIC)
[19:51:56][VV][esp32_ble_tracker:442]:   RSSI: -71
[19:51:56][VV][esp32_ble_tracker:443]:   Name: ''
[19:51:56][VV][esp32_ble_tracker:451]:   Ad Flag: 6
[19:51:56][VV][esp32_ble_tracker:473]: Adv data: 02.01.06
[19:51:56][VV][esp32_ble_tracker:423]: Parse Result:
[19:51:56][VV][esp32_ble_tracker:440]:   Address: DC:23:50:18:C2:96 (PUBLIC)
[19:51:56][VV][esp32_ble_tracker:442]:   RSSI: -47
[19:51:56][VV][esp32_ble_tracker:443]:   Name: 'TY'
[19:51:56][VV][esp32_ble_tracker:451]:   Ad Flag: 6
[19:51:56][VV][esp32_ble_tracker:454]:   Service UUID: 0xA201
[19:51:56][VV][esp32_ble_tracker:457]:   Manufacturer data: 00.03.00.00.01.00.A7.7E.CE.E6.6D.E7.7D.0E.9F.91.DD.D7.04.F7.58.21 (22)
[19:51:56][VV][esp32_ble_tracker:468]:   Service data:
[19:51:56][VV][esp32_ble_tracker:469]:     UUID: 0xA201
[19:51:56][VV][esp32_ble_tracker:470]:     Data: 00.67.76.79.67.67.33.6D.38 (9)
[19:51:56][VV][esp32_ble_tracker:473]: Adv data: 02.01.06.03.02.01.A2.0C.16.01.A2.00.67.76.79.67.67.33.6D.38.00.00.00.00.00.00.00.00.03.09.54.59.19.FF.D0.07.00.03.00.00.01.00.A7.7E.CE.E6.6D.E7.7D.0E.9F.91.DD.D7.04.F7.58.21 (58)
[19:51:56][V][sensor:043]: 'Soil Measure 1': Received new state -47.000000
[19:51:56][D][sensor:094]: 'Soil Measure 1': Sending state -47.00000 dBm with 0 decimals of accuracy