Skip to content

BTHome for ESPHome

BTHome for ESPHome is a component that enables your ESP32 or nRF52 devices to broadcast sensor data over Bluetooth Low Energy using the BTHome v2 protocol. This allows seamless integration with Home Assistant auto-discovery and other BTHome-compatible receivers, including Shelly devices for direct device-to-device automations without requiring a hub.

BTHome is an open standard for broadcasting sensor data over Bluetooth Low Energy (BLE). It’s designed to be:

  • Energy efficient - Perfect for battery-powered sensors
  • Simple - Easy to implement and decode
  • Extensible - Supports 60+ sensor types
  • Secure - Optional AES-CCM encryption

This component provides:

  • BTHome v2 protocol compliance - Full support for the latest BTHome specification
  • Multi-platform support - Works on ESP32 (ESP-IDF) and nRF52 (Zephyr)
  • 60+ sensor types - Temperature, humidity, pressure, motion, and many more
  • 28 binary sensor types - Door, window, motion, smoke, and others
  • Optional AES-CCM encryption - Secure your sensor data
  • Immediate advertising - Trigger instant updates on sensor changes
  • Configurable TX power - Optimize range vs battery life
  • Home Assistant auto-discovery - No manual configuration needed
  • Shelly device compatibility - Direct device-to-device automations without a hub
PlatformFrameworkStatus
ESP32ESP-IDFSupported
ESP32-C3ESP-IDFSupported
ESP32-S3ESP-IDFSupported
nRF52840 (XIAO BLE)ZephyrSupported
flowchart LR
    subgraph Sensors
        S[BME280, PIR, etc.]
    end
    subgraph Device
        D[ESP32 or nRF52]
    end
    subgraph Receivers
        HA[Home Assistant]
        SH[Shelly Devices]
    end

    S -->|Reads sensors| D
    D -->|BTHome v2 BLE| HA
    D -->|BTHome v2 BLE| SH

The component:

  1. Reads sensor values from connected sensors
  2. Encodes the data according to BTHome v2 specification
  3. Broadcasts the data via BLE advertisements
  4. Home Assistant’s BTHome integration automatically discovers and displays the sensors
  5. Shelly devices can receive broadcasts directly for local automations