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 toreset_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
- [esp32] Use arduino as an idf component esphome#10647 by @swoboda1337 (new-feature) (breaking-change)
- [zwave_proxy] New component esphome#10762 by @kbx81 (new-component) (new-feature)
- [substitutions] implement !literal esphome#10785 by @jpeletier (new-feature)
- [uart] Multiple ESP32 features and fixes esphome#8103 by @brambo123 (new-feature)
- Add external wake word message esphome#10850 by @synesthesiam (new-feature)
- Add WTS01 temperature sensor component esphome#8539 by @alepee (new-component) (new-feature) (new-platform)
- Add sha256 support esphome#10882 by @bdraco (new-component) (new-feature)
- [ethernet] Add LAN8670 PHY support esphome#10874 by @xorbit (new-feature)
- [ethernet] Add mac_address yaml configuration option esphome#10861 by @sphen13 (new-feature)
- [sx126x] Add additional FSK CRC options esphome#10928 by @swoboda1337 (new-feature)
- [esp32_can] support multiple CAN instances for platforms that support it esphome#10712 by @patagonaa (new-feature)
- [qmc5883l] Added drdy_pin option to allow it to run max rate esphome#10901 by @mortification77 (new-feature)
- [lm75b] Add LM75B temperature sensor component esphome#10534 by @Beormund (new-component) (new-feature) (new-platform)
- [remote_receiver] Add signal demodulation support on ESP32 esphome#8711 by @smkent (new-feature)
- [modbus_controller] courtesy response esphome#10027 by @carlessole (new-feature)
- [api] Add support for getting action responses from home-assistant esphome#10948 by @jesserockz (new-feature)
- [epaper_spi] New epaper component esphome#10462 by @jesserockz (new-component) (new-feature) (new-platform)
New Components
- [zwave_proxy] New component esphome#10762 by @kbx81 (new-component) (new-feature)
- Add WTS01 temperature sensor component esphome#8539 by @alepee (new-component) (new-feature) (new-platform)
- Add sha256 support esphome#10882 by @bdraco (new-component) (new-feature)
- [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)
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
toreset_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
toHomeassistantActionRequest
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
- [thermostat] Rename timer enums to mitigate naming conflict esphome#10666 by @kbx81
- [remote] Remove duplicate implementations of remote code esphome#10548 by @swoboda1337
- Add coverage for dashboard ahead of Path conversion esphome#10669 by @bdraco
- Add additional coverage for yaml_util esphome#10674 by @bdraco
- [esp32] Allow esp-idf 5.5.1 esphome#10680 by @swoboda1337
- [esp32_ble_tracker] Simplify BLE client state machine by removing READY_TO_CONNECT esphome#10672 by @bdraco
- Fix packet_transport not initializing packet data after flushing esphome#10686 by @fakuivan
- [api_protobuf.py] Use type based on size/length esphome#10696 by @kbx81
- Unpin libretiny version in network test esphome#10717 by @HeMan
- Add additional coverage ahead of Path conversion esphome#10723 by @bdraco
- [api] Exclude ConnectRequest/Response when password is disabled esphome#10704 by @bdraco
- [json] Only compile SpiRamAllocator when PSRAM is enabled esphome#10728 by @bdraco
- [CI] Check esp32 boards file is up to date esphome#10730 by @jesserockz
- [const] Move CONF_CLEAR to const.py esphome#10742 by @DT-art1
- Migrate to SPDX license specifier in pyproject.toml esphome#10768 by @mweinelt
- [core] Make StringRef convertToJson inline to save 250+ bytes flash esphome#10751 by @bdraco
- [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)
- [ethernet] Remove redundant Arduino framework version check esphome#10781 by @bdraco
- [esp32] Optimize NVS preferences memory usage by replacing vector with unique_ptr esphome#10729 by @bdraco
- [libretiny] Optimize preferences memory usage by replacing vector with unique_ptr esphome#10731 by @bdraco
- [zwave_proxy] New component esphome#10762 by @kbx81 (new-component) (new-feature)
- [ektf2232] Rename
rts_pin
toreset_pin
esphome#10720 by @jesserockz (breaking-change) - [dashboard] Transfer DNS/mDNS cache from dashboard to CLI to avoid blocking esphome#10685 by @bdraco
- [api_protobuf.py] Use type appropriate for
estimated_size
esphome#10797 by @kbx81 - [core] os.path -> Path esphome#10654 by @jesserockz
- [zwave_proxy] Send Home ID in DeviceInfoResponse esphome#10798 by @kbx81
- Fix esphome run esphome#10807 by @balloob
- [zephyr] Fix compilation after Path migration esphome#10811 by @bdraco
- [http_request] Fix Path object passed to C++ codegen esphome#10812 by @bdraco
- Synchronise Device Classes from Home Assistant esphome#10803 by @esphomebot
- [sensirion] Fix warning esphome#10813 by @swoboda1337
- [core] Fix TypeError in update-all command after Path migration esphome#10821 by @bdraco
- Add coverage for Path to str fix in #10807 esphome#10808 by @bdraco
- [web_server] Reduce flash usage by eliminating lambda overhead in JSON generation esphome#10749 by @bdraco
- [tests] Add integration tests for oversized payload handling in API esphome#10788 by @bdraco
- Skip external component updates when running logs command esphome#10756 by @bdraco
- Fix missing os import after merge collisions esphome#10823 by @bdraco
- [substitutions] add missing safe globals tests esphome#10814 by @jpeletier
- [substitutions] implement !literal esphome#10785 by @jpeletier (new-feature)
- tuya: handle WIFI_SELECT and WIFI_RESET esphome#10822 by @thekeymeister
- [uart] Multiple ESP32 features and fixes esphome#8103 by @brambo123 (new-feature)
- [CI] Format files after sync esphome#10828 by @jesserockz
- Fix incorrect factor for value calculation in MMC5603 component esphome#9925 by @Nerdiyde (breaking-change)
- Pin ruamel.yaml.clib to 0.2.12 esphome#10837 by @bdraco
- [camera-encoder] Use defines instead of build flags esphome#10824 by @jesserockz
- [core] Add typing to some core files esphome#10843 by @jesserockz
- [core] Add a clean-platform option esphome#10831 by @swoboda1337
- [wifi] Unify ESP32 WiFi implementation to use ESP-IDF driver esphome#10849 by @bdraco
- [api] Implement zero-copy API for bluetooth_proxy writes esphome#10840 by @bdraco
- [zwave_proxy] Fix race condition sending zero home ID on reboot esphome#10848 by @bdraco
- Implement zero-copy API for zwave_proxy esphome#10836 by @bdraco
- Implement zero-copy for strings in base API calls esphome#10851 by @bdraco
- [api] Rename
HomeassistantServiceResponse
toHomeassistantActionRequest
esphome#10839 by @jesserockz (breaking-change) - [esp32_ble] Remove Arduino-specific BLE limitations and SplitDefaults esphome#10780 by @bdraco
- [api] Consolidate authentication checks to reduce function call overhead esphome#10852 by @bdraco
- [usb_host] Prevent USB data corruption from missed events esphome#10859 by @bdraco
- Add external wake word message esphome#10850 by @synesthesiam (new-feature)
- [api] Make password and encryption mutually exclusive, add deprecation warning for password auth esphome#10871 by @bdraco (breaking-change)
- [json] Parsing json without a lambda esphome#10838 by @jesserockz
- Pin SHA for github actions esphome#10879 by @jesserockz
- Add WTS01 temperature sensor component esphome#8539 by @alepee (new-component) (new-feature) (new-platform)
- [scd30] Fix temp offset esphome#10847 by @swoboda1337
- Fix flakey password auth failure integration test esphome#10883 by @bdraco
- [core] Rename to clean-platform to clean-all esphome#10876 by @swoboda1337
- Add sha256 support esphome#10882 by @bdraco (new-component) (new-feature)
- [dashboard] Fix progress bars on Windows esphome#10858 by @swoboda1337
- [htu21d] Fix I2C NACK issue and buffer overrun esphome#10801 by @swoboda1337
- [ethernet] Add LAN8670 PHY support esphome#10874 by @xorbit (new-feature)
- Update stale bot rules esphome#10891 by @jesserockz
- [stale] Clean up stale job esphome#10892 by @jesserockz
- [text_sensor] Convert LOG_TEXT_SENSOR macro to function to reduce flash usage esphome#10884 by @bdraco
- [esp32_ble] Reduce RAM usage and firmware size by disabling unused GATT functionality esphome#10862 by @bdraco
- [version] Reduce flash usage by optimizing string concatenation in setup() esphome#10890 by @bdraco
- [web_server] Remove std::find_if overhead matching IDF implementation esphome#10889 by @bdraco
- [select] Remove STL algorithm overhead to reduce flash usage esphome#10887 by @bdraco
- [climate] Remove STL algorithm overhead in save_state() method esphome#10888 by @bdraco
- [ethernet] Fix Ethernet RMII capable variant validation esphome#10909 by @xorbit
- [ota] Add SHA256 password authentication with backward compatibility esphome#10809 by @bdraco
- [zwave_proxy, api] Add notification message when Z-Wave HomeID changes esphome#10860 by @kbx81
- Allow usb_host & usb_uart components on ESP32-P4 esphome#10815 by @p1ngb4ck
- [spi] fix SPI interface selection on ESP32-S2 and -S3 (#10732) esphome#10766 by @bibach
- [captive_portal] Add DNS server support for ESP-IDF framework esphome#10919 by @bdraco
- [esp32_improv] Make device name visible to passive BLE scanners esphome#10918 by @bdraco
- [esp32_ble_tracker] Reduce gap_scan_result log verbosity to VV esphome#10917 by @bdraco
- [esp32_ble_server] Replace HashMap with vector for services - saves 1KB flash, 26x faster esphome#10894 by @bdraco
- [esp32_ble_server] Optimize notification and action managers for typical use cases esphome#10897 by @bdraco
- [event_emitter] Replace unordered_map with vector - saves 2.6KB flash, 2.3x faster esphome#10900 by @bdraco
- [core] Fix platform component normalization happening too late in validation pipeline esphome#10908 by @bdraco
- [esp32_ble_server] Conditionally compile BLE automation features to save memory esphome#10910 by @bdraco
- [usb_host] Fix double-free crash with lock-free atomic pool allocation esphome#10926 by @bdraco
- [nrf52] add more tests esphome#10695 by @tomaszduda23
- [nrf52] add more tests esphome#10694 by @tomaszduda23
- [core] Don’t remove storage in clean-all esphome#10921 by @swoboda1337
- [script] Reduce RAM usage by storing names in flash esphome#10941 by @bdraco
- [ota] Complete non-blocking authentication implementation esphome#10912 by @bdraco
- [socket] Reduce memory overhead for LWIP TCP accept queue on ESP8266/RP2040 esphome#10938 by @bdraco
- [api] Add configurable connection limits esphome#10939 by @bdraco (breaking-change)
- [mcp2515, canbus] error handling improvments esphome#10526 by @patagonaa
- [ethernet] Add mac_address yaml configuration option esphome#10861 by @sphen13 (new-feature)
- [captive_portal] Add DHCP Option 114 support for ESP32 esphome#10952 by @bdraco
- [sx126x] Add additional FSK CRC options esphome#10928 by @swoboda1337 (new-feature)
- [dashboard] Replace polling with WebSocket for real-time updates esphome#10893 by @bdraco
- [deep_sleep] esp32 fixes to align with variant support esphome#10929 by @bdraco
- [const] Move
CONF_ON_RESPONSE
to const.py esphome#10958 by @jesserockz - [substitutions] fix #10825 set evaluation error esphome#10830 by @jpeletier
- [web_server] Optimize handler methods with lookup tables to reduce flash usage esphome#10951 by @bdraco
- [psram] Fix invalid variant error, add
supported()
check esphome#10962 by @jesserockz - [remote_transmitter] fix sending codes on libretiny esphome#10959 by @szupi-ipuzs
- [hdc1080] remove delays and fix no check for sensor nullptr esphome#10947 by @mrtoy-me
- [core] Fix ComponentIterator alignment for 32-bit platforms esphome#10969 by @bdraco
- [logger] Optimize log formatting performance (35-72% faster) esphome#10960 by @bdraco
- [core] Add some types to
loader.py
esphome#10967 by @jesserockz - [psram] raise instead of returning invalid object esphome#10954 by @carlreid
- [rtttl] Fix warning esphome#10972 by @swoboda1337
- [api] Reduce flash usage in user services by eliminating vector copy esphome#10971 by @bdraco
- [api] Remove ClientInfo::get_combined_info() to eliminate heap fragmentation esphome#10970 by @bdraco (breaking-change)
- [ci] Fix pre-commit action to comply with pinned SHA security policy esphome#10990 by @bdraco
- Fix UNIT_KILOVOLT_AMPS_REACTIVE constant definition esphome#10992 by @ogruendel
- [mpr121] remove delay esphome#10963 by @mrtoy-me
- [sps30] remove delay esphome#10964 by @mrtoy-me
- [core] Fix MQTT import esphome#10982 by @swoboda1337
- [logger] Fix line number wrapping bug for files with >999 lines esphome#10979 by @bdraco
- Fix log level selector when selecting levels above INFO esphome#10368 by @mill1000
- [esp32_can] support multiple CAN instances for platforms that support it esphome#10712 by @patagonaa (new-feature)
- [const] Move CONF_MAX_CONNECTIONS to const.py esphome#11007 by @bdraco
- [json] Fix missing defines.h include causing PSRAM allocator to be unused esphome#11008 by @bdraco
- [mpr121] cleaner setup esphome#11013 by @mrtoy-me
- [core] Merge duplicate loops in mac_address_is_valid() esphome#11018 by @bdraco
- [api] Simplify message reading conditional esphome#11016 by @bdraco
- [ethernet] Consolidate error handling to reduce flash usage esphome#11019 by @bdraco
- [api] Consolidate fatal error logging to reduce flash usage esphome#11015 by @bdraco
- [sps30] Clean up esphome#10998 by @swoboda1337
- [esp32_ble_server] Replace EventEmitter with direct callbacks to reduce memory usage esphome#10946 by @bdraco
- [api] Add configurable send queue limit to prevent OOM crashes esphome#10973 by @bdraco
- [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)
- [number] Reduce flash usage in NumberCall logging esphome#10983 by @bdraco
- [core] Replace std::pair with purpose-built named structs for component metadata esphome#10984 by @bdraco
- [web_server] Reduce flash and RAM usage by optimizing string construction esphome#10986 by @bdraco
- [web_server_idf] Fix watchdog timeout with unreliable event source connections esphome#11002 by @bdraco
- [web_server_idf] Optimize parameter storage to reduce flash usage and memory overhead esphome#11003 by @bdraco
- [logger] Conditionally compile runtime tag-specific log levels for performance esphome#11004 by @bdraco (breaking-change)
- [wifi] Optimize WPA2 EAP phase2 logging to reduce memory overhead esphome#11005 by @bdraco
- [esphome.ota] Fix ESP32-S3 OTA authentication with hardware SHA acceleration esphome#11011 by @bdraco
- [scheduler] Deduplicate item removal code with template helper esphome#11017 by @bdraco
- [esp32] Improve version handling esphome#10899 by @swoboda1337 (breaking-change)
- [ci] Fix clang-tidy after Arduino-as-IDF-component migration esphome#11031 by @bdraco
- [wifi] Optimize logging to reduce flash usage by 284 bytes on ESP8266 esphome#11022 by @bdraco
- [esp32_ble] Optimize string operations to reduce flash usage by 264 bytes esphome#11023 by @bdraco
- [esp32_rmt_led_strip] Fix clang-tidy signed/unsigned comparison warning esphome#11033 by @bdraco
- [sonoff_d1] Fix clang-tidy signed/unsigned comparison warning esphome#11034 by @bdraco
- [tuya] Fix clang-tidy signed/unsigned comparison warning esphome#11035 by @bdraco
- [web_server] Use IDF web server for ESP32 Arduino builds esphome#10991 by @bdraco (breaking-change)
- [core] Remove platformio install from setup esphome#10997 by @swoboda1337
- [nextion] Reduce DEBUG logs on events esphome#11014 by @edwardtfn
- [esp32_ble] Fix max_connections architecture (shared client+server limit) esphome#11006 by @bdraco (breaking-change)
- [mipi] Fix rotation handling esphome#11010 by @clydebarrow
- [zwave_proxy] Send HomeID upon client connect esphome#11037 by @kbx81
- [online_image] Fix clang-tidy sign comparison errors esphome#11041 by @bdraco
- [animation] Fix clang-tidy sign comparison errors esphome#11042 by @bdraco
- [bl0906, bl0942] Fix clang-tidy sign comparison errors esphome#11043 by @bdraco
- [cm1106] Fix clang-tidy sign comparison error esphome#11045 by @bdraco
- [daikin_arc] Fix clang-tidy sign comparison errors esphome#11046 by @bdraco
- [es7210] Fix clang-tidy sign comparison errors esphome#11047 by @bdraco
- [esp32_can] Fix clang-tidy sign comparison error esphome#11049 by @bdraco
- [fingerprint_grow] Fix clang-tidy sign comparison error esphome#11050 by @bdraco
- [mixer] Fix clang-tidy sign comparison errors esphome#11061 by @bdraco
- [nau7802] Fix clang-tidy sign comparison errors esphome#11062 by @bdraco
- [max7219digit] Fix clang-tidy sign comparison error esphome#11060 by @bdraco
- [ltr_als_ps] Fix clang-tidy sign comparison errors esphome#11058 by @bdraco
- [ltr501] Fix clang-tidy sign comparison errors esphome#11057 by @bdraco
- [kamstrup_kmp] Fix clang-tidy sign comparison errors esphome#11055 by @bdraco
- [ili9xxx] Fix clang-tidy sign comparison errors esphome#11054 by @bdraco
- [pid] Fix clang-tidy sign comparison error esphome#11063 by @bdraco
- [key_collector] Fix clang-tidy sign comparison errors esphome#11056 by @bdraco
- [qmc5883l] Added drdy_pin option to allow it to run max rate esphome#10901 by @mortification77 (new-feature)
- [matrix_keypad] Fix clang-tidy sign comparison error esphome#11059 by @bdraco
- [audio, i2s_audio] Fix clang-tidy sign comparison errors esphome#11044 by @bdraco
- [graphical_display_menu] Fix clang-tidy sign comparison errors esphome#11052 by @bdraco
- [statsd] Fix clang-tidy sign comparison error esphome#11069 by @bdraco
- [json] Add
parse_json
overload forconst char *
esphome#11039 by @jesserockz - [st7789v] Fix clang-tidy sign comparison errors esphome#11068 by @bdraco
- [st7567_i2c] Fix clang-tidy sign comparison warning esphome#11067 by @bdraco
- [esp32_ble] Fix clang-tidy sign comparison error esphome#11048 by @bdraco
- [lm75b] Add LM75B temperature sensor component esphome#10534 by @Beormund (new-component) (new-feature) (new-platform)
- [remote_base] Fix clang-tidy sign comparison error esphome#11064 by @bdraco
- [mipi_spi] Fix clang-tidy sign comparison errors esphome#11070 by @bdraco
- [esp32_ble_server] Refactor property setters to reduce code duplication esphome#11071 by @bdraco
- [esp32_ble_server] Use early returns in is_created() and is_failed() methods esphome#11072 by @bdraco
- [remote_receiver] Add signal demodulation support on ESP32 esphome#8711 by @smkent (new-feature)
- [rtttl] Fix clang-tidy sign comparison error esphome#11065 by @bdraco
- [haier] Fix clang-tidy sign comparison error esphome#11053 by @bdraco
- [graph] Fix clang-tidy sign comparison error esphome#11051 by @bdraco
- [tormatic] Fix clang-tidy sign comparison error esphome#11075 by @bdraco
- [uponor_smatrix] Fix clang-tidy sign comparison errors esphome#11076 by @bdraco
- [veml7700] Fix clang-tidy sign comparison errors esphome#11078 by @bdraco
- [waveshare_epaper] Fix clang-tidy sign comparison errors esphome#11079 by @bdraco
- [api] Fix clang-tidy sign comparison error esphome#11081 by @bdraco
- [time] Fix clang-tidy sign comparison errors esphome#11080 by @bdraco
- [mcp2515] setup filters esphome#10486 by @mrk-its
- [core] Allow
AUTO_LOAD
to receive the component config to determine if it should load other components esphome#10961 by @jesserockz - [esp32] Fix clang-tidy error for Arduino watchdog function declarations esphome#11085 by @bdraco
- [clang-tidy] Include sdkconfig.defaults in hash calculation esphome#11091 by @bdraco
- [const] Move
CONF_CAPTURE_RESPONSE
to const.py esphome#11096 by @jesserockz - [core] Update helpers for new auto load functionality esphome#11097 by @jesserockz
- [light] Reduce flash usage by eliminating duplicate validation code esphome#11030 by @bdraco
- [esp32_ble] Refactor ESPBTUUID::from_raw to use parse_hex helpers esphome#11073 by @bdraco
- [esp32_ble] Refactor ESPBTUUID comparison with direct returns and memcmp esphome#11074 by @bdraco
- [api] Optimize frame helpers to eliminate double-move overhead esphome#11092 by @bdraco
- [esp32] Hide build warnings esphome#11102 by @swoboda1337
- [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)
- [esp32] Fix issue when framework source is set esphome#11106 by @swoboda1337
- [core] Fix dynamic auto load priority esphome#11112 by @jesserockz
- [modbus_controller] courtesy response esphome#10027 by @carlessole (new-feature)
- [mdns] Fix delete/malloc bug and store string constants in flash esphome#11105 by @bdraco
- [api] Add support for getting action responses from home-assistant esphome#10948 by @jesserockz (new-feature)
- [epaper_spi] New epaper component esphome#10462 by @jesserockz (new-component) (new-feature) (new-platform)
Dependency Changes
- Bump ruff from 0.12.12 to 0.13.0 esphome#10670 by @dependabot[bot]
- Bump pytest-asyncio from 1.1.0 to 1.2.0 esphome#10691 by @dependabot[bot]
- Bump pytest-mock from 3.15.0 to 3.15.1 esphome#10759 by @dependabot[bot]
- Bump aioesphomeapi from 40.2.1 to 41.1.0 esphome#10776 by @dependabot[bot]
- Bump ruff from 0.13.0 to 0.13.1 esphome#10802 by @dependabot[bot]
- Bump aioesphomeapi from 41.1.0 to 41.4.0 esphome#10805 by @dependabot[bot]
- Bump esptool from 5.0.2 to 5.1.0 esphome#10758 by @dependabot[bot]
- Bump aioesphomeapi from 41.4.0 to 41.6.0 esphome#10833 by @dependabot[bot]
- Bump aioesphomeapi from 41.6.0 to 41.7.0 esphome#10841 by @dependabot[bot]
- Bump aioesphomeapi from 41.7.0 to 41.8.0 esphome#10853 by @dependabot[bot]
- Bump aioesphomeapi from 41.8.0 to 41.9.0 esphome#10855 by @dependabot[bot]
- Bump aioesphomeapi from 41.9.0 to 41.9.1 esphome#10857 by @dependabot[bot]
- Bump aioesphomeapi from 41.9.1 to 41.10.0 esphome#10872 by @dependabot[bot]
- Bump actions/cache from 4.2.4 to 4.3.0 in /.github/actions/restore-python esphome#10869 by @dependabot[bot]
- Bump actions/cache from 4.2.4 to 4.3.0 esphome#10868 by @dependabot[bot]
- Bump github/codeql-action from 3.30.3 to 3.30.4 esphome#10886 by @dependabot[bot]
- Bump ruff from 0.13.1 to 0.13.2 esphome#10885 by @dependabot[bot]
- Bump pyyaml from 6.0.2 to 6.0.3 esphome#10904 by @dependabot[bot]
- Bump github/codeql-action from 3.30.4 to 3.30.5 esphome#10905 by @dependabot[bot]
- Bump aioesphomeapi from 41.10.0 to 41.11.0 esphome#10942 by @dependabot[bot]
- Bump docker/login-action from 3.5.0 to 3.6.0 in the docker-actions group esphome#10943 by @dependabot[bot]
- Bump github/codeql-action from 3.30.5 to 3.30.6 esphome#10985 by @dependabot[bot]
- Bump actions/stale from 10.0.0 to 10.1.0 esphome#11001 by @dependabot[bot]
- Bump ruff from 0.13.2 to 0.13.3 esphome#11000 by @dependabot[bot]
- Bump zeroconf from 0.147.2 to 0.148.0 esphome#11083 by @dependabot[bot]
- Bump pylint from 3.3.8 to 3.3.9 esphome#11082 by @dependabot[bot]
- Bump aioesphomeapi from 41.11.0 to 41.12.0 esphome#11108 by @dependabot[bot]
- Bump github/codeql-action from 3.30.6 to 4.30.7 esphome#11109 by @dependabot[bot]
- Bump ruff from 0.13.3 to 0.14.0 esphome#11107 by @dependabot[bot]
- Bump aioesphomeapi from 41.12.0 to 41.13.0 esphome#11113 by @dependabot[bot]
All Changelogs
- ESPHome 2025.10.0 - 15th October 2025 (current page)
- ESPHome 2025.9.0 - 17th September 2025
- ESPHome 2025.8.0 - 20th August 2025
- ESPHome 2025.7.0 - 16th July 2025
- ESPHome 2025.6.0 - 18th June 2025
- ESPHome 2025.5.0 - 21st May 2025
- ESPHome 2025.4.0 - 16th April 2025
- ESPHome 2025.3.0 - 19th March 2025
- ESPHome 2025.2.0 - 19th February 2025
- ESPHome 2024.12.0 - 18th December 2024
- ESPHome 2024.11.0 - 20th November 2024
- ESPHome 2024.10.0 - 16th October 2024
- ESPHome 2024.9.0 - 18th September 2024
- ESPHome 2024.8.0 - 21st August 2024
- ESPHome 2024.7.0 - 17th July 2024
- ESPHome 2024.6.0 - 19th June 2024
- ESPHome 2024.5.0 - 15th May 2024
- ESPHome 2024.4.0 - 17th April 2024
- ESPHome 2024.3.0 - 20th March 2024
- ESPHome 2024.2.0 - 21st February 2024
- ESPHome 2023.12.0 - 20th December 2023
- ESPHome 2023.11.0 - 15th November 2023
- ESPHome 2023.10.0 - 18th October 2023
- ESPHome 2023.9.0 - 27th September 2023
- ESPHome 2023.8.0 - 16th August 2023
- ESPHome 2023.7.0 - 19th July 2023
- ESPHome 2023.6.0 - 21st June 2023
- ESPHome 2023.5.0 - 17th May 2023
- ESPHome 2023.4.0 - 19th April 2023
- ESPHome 2023.3.0 - 15th March 2023
- ESPHome 2023.2.0 - 15th February 2023
- ESPHome 2022.12.0 - 14th December 2022
- ESPHome 2022.11.0 - 16th November 2022
- ESPHome 2022.10.0 - 19th October 2022
- ESPHome 2022.9.0 - 21st September 2022
- ESPHome 2022.8.0 - 17th August 2022
- ESPHome 2022.6.0 - 15th June 2022
- ESPHome 2022.5.0 - 18th May 2022
- ESPHome 2022.4.0 - 20th April 2022
- ESPHome 2022.3.0 - 16th March 2022
- ESPHome 2022.2.0 - 16th February 2022
- ESPHome 2022.1.0 - 19th January 2022
- ESPHome 2021.12.0 - 11th December 2021
- ESPHome 2021.11.0 - 17th November 2021
- ESPHome 2021.10.0 - 20th October 2021
- ESPHome 2021.9.0 - 15th September 2021
- ESPHome 2021.8.0 - 18th August 2021
- Changelog - Version 1.20.0 - 21st July 2021
- Changelog - Version 1.19.0 - 16th June 2021
- Changelog - Version 1.18.0 - 19th May 2021
- Changelog - Version 1.17.0 - 4th May 2021
- Changelog - Version 1.16.0 - February 3, 2021
- Changelog - Version 1.15.0 - September 13, 2020
- Changelog - Version 1.14.0 - November 1
- Changelog - Version 1.13.0 - May 30th 2019
- Changelog - Version 1.12.0
- Changelog - Version 1.11.0
- Changelog - Version 1.10.0
- Changelog - Version 1.9.0
- Version 1.8.0
- Version 1.7.0