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, password deprecation, and API hardening with OOM protection
- 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. This component was specifically designed for the Home Assistant ZWA-2 Z-Wave Adapter, which combines an ESP32 and a Z-Wave modem in a single device, but could support other Z-Wave hardware in the future.
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 (Major Architectural Change)
This release includes a fundamental change in how ESP32 Arduino builds work - Arduino is now integrated as an ESP-IDF component rather than a separate framework. This is the biggest architectural change for ESP32 in ESPHome’s history.
Previously, Arduino came as a precompiled framework with everything baked in - you got whatever upstream decided, whether you needed it or not. This led to bloated builds that often couldn’t even fit on devices with limited flash space. You were stuck with the upstream choices and locked out of ESP-IDF features.
Now Arduino is built as an ESP-IDF component alongside your configuration. ESPHome compiles only what you actually use, eliminating the bloat. You get access to ESP-IDF features while still using Arduino libraries when you need them. This aligns with Espressif’s recommended approach and is how the Arduino ecosystem is evolving.
Memory Savings:
- 20-30KB RAM savings on Arduino builds
- Additional ~8KB RAM savings if using the web server
- Smaller binary sizes overall
- Better memory efficiency through shared libraries
Development Benefits:
- Faster fixes for underlying components - Many components now share the same implementations between Arduino and ESP-IDF, eliminating duplicate maintenance
- Access to latest ESP-IDF 5.4 features while using Arduino libraries
- Reduced maintenance burden - One framework to maintain instead of two separate paths
- Future-proof - Follows Espressif’s direction for the ESP32 ecosystem
Build Time Trade-off:
- Arduino builds now take longer (Arduino is compiled on top of ESP-IDF)
- ESP-IDF builds are now 2-3x faster than Arduino builds
- Consider migrating to ESP-IDF if build time matters to you
Should You Migrate to ESP-IDF?
We recommend ESP-IDF for most users, especially for:
- Bluetooth Proxy devices (lower memory usage)
- New projects
- Configurations where you want faster builds
Arduino is still fully supported and works great if you need it for specific Arduino libraries. See our Arduino to ESP-IDF migration guide for help switching - it’s easier than you might think!
What You Need to Know
Most users: Your configuration will work without changes. ESPHome handles the framework integration automatically.
External component developers: If you maintain external components using Arduino-specific APIs, review Espressif’s Arduino as ESP-IDF component documentation and test your components with this release.
Breaking change details: Framework version handling has been improved with stricter validation. See the breaking changes section for specifics.
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. We conducted an internal security audit that didn’t find any privilege escalation issues but identified many hardening opportunities. We’ve addressed these in this release and will continue to focus on internal security testing in the coming months.
SHA256 OTA Authentication
OTA authentication has been upgraded from MD5 to SHA256 for better security:
- Modern cryptographic hashing replaces legacy MD5 authentication
- Hardware acceleration on supported ESP32 variants (S3, etc.)
- Non-blocking authentication for better performance
- Graceful transition period - Both SHA256 and MD5 are accepted through 2025.12.x
- MD5 will be rejected starting with 2026.1.0 on platforms that support SHA256
During the transition, you’ll see a warning when MD5 is used. After 2026.1.0, downgrading to older ESPHome versions will require serial flashing instead of OTA.
Bonus improvement: Extended handshake timeout (20s) makes OTA more reliable on poor WiFi connections without freezing the device.
API Password Deprecation - Heads Up
If you’re still using password authentication for the API, now’s the time to switch to encryption. Password support will be removed in version 2026.1.0.
This release adds better warnings so you’ll know if you need to update your configuration:
- You’ll see a clear warning if you’re using passwords - no surprises when support is removed
- Can’t use both - if you try to configure both password and encryption, ESPHome will stop you (this combination has never worked properly and causes connection failures)
- Easy migration - just switch from
password:
toencryption:
with a key - You have time - password support works until 2026.1.0, giving you plenty of time to update
⚠️ Warning
If you’re using
password:
in your API configuration, please migrate toencryption:
before version 2026.1.0. Password authentication will be removed at that time. You can’t use both password and encryption together - pick one (and encryption is the better choice for security).
Dashboard Improvements
The ESPHome Dashboard now uses WebSockets instead of HTTP polling for real-time updates:
- Instant updates - Device status changes appear immediately (no more 1-2 second polling delay)
- Snappier interface - Everything feels more responsive
- Lower server load - More efficient than constant HTTP polling
- Logs start instantly - The logs command now skips external component updates, eliminating 5-30 second delays when internet is unavailable
If you manage multiple devices, the dashboard will feel noticeably faster and more responsive. Viewing logs is now instant even in offline or isolated network environments.
Device Onboarding Improvements
Getting your ESPHome devices online has never been easier. This release brings major improvements to the initial setup experience, particularly for ESP32-IDF devices and the Made for ESPHome program.
Captive Portal for ESP-IDF
This is huge. ESP-IDF devices now have full captive portal support, which means you don’t have to figure out which IP address to type into your browser anymore. When you connect to the device’s access point, your phone or computer automatically detects the captive portal and opens the configuration page - just like connecting to hotel or airport WiFi.
This brings ESP-IDF up to feature parity with Arduino for onboarding, and since most new ESPHome devices are running ESP-IDF, this dramatically improves the out-of-box experience. The implementation includes a lightweight DNS server that runs in ESPHome’s event loop, responding to all DNS queries with the device’s IP address to trigger captive portal detection on iOS, Android, and other platforms.
Improved Improv BLE Performance
Improv Wi-Fi over BLE is the standard way to provision ESPHome devices over Bluetooth, and we’ve made it significantly faster and more reliable:
Performance improvements:
- 26x faster service lookups for typical 3-service configurations by replacing HashMap with vectors
- 1KB flash savings plus reduced RAM usage
- Better discoverability - Device names are now visible to passive BLE scanners, making ESPHome devices easier to find on a wider range of BLE scanning technologies
Why passive scanning matters: Many home automation systems and BLE scanners only support passive scanning (not active scanning). Making the device name visible to passive scanners means your devices show up in more scanning apps and are easier to identify during setup.
These improvements directly support the Made for ESPHome program, which requires Improv provisioning via BLE for Wi-Fi projects to ensure a consistent, high-quality setup experience across all ESPHome-compatible products.
The Made for ESPHome program requires Improv BLE provisioning for Wi-Fi projects. See the certification requirements for details.
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 brings major memory efficiency improvements, with nearly 3KB of RAM savings on typical configurations. As ESPHome has grown more capable over the years, memory usage has naturally increased with new features. ESP8266 devices with their ~40KB of free RAM were starting to feel the squeeze, and ESP32-C3 Bluetooth proxies were experiencing stability issues under load.
We’ve made these use cases much better. Through systematic optimization efforts, we’ve reclaimed precious RAM and improved stability across the board. ESP8266 users get more headroom for complex configurations. ESP32-C3 Bluetooth proxy users get better stability with multiple active connections. All platforms benefit from faster performance and lower memory overhead.
The improvements come from replacing heavy C++ STL containers (vectors, maps, sets) with lighter alternatives and moving data from RAM to flash storage where possible. Each optimization might save a few hundred bytes, but they add up quickly when applied across the codebase.
This is just the beginning - we’re continuing this optimization work in 2025.11.0 and beyond. Expect more memory savings and performance improvements in upcoming releases.
RAM Savings:
- ~3KB total RAM savings on ESP8266, ~1-2KB on ESP32 from all optimizations combined
- Lock component: 388 bytes flash + 23 bytes RAM per lock via bitmask optimization
- ESP32 BLE Server: 1KB flash savings by replacing HashMap with vectors (26x faster lookups)
- Event Emitter: 2.6KB flash savings via vector replacement (2.3x faster)
- mDNS/OpenThread: StaticVector eliminates dynamic allocation overhead
- Script names: Moved to flash storage instead of RAM
- Component metadata: Named structs replace std::pair overhead
- API: Zero-copy techniques eliminate unnecessary data copying in Bluetooth proxy, Z-Wave proxy, and base API calls (authentication, time zones), reducing allocations and improving performance
Performance Improvements:
- Logger: 35-72% faster log formatting through optimized string handling
- Web Server: Significant reduction through lookup tables and IDF server unification
- Scheduler: Reduced function call overhead
- OTA: Non-blocking authentication improves responsiveness
- USB Host: Dedicated FreeRTOS task for continuous event processing prevents data corruption during high-frequency transfers
These optimizations benefit all platforms, but ESP8266 users will notice the most dramatic stability improvements.
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
For Contributors
If you contribute to ESPHome or maintain external components, you’ll notice some big improvements to the development experience:
CI Testing Improvements:
- Much faster CI for large PRs - Large PR test time reduced from ~1 hour to ~20 minutes through intelligent component grouping
- Release builds 6-7x faster - Release test time reduced from 12+ hours to 1h40m
- Smarter component testing - Changed components get isolated test runners with full validation, while dependency-only components are grouped for speed
- Better feedback loops - Get results faster, making it easier to iterate on contributions
- More reliable testing - APT package caching (2m30s → 5s), retry logic for downloads, and utilization of a larger available disk partition (66GB instead of 23GB)
These improvements make it much easier to contribute to ESPHome by reducing wait times and making the CI system more efficient and reliable.
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.
Release 2025.10.1 - October 16
- [mipi_spi] Rotation fixes esphome#11226 by @clydebarrow (new-feature)
- [ota] Fix MQTT resolution when static IP appears first in device list esphome#11272 by @bdraco
- [ota.esphome] Handle blank password the same as no password defined esphome#11271 by @jesserockz
- [tests] Fix OTA password test assertions after merge collision esphome#11275 by @bdraco
- [wifi] Fix enterprise wifi esphome#11276 by @swoboda1337
- [substitutions] Fix AttributeError when using packages with substitutions esphome#11274 by @bdraco
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)
- [wts01] 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)
- [usb_host] Fix transfer slot exhaustion at high data rates and add configurable max_transfer_requests esphome#11174 by @bdraco (new-feature)
New Components
- [zwave_proxy] New component esphome#10762 by @kbx81 (new-component) (new-feature)
- [wts01] 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
- [wts01] 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) - [mmc5603] 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
- [mmc5603] 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
- [wts01] 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)
- [ci] Reduce component test group size to prevent runner disk exhaustion esphome#11121 by @bdraco
- [ci] Reduce component test group size to 10 to prevent runner disk exhaustion esphome#11122 by @bdraco
- [canbus][mcp23xxx_base] Mark virtual methods as pure virtual to fix linker errors esphome#11133 by @bdraco
- [ci][tests] Remove redundant ESP32 Arduino test files esphome#11136 by @bdraco
- [ci][ethernet][tests] Remove redundant Arduino tests for ethernet PHYs esphome#11137 by @bdraco
- [ci][improv_serial][tests] Remove redundant ESP32 Arduino test files esphome#11138 by @bdraco
- [mdns] Store TXT record values in flash to reduce heap usage esphome#11114 by @bdraco
- [esp32] Update IDF 5.5 and Arduino 3.3 to use 55.03.31-1 esphome#11120 by @swoboda1337
- [esp32] Update migration warning for Arduino-as-IDF-component transition esphome#11142 by @bdraco
- [ci][mdns][tests] Remove redundant ESP32 Arduino test files esphome#11143 by @bdraco
- [esp32_ble_beacon, esp32_ble_tracker] Remove unused Arduino includes and redundant tests esphome#11140 by @bdraco
- [network][ci][tests] Remove redundant ESP32 Arduino test files esphome#11148 by @bdraco
- [ci][time][tests] Remove redundant ESP32 Arduino test files esphome#11147 by @bdraco
- [ci][debug][tests] Remove redundant ESP32 variant Arduino test files esphome#11146 by @bdraco
- [ci][logger][tests] Remove redundant ESP32 Arduino test files esphome#11144 by @bdraco
- [opentherm][ci][tests] Remove redundant ESP32 Arduino tests and simplify conditionals esphome#11149 by @bdraco
- [ci][tests] Remove redundant ESP32-C3 Arduino tests for non-variant-specific components esphome#11152 by @bdraco
- [datetime][ci][tests] Replace test.all.yaml with minimal platform cover esphome#11151 by @bdraco
- [ci][tests] Remove all redundant ESP32-C3 Arduino tests esphome#11154 by @bdraco
- [json] Fix PSRAM allocator dangling pointer crash esphome#11165 by @bdraco
- [esp32_ble] Partial revert of #10862 - Fix GATT client notifications esphome#11171 by @bdraco
- [mdns] Restore mdns_txt_record() public API for external components esphome#11158 by @bdraco
- Group component tests to reduce CI time esphome#11134 by @bdraco
- [ci] Filter out components without tests from CI test jobs (#11134 followup) esphome#11178 by @bdraco
- [esp32] Change Arduino dev & latest to 3.3.2 esphome#11169 by @swoboda1337
- [mipi_rgb] Fix pin conflicts introduced by shared SPI bus in #11134 esphome#11185 by @bdraco
- [ci] Dynamic runner allocation: 8 for releases, 4 for dev esphome#11191 by @bdraco
- [wifi] Fix missed string literal in flash on ESP8266 esphome#11187 by @bdraco
- [ota] Increase handshake timeout to 20s now that auth is non-blocking esphome#11186 by @bdraco
- [esp32_improv] Fix state not transitioning to PROVISIONED when WiFi configured via captive portal esphome#11181 by @bdraco
- [usb_host] Fix transfer slot exhaustion at high data rates and add configurable max_transfer_requests esphome#11174 by @bdraco (new-feature)
- [media_player.speaker] Dynamic auto load esphome#11084 by @jesserockz
- [core] Properly clean the build dir in the HA addon esphome#11208 by @swoboda1337
- Fix log retrieval with FQDN when mDNS is disabled esphome#11202 by @bdraco
- [mipi_dsi] Update waveshare P4-86 config esphome#10562 by @tjq19940331
- [pzemac, pzemdc, sdm_meter] Fix pin conflicts in ESP32-IDF tests esphome#11240 by @bdraco
- [netlify] Pin python version esphome#11244 by @jesserockz
- 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]
- Bump esphome-dashboard from 20250904.0 to 20251009.0 esphome#11123 by @dependabot[bot]
- Bump aioesphomeapi from 41.13.0 to 41.14.0 esphome#11188 by @dependabot[bot]
- Bump esphome-dashboard from 20251009.0 to 20251013.0 esphome#11212 by @dependabot[bot]
- Bump aioesphomeapi from 41.14.0 to 41.16.0 esphome#11215 by @dependabot[bot]
- Bump aioesphomeapi from 41.16.0 to 41.16.1 esphome#11221 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