Skip to content

Instantly share code, notes, and snippets.

@MatsA
Last active February 19, 2026 15:09
Show Gist options
  • Select an option

  • Save MatsA/6817e13a21a514dde1c34c4c327d2418 to your computer and use it in GitHub Desktop.

Select an option

Save MatsA/6817e13a21a514dde1c34c4c327d2418 to your computer and use it in GitHub Desktop.
ESPHome Bluetooth proxy, ESP32-C3, Home Assistant
## Blogpost https://pysselilivet.blogspot.com/2026/02/homeassistant-esphome-creating.html
esphome:
name: bt-proxy
friendly_name: Bluetooth Proxy
min_version: 2025.8.0
name_add_mac_suffix: true
on_boot:
priority: 600
then:
- light.turn_on:
id: status_rgb
red: 100%
green: 0%
blue: 0%
brightness: 50%
esp32:
# board: esp32-c3-devkitm-1
variant: esp32c3
framework:
type: esp-idf
sdkconfig_options:
CONFIG_BT_BLE_42_FEATURES_SUPPORTED: y
CONFIG_BT_BLE_50_FEATURES_SUPPORTED: n
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
reboot_timeout: 15min
api:
reboot_timeout: 15min
logger:
ota:
- platform: esphome
id: ota_esphome
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
on_ble_advertise:
then:
- if:
condition:
not:
script.is_running: ble_blink_script
then:
- script.execute: ble_blink_script
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
light:
- platform: esp32_rmt_led_strip
id: status_rgb
rgb_order: RGB
pin: GPIO10
num_leds: 1
chipset: WS2812
name: "Built-in RGB LED"
icon: mdi:led-off
sensor:
- platform: uptime
name: "Uptime"
id: uptime_sensor
update_interval: 60s
- platform: wifi_signal
name: "WiFi Signal"
update_interval: 60s
script:
- id: ble_blink_script
mode: single
then:
- if:
condition:
wifi.connected:
then:
- light.turn_on:
id: status_rgb
red: 0%
green: 0%
blue: 100%
brightness: 80%
transition_length: 0s
- delay: 200ms
- light.turn_on:
id: status_rgb
red: 0%
green: 100%
blue: 0%
brightness: 50%
transition_length: 0s
- delay: 9.8s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment