Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
2025.9.0 source code.tar.gz | 2025-09-17 | 4.6 MB | |
2025.9.0 source code.zip | 2025-09-17 | 7.8 MB | |
README.md | 2025-09-17 | 33.7 kB | |
Totals: 3 Items | 12.4 MB | 0 |
Full list of changes
New Features
- [light] Add support for querying effects by index [#10195] by @edwardtfn (new-feature)
- [mipi_spi] Add model [#10392] by @clydebarrow (new-feature)
- [mapping] Use custom allocator [#9972] by @clydebarrow (new-feature)
- Add JPEG encoder support via new camera_encoder component [#9459] by @DT-art1 (new-component) (new-feature)
- [nrf52] add dfu [#9319] by @tomaszduda23 (new-feature)
- [bluetooth_proxy] Expose configured scanning mode in API responses [#10490] by @bdraco (new-feature)
- [wizard] extend the wizard dashboard API to allow upload and empty config options [#10203] by @maximmaxim345 (new-feature)
- [mipi_rgb] Unified driver for MIPI RGB displays [#9892] by @clydebarrow (new-component) (new-feature) (new-platform)
- [api] Add timezone support to GetTimeResponse for automatic timezone synchronization [#10661] by @bdraco (new-feature)
- [bl0940] extend configuration options of bl0940 device [#8158] by @dan-s-github (new-feature) (new-platform)
New Components
- Add JPEG encoder support via new camera_encoder component [#9459] by @DT-art1 (new-component) (new-feature)
- [mipi_rgb] Unified driver for MIPI RGB displays [#9892] by @clydebarrow (new-component) (new-feature) (new-platform)
New Platforms
- [mipi_rgb] Unified driver for MIPI RGB displays [#9892] by @clydebarrow (new-component) (new-feature) (new-platform)
- [bl0940] extend configuration options of bl0940 device [#8158] by @dan-s-github (new-feature) (new-platform)
Breaking Changes
- [core] Fix preference storage to account for device_id [#10333] by @bdraco (breaking-change)
- [lvgl] Replace spinbox step with selected_digit [#10349] by @clydebarrow (breaking-change)
- [sensor] Change state_class_to_string() to return const char* to avoid allocations [#10533] by @bdraco (breaking-change)
- [bluetooth_proxy] Change default for active connections to true [#10546] by @bdraco (breaking-change)
- [core] Store component source strings in flash on ESP8266 (breaking change) [#10621] by @bdraco (breaking-change)
- [inkplate] Rename component and fix grayscale [#10200] by @JosipKuci (breaking-change)
All changes
- [CI] Fix CI job failures for PRs with >300 changed files [#10215] by @bdraco
- [qm6988] Clean up code [#10216] by @jesserockz
- [quality] Remove period from audio related Invalid raises [#10229] by @jesserockz
- [api] Optimize message buffer allocation and eliminate redundant methods [#10231] by @bdraco
- [esp32] Optimize preferences is_changed() by replacing temporary vector with unique_ptr [#10246] by @bdraco
- [core] Remove unnecessary FD_SETSIZE check on ESP32 and improve logging [#10255] by @bdraco
- [esp8266] Replace std::vector with std::unique_ptr in preferences to save flash [#10245] by @bdraco
- [api] Optimize APIFrameHelper virtual methods and mark implementations as final [#10278] by @bdraco
- [api] Mark protobuf message classes as final to enable compiler optimizations [#10276] by @bdraco
- [api] Mark APIConnection as final for compiler optimizations [#10279] by @bdraco
- [api] Optimize protobuf decode loop for better performance and maintainability [#10277] by @bdraco
- [CI] Rename and expand needs-docs workflow [#10299] by @jesserockz
- [safe_mode] Reduce flash usage by 184 bytes through code optimization [#10284] by @bdraco
- [helper] Make crc8 function more flexible to avoid reimplementation in individual components [#10201] by @jesserockz
- [api] Avoid object_id string allocations for all entity info messages [#10260] by @bdraco
- [mdns] Reduce flash usage and prevent RAM over-allocation in service compilation [#10287] by @bdraco
- [quality] Convert remaining
to_code
toasync
[#10271] by @jesserockz - [binary_sensor] Convert LOG_BINARY_SENSOR macro to function to reduce flash usage [#10294] by @bdraco
- [sensor] Convert LOG_SENSOR macro to function to reduce flash usage [#10290] by @bdraco
- [button] Convert LOG_BUTTON macro to function to reduce flash usage [#10295] by @bdraco
- [number] Convert LOG_NUMBER macro to function to reduce flash usage [#10293] by @bdraco
- [light] Add support for querying effects by index [#10195] by @edwardtfn (new-feature)
- [CI] Base
too-big
label on new additions only [#10307] by @jesserockz - [web_server] Reduce flash usage by consolidating defer calls in switch and lock handlers [#10297] by @bdraco
- [core] Eliminate heap allocation in teardown_components by using StaticVector [#10256] by @bdraco
- [libretiny] Optimize preferences is_changed() by replacing temporary vector with unique_ptr [#10272] by @bdraco
- [bluetooth_proxy] Mark BluetoothConnection and BluetoothProxy as final for compiler optimizations [#10280] by @bdraco
- [CI] Also require tests for
new-features
[#10311] by @jesserockz - [homeassistant] Add compilation test for homeassistant.tag_scanned action [#10319] by @bdraco
- [core] Add idf-tidy env for esp32-c6 [#10270] by @jesserockz
- [opentherm] Rename c++ files for predictable doxygen generation [#10314] by @jesserockz
- [ld2420] Rename c++ files for predictable doxygen generation [#10315] by @jesserockz
- [nrf52] update toolchain to v0.17.4, support mac [#10391] by @tomaszduda23
- [nrf52] fix build in dashboard [#10323] by @tomaszduda23
- fix temperature config validation regex [#9575] by @ximex
- Update Python to 3.11 in AI instructions [#10407] by @ximex
- [mipi_spi] Add model [#10392] by @clydebarrow (new-feature)
- improve AI instructions [#10416] by @ximex
- [esp32_ble_client] Add missing ESP_GATTC_UNREG_FOR_NOTIFY_EVT logging [#10347] by @bdraco
- [core] Fix preference storage to account for device_id [#10333] by @bdraco (breaking-change)
- [core] Dont copy platform source files if there are no entities of that type [#10436] by @jesserockz
- improve const imports of
esphome.const
[#10438] by @ximex - Revert "[core] Dont copy platform source files if there are no entities of that type" [#10441] by @clydebarrow
- [api] Fix string lifetime issue in fill_and_encode_entity_info for dynamic object_id [#10482] by @bdraco
- [absolute_humidity] Fix typo [#10474] by @DAVe3283
- [esp32_ble_tracker] Remove duplicate client promotion logic [#10321] by @bdraco
- [bluetooth_proxy] Remove unused ClientState::SEARCHING state [#10318] by @bdraco
- [mapping] Use custom allocator [#9972] by @clydebarrow (new-feature)
- [lvgl] Replace spinbox step with selected_digit [#10349] by @clydebarrow (breaking-change)
- Adjust sen5x to match VOC/NOX datasheet [#9894] by @Fmstrat
- [lvgl] Update hello world [#10469] by @clydebarrow
- [mipi] Add type to models for better type hinting downstream [#10475] by @jesserockz
- Add JPEG encoder support via new camera_encoder component [#9459] by @DT-art1 (new-component) (new-feature)
- [sntp] Use callbacks to trigger
on_time_sync
for ESP32 and ESP8266 [#10390] by @kaechele - [display] Allow page actions to have auto generated display id [#10460] by @jesserockz
- [nrf52] add dfu [#9319] by @tomaszduda23 (new-feature)
- [bluetooth_proxy] Expose configured scanning mode in API responses [#10490] by @bdraco (new-feature)
- [nrf52] fix missing bootloader [#10519] by @tomaszduda23
- [wifi] Guard wifi error cases introduced in IDF5.2 by a version check [#10466] by @gnumpi
- [core] Fix timezone offset calculation [#10426] by @eyal0
- [core] Replace magic coroutine priority numbers with self-documenting CoroPriority enum [#10518] by @bdraco
- [esp32] Remove hardcoding of ulp [#10535] by @swoboda1337
- [core] Optimize fnv1_hash to avoid string allocations for static entities [#10529] by @bdraco
- [core] Use get_icon_ref() in entity platform logging to avoid string allocations [#10530] by @bdraco
- [sensor] Change state_class_to_string() to return const char* to avoid allocations [#10533] by @bdraco (breaking-change)
- [host] Fix memory allocation in preferences load() method [#10506] by @bdraco
- [core] Use get_device_class_ref() in entity platform logging to avoid string allocations [#10531] by @bdraco
- [core] Use get_unit_of_measurement_ref() in entity logging to avoid string allocations [#10532] by @bdraco
- [bluetooth_proxy] Change default for active connections to true [#10546] by @bdraco (breaking-change)
- [wifi] Check for esp32_hosted on no wifi variants [#10528] by @swoboda1337
- [wizard] extend the wizard dashboard API to allow upload and empty config options [#10203] by @maximmaxim345 (new-feature)
- [esp8266] Store GPIO initialization arrays in PROGMEM to save RAM [#10560] by @bdraco
- [esp8266] Reduce preference memory usage by 40% through field optimization [#10557] by @bdraco
- [i2c] Optimize memory usage with stack allocation for small buffers [#10565] by @bdraco
- [sps30] Tidy up, optimize [#10606] by @kbx81
- [sgp30] Tidy up, optimize [#10607] by @kbx81
- [sensirion_common] Tidy up, optimize [#10604] by @kbx81
- [esphome] ESP8266: Move OTA error strings to PROGMEM (saves 116 bytes RAM) [#10620] by @bdraco
- [logger] Use LogString for UART selection strings (saves 28 bytes RAM on ESP8266) [#10615] by @bdraco
- [sensor] ESP8266: Use LogString for state_class_to_string() to save RAM [#10617] by @bdraco
- [web_server] ESP8266: Store OTA response strings in PROGMEM (saves 52 bytes RAM) [#10616] by @bdraco
- [script] ESP8266: Store log format strings in PROGMEM (saves 240 bytes RAM) [#10614] by @bdraco
- [gpio] ESP8266: Store log strings in flash memory [#10610] by @bdraco
- [light] ESP8266: Store log strings in flash memory [#10611] by @bdraco
- [captive_portal] ESP8266: Move strings to PROGMEM (saves 192 bytes RAM) [#10600] by @bdraco
- [mdns] Move constant strings to flash on ESP8266 [#10599] by @bdraco
- [api] Store Noise protocol prologue in flash on ESP8266 [#10598] by @bdraco
- [esp8266][api] Store error strings in PROGMEM to reduce RAM usage [#10568] by @bdraco
- [sen5x] Various optimizing & tidying up [#10602] by @kbx81
- [esp8266] Store component warning strings in flash to reduce RAM usage [#10623] by @bdraco
- Atm90e32/26 device class fixes [#10629] by @davidmonro
- [core] Convert LOG_UPDATE_INTERVAL macro to function to reduce flash usage [#10636] by @bdraco
- [core] Skip redundant process_to_add() call when no scheduler items added [#10630] by @bdraco
- Fix DNS resolution inconsistency between logs and OTA operations [#10595] by @bdraco
- [core] Add memory pool to scheduler to reduce heap fragmentation [#10536] by @bdraco
- [esp8266][logger] Store LOG_LEVELS strings in PROGMEM to reduce RAM usage [#10569] by @bdraco
- [esphome] Store OTA component log strings in flash on ESP8266 [#10570] by @bdraco
- [gpio_expander] Add intelligent pin type selection to CachedGpioExpander template [#10577] by @bdraco
- [ota] Fix duplicate include and sort [#10643] by @jesserockz
- [pca6416a] Migrate to CachedGpioExpander to reduce I2C bus usage [#10587] by @bdraco
- [pca9554] Migrate to CachedGpioExpander to reduce I2C bus usage [#10571] by @bdraco
- [pcf8574] Migrate to CachedGpioExpander to reduce I2C bus usage [#10573] by @bdraco
- [sx1509] Migrate to CachedGpioExpander to reduce I2C bus usage [#10588] by @bdraco
- [mcp23016] Migrate to CachedGpioExpander to reduce I2C bus usage [#10581] by @bdraco
- [scheduler] Reduce SchedulerItem memory usage by 7.4% on 32-bit platforms [#10553] by @bdraco
- [mipi_rgb] Unified driver for MIPI RGB displays [#9892] by @clydebarrow (new-component) (new-feature) (new-platform)
- [api] Store plaintext error message in PROGMEM on ESP8266 [#10634] by @bdraco
- [core] Store component source strings in flash on ESP8266 (breaking change) [#10621] by @bdraco (breaking-change)
- [esp32] Reduce GPIO memory usage by 50% through bit-packing [#10556] by @bdraco
- [core] Fix serial upload regression from DNS resolution PR [#10595] [#10648] by @bdraco
- Add I2S Audio Port for ESP32-C5/C6/H2 [#10414] by @ximex
- [core] Reduce unnecessary nesting in scheduler loop [#10644] by @bdraco
- [adc] Fix autorange negative coefficient bug causing incorrect voltage readings [#10549] by @edwardtfn
- [nextion] Increase delay before reboot to prevent TFT upload interruption [#10402] by @edwardtfn
- Sort codeowners using case-insensitive [#10651] by @jesserockz
- [core] Reduce flash usage by refactoring looping component partitioning [#10652] by @bdraco
- [core] Refactor insertion sort functions to eliminate code duplication [#10653] by @bdraco
- RingBuffer: Make partial writing optional [#10302] by @gnumpi
- allow to implement show_logs as external component [#10523] by @tomaszduda23
- [nrf52] add more tests [#10591] by @tomaszduda23
- [ms5611] remove delay in setup [#10658] by @mrtoy-me
- [api] Add timezone support to GetTimeResponse for automatic timezone synchronization [#10661] by @bdraco (new-feature)
- Allow both files and directories to be passed to update-all [#10575] by @swoboda1337
- [thermostat] General clean-up, optimization, properly support "auto" mode [#10561] by @kbx81
- [bl0940] extend configuration options of bl0940 device [#8158] by @dan-s-github (new-feature) (new-platform)
- [inkplate] Rename component and fix grayscale [#10200] by @JosipKuci (breaking-change)
- [thermostat] Rename timer enums to mitigate naming conflict [#10666] by @kbx81
- Improve coverage for various core modules [#10663] by @bdraco
- Update webserver local assets to 20250910-110003 [#10668] by @esphomebot
- [adc] Fix
FILTER_SOURCE_FILES
location [#10673] by @jesserockz - Openthread Fix Factory Reset [#9281] by @rwrozelle
- [core] Add millisecond precision to logging timestamps [#10677] by @bdraco
- Add comprehensive tests for choose_upload_log_host to prevent regressions [#10679] by @bdraco
- Add some more coverage for dashboard web_server [#10682] by @bdraco
- [tests] Add upload_program and show_logs test coverage to prevent regressions [#10684] by @bdraco
- Add additional coverage for util and writer [#10683] by @bdraco
- Add additional dashboard and main tests [#10688] by @bdraco
- [core] fix upload to device via MQTT IP lookup (e.g. when mDNS is disable) [#10632] by @Links2004
- Add additional test coverage ahead of Path conversion [#10700] by @bdraco
- [ethernet] Fix permanent component failure from undocumented ESP_FAIL in IPv6 setup [#10708] by @bdraco
- [core] Optimize MAC address formatting to eliminate sprintf dependency [#10713] by @bdraco
- [api] Revert unneeded GetTime bidirectional support added in [#9790] [#10702] by @bdraco
- [api] Optimize HelloResponse server_info to reduce memory usage [#10701] by @bdraco
- [scheduler] Fix timing accumulation in scheduler causing incorrect execution measurements [#10719] by @bdraco
- ina2xx should be total increasing for energy sensor [#10711] by @mikelawrence
- [md5] Optimize MD5::get_hex() to eliminate sprintf dependency [#10710] by @bdraco
- [wifi] Optimize WiFi MAC formatting to eliminate sprintf dependency [#10715] by @bdraco
- [esp32_ble] Optimize BLE hex formatting to eliminate sprintf dependency [#10714] by @bdraco
- [select] Use const references to avoid unnecessary vector copies [#10741] by @bdraco
- [dashboard] Fix archive handler to properly delete build folders using correct path [#10724] by @bdraco
- [ethernet] Conditionally compile PHY-specific code to reduce flash usage [#10747] by @bdraco
- [mqtt] fix publish payload length when payload contains null characters [#10744] by @jokujossai
- [ade7880] fix channel a voltage registry [#10750] by @jokujossai
- [wizard] Fix KeyError when running wizard with empty OTA password [#10753] by @bdraco
- [core] Fix clean build files to properly clear PlatformIO cache [#10754] by @bdraco