Skip to main content

ESPHome Bluetooth Proxy ESP32-C3 YAML

ESPHome YAML Configuration to create an ESP32-C3 Home Assistant Bluetooth Active Proxy. In layman's terms, it is a remote network attached Bluetooth adapter Home Assistant can use to communicate with Bluetooth devices. For instance, put one in your backyard to pick up temperature sensors in the pool and greenhouse; list of Bluetooth Compatible Devices

Thanks to Cossid on Discord for help with config options to get this booting correctly! This file can be used as a base to adapt to other ESP32-C3 Devices such as SwitchBot Plugs, Bulbs, or even just ESP32-C3 NodeMCU Dev Boards.

The YAML

substitutions:
display_name: esp32c3-btproxy

esphome:
name: ${display_name}
platformio_options:
board_build.mcu: esp32c3
board_build.variant: esp32c3
# added the line below to prevent bootloops when flashing modern bin via serial
board_build.flash_mode: dio

esp32:
variant: ESP32C3
board: esp32-c3-devkitm-1
framework:
type: esp-idf
sdkconfig_options:
CONFIG_BT_BLE_50_FEATURES_SUPPORTED: y
CONFIG_BT_BLE_42_FEATURES_SUPPORTED: y
CONFIG_ESP_TASK_WDT_TIMEOUT_S: "10"

logger:
api:
ota:
platform: esphome

button:
- platform: safe_mode
name: ${display_name} (Safe Mode)

# Change the WiFi config to a non-static IP if needed
wifi:
ssid: !secret wifi_myssid
password: !secret wifi_mypass
manual_ip:
static_ip: !secret ip_esp32c3_btproxy
gateway: !secret ip_gateway
subnet: !secret ip_subnet
dns1: !secret ip_dns1

esp32_ble_tracker:
scan_parameters:
# Adjust timing if the defaults do not work in your environment
# interval: 1100ms
# window: 1100ms
active: true

bluetooth_proxy:
active: true