ESPHome 2025.10.0 - 15th October 2025

Release Overview

ESPHome 2025.10.0 delivers major architectural improvements, new communication protocols, and extensive performance optimizations. This release focuses on enhancing security, improving memory efficiency, and expanding hardware support while introducing groundbreaking new features.

Key Highlights:

  • Z-Wave Proxy - Bridge Z-Wave devices to Home Assistant through ESPHome
  • Arduino as IDF Component - Unified ESP32 framework architecture (breaking change)
  • Enhanced ePaper Display Support - New unified SPI ePaper component
  • Security Enhancements - SHA256 OTA authentication and password deprecation
  • API Improvements - Home Assistant action responses and configurable connection limits
  • Extensive Memory Optimizations - Flash and RAM savings across all platforms
  • New Sensor Components - WTS01 and LM75B temperature sensors

Z-Wave Proxy

The new Z-Wave Proxy component enables network-based connectivity for Z-Wave hardware by proxying serial communication between a Z-Wave modem SoC and Z-Wave JS over WiFi or Ethernet.

Key Features:

  • Remote Z-Wave placement - Position your Z-Wave modem anywhere in your home with WiFi/Ethernet connectivity
  • Serial-to-network bridge - Proxies UART communication between Z-Wave hardware and Z-Wave JS via ESPHome’s native API
  • Flexible deployment - Use ESP32 devices to extend Z-Wave modem placement beyond USB cable reach
  • Low latency performance - Achieves 50-60ms typical latency (as low as 35ms under ideal conditions)
  • Ethernet recommended - Best reliability with wired connections, though WiFi is supported

This component is particularly useful for optimizing Z-Wave mesh network topology by placing the Z-Wave controller in a central location, even when your server is in a basement or closet.

Arduino as IDF Component (Breaking Change)

A significant architectural change in this release integrates Arduino as an ESP-IDF component rather than a separate framework. This unification brings:

Benefits:

  • Better compatibility between Arduino and ESP-IDF features
  • Simplified build process with unified toolchain
  • Access to latest ESP-IDF features while maintaining Arduino compatibility
  • Improved memory efficiency through shared libraries
  • Future-proof architecture aligning with Espressif’s direction

Migration Notes:

  • Most configurations will work without changes
  • Custom components may need minor adjustments
  • Framework version handling has been improved (see breaking changes section)

ePaper SPI Display Component

The new ePaper SPI Display component provides a unified, modernized interface for SPI-based ePaper displays:

Improvements:

  • Cleaner configuration with consistent API across models
  • Better performance with optimized refresh cycles
  • Improved partial update handling where supported
  • Reduced memory overhead through efficient buffering

Current Status:

Currently supports one display model, with additional models from the waveshare_epaper component being migrated over time. This new architecture provides a more maintainable codebase for future ePaper display support.

Security Enhancements

ESPHome 2025.10.0 significantly improves security with several key changes:

SHA256 OTA Authentication

  • Modern cryptographic hashing replaces legacy MD5 authentication
  • Hardware acceleration on supported ESP32 variants (S3, etc.)
  • Backward compatible transition period
  • Non-blocking authentication for better performance

API Password Deprecation

  • API passwords are now deprecated in favor of encryption keys
  • Mutual exclusivity enforced between password and encryption
  • Improved security model with modern cryptographic practices
  • Migration warnings guide users to encryption-based authentication

⚠️ Warning

API password authentication is deprecated and will be removed in a future release. Please migrate to encryption-based authentication using the encryption: key.

Home Assistant Action Responses

The API now supports receiving responses from Home Assistant actions, enabling bidirectional communication:

Capabilities:

  • Call Home Assistant actions from ESPHome
  • Receive response data for processing in automations
  • Enhanced integration with Home Assistant services
  • New automation possibilities with real-time data exchange

This feature enables more sophisticated integrations, such as querying state from Home Assistant for use in ESPHome logic.

YAML Enhancements

Literal Substitutions

The new !literal tag allows raw string values in substitutions without variable expansion:

substitutions:
  json_template: !literal '{"key": "${value}"}'

This is particularly useful for JSON templates and other contexts where dollar signs should not trigger substitution.

Dynamic Auto-Loading

Components can now conditionally auto-load dependencies based on configuration, reducing unnecessary component inclusion and saving memory.

Memory & Performance Optimizations

ESPHome 2025.10.0 continues aggressive optimization efforts:

Flash Savings:

  • Lock component: 388 bytes flash + 23 bytes RAM per lock via bitmask optimization
  • ESP32 BLE Server: 1KB flash + 26x faster service lookups using vectors instead of HashMap
  • Event Emitter: 2.6KB flash + 2.3x faster via vector replacement
  • Logger: 35-72% faster log formatting through optimized string handling
  • Web Server: Significant reduction through lookup tables and IDF server unification

RAM Optimizations:

  • StaticVector for mDNS/OpenThread services with compile-time capacity
  • Script names stored in flash instead of RAM
  • Component metadata using named structs instead of std::pair
  • Reduced allocations through zero-copy API techniques

Architecture Improvements:

  • WebSocket-based dashboard replaces polling for real-time updates
  • Optimized logger with improved timestamp formatting
  • Scheduler enhancements with reduced function call overhead
  • Non-blocking OTA authentication improves responsiveness

New Components & Features

Sensor Components

  • WTS01 - Temperature sensor with I2C interface
  • LM75B - Popular I2C temperature sensor

Communication Features

  • Multiple CAN instances on supported ESP32 platforms
  • UART enhancements with multiple ESP32 features and fixes
  • Remote receiver demodulation support on ESP32
  • Modbus courtesy responses for improved protocol compliance

Hardware Support

  • LAN8670 PHY support for Ethernet
  • Configurable Ethernet MAC address in YAML
  • QMC5883L DRDY pin for maximum sampling rate
  • USB host/UART support on ESP32-P4

Breaking Changes

ESPHome 2025.10.0 includes several breaking changes requiring attention:

Arduino as IDF Component

  • Framework architecture change - Arduino is now integrated as an ESP-IDF component
  • Impact: Build process changes, potential incompatibilities with external components
  • Action Required: Test custom components, update framework version handling
  • PR: #10647

API Changes

Several API-related breaking changes improve security and efficiency:

  • ConnectRequest/Response renamed to AuthenticationRequest/Response #10726
  • Password and encryption now mutually exclusive with deprecation warnings #10871
  • Configurable connection limits added with new defaults #10939
  • Message size limits to prevent memory exhaustion #10936
  • ClientInfo::get_combined_info() removed to eliminate heap fragmentation #10970
  • HomeassistantServiceResponse renamed to HomeassistantActionRequest #10839

Component Changes

  • EKTF2232: rts_pin renamed to reset_pin #10720
  • MMC5603: Fixed incorrect calculation factor (values will change) #9925
  • ESP32 BLE: max_connections now shared between client and server #11006
  • Logger: Runtime tag-specific log levels conditionally compiled #11004
  • Lock: Internal representation changed to bitmask #10977
  • mDNS/OpenThread: Services storage uses StaticVector #10976

ESP32 Platform

  • Version handling improved with stricter validation #10899
  • Web server: IDF web server now used for Arduino builds #10991

Audio

  • esp-audio-libs updated to 2.0.1 with new FLAC decoder #10974

Most breaking changes involve internal optimizations and security improvements. Standard configurations should continue working, but custom components and advanced setups may require updates.

Full list of changes

New Features

New Components

New Platforms

  • Add WTS01 temperature sensor component esphome#8539 by @alepee (new-component) (new-feature) (new-platform)
  • [lm75b] Add LM75B temperature sensor component esphome#10534 by @Beormund (new-component) (new-feature) (new-platform)
  • [epaper_spi] New epaper component esphome#10462 by @jesserockz (new-component) (new-feature) (new-platform)

Breaking Changes

  • [api] Rename ConnectRequest/Response to AuthenticationRequest/Response esphome#10726 by @bdraco (breaking-change)
  • [esp32] Use arduino as an idf component esphome#10647 by @swoboda1337 (new-feature) (breaking-change)
  • [ektf2232] Rename rts_pin to reset_pin esphome#10720 by @jesserockz (breaking-change)
  • Fix incorrect factor for value calculation in MMC5603 component esphome#9925 by @Nerdiyde (breaking-change)
  • [api] Rename HomeassistantServiceResponse to HomeassistantActionRequest esphome#10839 by @jesserockz (breaking-change)
  • [api] Make password and encryption mutually exclusive, add deprecation warning for password auth esphome#10871 by @bdraco (breaking-change)
  • [api] Add configurable connection limits esphome#10939 by @bdraco (breaking-change)
  • [api] Remove ClientInfo::get_combined_info() to eliminate heap fragmentation esphome#10970 by @bdraco (breaking-change)
  • [mdns][openthread] Use StaticVector for services storage with compile-time capacity esphome#10976 by @bdraco (breaking-change)
  • [lock] Replace std::set with bitmask (saves 388B flash + 23B RAM per lock) esphome#10977 by @bdraco (breaking-change)
  • [logger] Conditionally compile runtime tag-specific log levels for performance esphome#11004 by @bdraco (breaking-change)
  • [esp32] Improve version handling esphome#10899 by @swoboda1337 (breaking-change)
  • [web_server] Use IDF web server for ESP32 Arduino builds esphome#10991 by @bdraco (breaking-change)
  • [esp32_ble] Fix max_connections architecture (shared client+server limit) esphome#11006 by @bdraco (breaking-change)
  • [audio] Update esp-audio-libs 2.0.1 to use new FLAC decoder esphome#10974 by @kahrendt (breaking-change)
  • [api] Add message size limits to prevent memory exhaustion esphome#10936 by @bdraco (breaking-change)

All changes

Dependency Changes

All Changelogs