ESPHome Documentation

repository·current·Indexed 19 days ago

https://github.com/esphome/esphome.io

Documentation for ESPHome, including guides on using the ESP-IDF framework for ESP32 boards, Modbus Controller configuration, and the graphing component. This site is built using the Astro web framework and Starlight theme, featuring MDX content with custom components like APIRef and ImgTable.

Tokens
117.6K
Snippets
329
Records
956
Agent score
66%

What's inside ESPHome.io

  1. New features and components in ESPHome 2024.6.0

    current

    ESPHome 2024.6.0 introduced several new capabilities:

    New Features

    • ADC Multisampling: Added support for multisampling in ADC components.
    • Voice Assistant Timers: New timer support for the voice_assistant component.

    New Components & Integrations

    • GDK101 support.
    • beken_spi_led_strip component.
    • INA228/INA229, INA238/INA239, INA237 power/energy/charge monitors (I2C, SPI).
    • LTR series (LTR-303, LTR-329, LTR-553, LTR-556, LTR-559, LTR-659) Light (ALS) and Proximity (PS) sensors.
    • Host Time platform (replaces host support in sntp).
    • http_request update platform for OTA.
    • 1-wire component.
    • SDL2 display driver for the host platform.
    • Mirage remote receiver & transmitter.
    • Modbus Server support.
    • Tuya extended services support.
  2. Performance improvements in ESPHome 2026.4.0

    current

    ESPHome 2026.4.0 introduces significant performance optimizations across the API layer and core framework, primarily aimed at reducing main loop runtime and stack usage.

    API Layer Optimizations

    • Protobuf Encoding/Decoding: Improvements to the native API (the primary communication path with Home Assistant) result in 17-20% faster encoding. Single sensor state writes are up to 72% faster, and batch writes are 21% faster.
    • Bluetooth Proxy: Optimized for ESP32-C3, with API and BLE advertisement forwarding consuming only ~1.8% of main loop runtime (down from ~3.3% in 2026.3.0).
    • Noise Encryption: Encryption for secure communication is faster across platforms: 24% faster on ESP32, 11% on ESP8266, and 10% on RP2040.
    • BLE Advertisement Encoding: Using new (inline_encode) protobuf options, BLE advertisement encoding is 40-55% faster.

    Core Framework Optimizations

    • Stack Usage Reduction: The automation call chain (e.g., Trigger::trigger()Automation::trigger()ActionList::play()) has been collapsed, reducing stack frames for button-to-lambda automations from 16 to 10. This significantly reduces the risk of stack overflow in deep automation chains.
    • Event-Driven Patterns: Many components have moved from polling in loop() to event-driven patterns to save CPU cycles:
      • web_server: Loop is disabled when no SSE clients are connected.
      • total_daily_energy: Uses a single timeout at midnight instead of a loop.
      • CronTrigger: Uses set_interval instead of a loop.
      • preferences: Loop is compiled out if flash_write_interval is non-zero.
      • GPIO Expanders: Loops are disabled when all pins are configured as outputs.
      • Radio Modules (sx127x, cc1101, sx126x): Use GPIO interrupts to wake the loop instead of polling.
      • hbridge light: Loop only runs when multiplexing is required (both channels active).
  3. New Features and Components in ESPHome 2025.9.0

    current

    ESPHome 2025.9.0 introduced several new features, components, and platforms:

    New Components & Platforms

    • camera_encoder: A new component providing JPEG encoder support.
    • mipi_rgb: A new unified driver and component for MIPI RGB displays.
    • bl0940: Extended configuration options for the bl0940 device platform.

    Key Feature Updates

    • Light: Support for querying effects by index.
    • mipi_spi: Added support for the mipi_spi model.
    • nrf52: Added DFU (Device Firmware Update) support.
    • API: Added timezone support to GetTimeResponse for automatic synchronization.
    • Bluetooth Proxy: The configured scanning mode is now exposed in API responses.
    • Wizard: The wizard dashboard API now supports upload and empty config options.
  4. Use the ESPHome Device Builder

    current

    As of version 2026.6.0, the legacy in-tree dashboard has been replaced by the ESPHome Device Builder (v1.0.0). The Device Builder is now the default dashboard bundled in the official Home Assistant ESPHome add-on.

    Key features include:

    • Visual Builder: A component and automation builder alongside a CodeMirror YAML editor.
    • Component Catalog: Includes dependency resolution and a per-board pin info viewer.
    • Firmware Queue: Supports multiple concurrent operations (compile, install, clean) with progress tracking.
    • Remote Builder: Allows offloading OTA builds to another instance via mDNS discovery.
    • Device Management: Supports labels, areas, friendly names, device cloning, and bulk actions.
    • Diagnostics: Out-of-sync detection (encryption-state mismatch) and YAML diff views.
    • Onboarding: First-run WiFi onboarding and expanded installation methods (Web Serial, server-side USB, web.esphome.io, and manual .bin downloads).
  5. New Components and Features in ESPHome 2026.2.0

    current

    The 2026.2.0 release introduces several new hardware supports and functional features:

    • mipi_dsi: Added support for JC8012P4A1 display.
    • mipi_spi: Added support for variants of ESP32-2432S028 displays.
    • select: Added a new condition for testing select options.
    • debug: Added min_free heap sensor and fragmentation tracking for ESP32/LibreTiny.
  6. New features in ESPHome 2026.2.0

    current

    The 2026.2.0 release introduced several new features across various components:

    • Debug: Added min_free heap sensor for ESP32 and LibreTiny, and fragmentation sensor for ESP32.
    • Display: Added support for JC8012P4A1 (MIPI DSI), various ESP32-2432S028 displays (MIPI SPI), M5Stack Tab5 (Rev2/V2) (MIPI DSI), and WAVESHARE-ESP32-P4-WIFI6-TOUCH-LCD (3.4C, 4C, and 7B) drivers.
    • Sensors: Enhanced delta filter with a max_value option; clamp filter now handles non-finite values more robustly.
    • Connectivity: Added encrypted beacon support for bthome_mithermometer; added on_connect and on_disconnect triggers for ethernet; added custom CA certificate support for http_request on ESP32.
    • Zigbee/nRF52: Added time synchronization and address change support.
    • Other: Added sy6970 BMS component; added ch423 I/O expander; added dlms_meter smart meter; added key_collector text sensor with multiple callbacks; added operation-based triggers for cover components; added target_temperature to template water heaters.
  7. New features and improvements in ESPHome 2024.8.0

    current

    Key improvements in this release include:

    • Light dim_relative Action: Added min_brightness and max_brightness parameters.
    • MQTT: Added extended device info and support for MQTT in the Alarm Control panel component.
    • API: Added a flag to request state/attribute once from Home Assistant only, and replaced homeassistant.service with homeassistant.action.
    • Online Images: Added an option to show a placeholder while an image is downloading.
    • CLI: Added a --version handler.
  8. New components and platforms in ESPHome 2025.8.0

    current

    The following new components and platforms are available in version 2025.8.0:

    • espnow: Enables basic communication between ESP32 devices.
    • ld2412: A new component and platform for the LD2412 sensor.
    • mipi_dsi: A new display driver platform for P4 DSI.
    • nrf52: Adds core support based on Zephyr and includes an ADC component.
    • runtime_stats: A new component for performance debugging and analysis.
  9. New features in ESPHome 2026.7.0

    current

    The 2026.7.0 release introduces several new features across various components, including:

    • Display & Graphics: Support for Inkplate 2, Waveshare 2.13" V4 series B, Waveshare 7.5" V2 BWR, and T133A01 6-color e-paper drivers via epaper_spi. Added mipi_spi support for Waveshare-ESP32-S3-TOUCH-AMOLED-1.64 and M5STACK ATOM3SR. lvgl now supports animations, dynamic rotation, and a paused option to suppress updates on boot.
    • Connectivity: Basic Openthread support for Zephyr/nRF52. Added espnow max_payload_size option for v2 frames. Added LN882X (LN882H) platform support for mqtt.
    • Sensors & Input: New ufm01 ultrasonic flow meter component. New touchscreen support for CST9220, CST9217, ST7123 (M5Stack Tab5), CST328 (Waveshare ESP32-S3-Touch-LCD-2.8), and GSL3670.
    • Hardware & Platform: Native toolchains are now the default on ESP32 and nRF52. rp2 is the new name for the rp2040 platform. Added NVS encryption (HMAC scheme) and software OTA downgrade protection for esp32.
    • Other: web_server now supports HTTP digest authentication. zigbee allows combining and merging endpoints on ESP32 (Breaking Change).
  10. Web Server Improvements in ESPHome 2026.1.0

    current

    The ESPHome Web Server received several updates in version 2026.1.0:

    • Entity Management: Improved handling of main device entities and sub-device entities.
    • Character Support: UTF-8 names now work correctly within the web interface.
    • Performance: Brotli compression is now used for web assets to reduce transfer size.
    • WiFi Roaming: Added support for WiFi roaming.
  11. Configure ESP32 partition tables and NVS

    current
    In ESPHome 2026.4.0, the partition layout for both Arduino and IDF frameworks has changed. The Non-Volatile Storage (NVS) has moved to the end of the flash and its size has increased (e.g., from 20KB to 384KB on Arduino). Existing devices will receive the new partition table during the next OTA update. NVS data is preserved because the library locates it by name rather than by position.