This articles demonstrates a Bluetooth Proxy configuration for use with the ESP32-S3-Firebeetle2 board and Home Assistant + ESPHome + BTHome.
Table of Contents
Hardware used:
- Firebeetle 2 Board ESP32-S3(N16R8)
After breaking a ribbon for a camera that was included with one of these boards; I repurposed it for use as a Bluetooth Gateway (proxy) that I use with several Shelly BLU Bluetooth Smart Motion Sensor’s.
Note: The board selection used under ESPHome is: esp32-s3-devkitc-1
so this should work on other esp32-s3
based devices and there is nothing defined in this configuration specific to this board.
External references
- Home Assistant Bluetooth Proxy documentation
- esphome.io examples: ESPHome Bluetooth Proxies
YAML Source
substitutions:
id:
name:
friendly_name: Blueooth Proxy
esphome:
project:
name: "oddineers.bluetooth_proxy"
version: "0.1.0"
name: ${name}
min_version: 2025.5.0
friendly_name: ${friendly_name}
name_add_mac_suffix: true
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: !secret api_key
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# If you don't use .local for your IOT devices change that here
#domain: .local
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: " Fallback Hotspot"
password: !secret ap_password
esp32_ble_tracker:
scan_parameters:
# We currently use the defaults to ensure Bluetooth
# can co-exist with WiFi In the future we may be able to
# enable the built-in coexistence logic in ESP-IDF
active: true
bluetooth_proxy:
active: true
button:
- platform: safe_mode
id: button_safe_mode
name: Safe Mode Boot
- platform: factory_reset
id: factory_reset_btn
name: Factory reset
captive_portal:
# Sensors for Home Assistant
sensor:
- platform: wifi_signal
name: "WiFi Signal"
update_interval: 60s
- platform: uptime
name: "Uptime"
update_interval: 110s
text_sensor:
- platform: wifi_info
ip_address:
name: "IP"
ssid:
name: "SSID"
bssid:
name: "BSSID"
mac_address:
name: "MAC"
dns_address:
name: "DNS"