J. Nick Koston
deb63ea092
[esphome.ota] Compress OTA uploads with deflate on platforms without gzip support
...
ESP32, RP2040, LibreTiny and host could not receive a compressed image;
only the ESP8266 can, because its bootloader inflates a gzip file at reboot.
This inflates a raw deflate stream on the fly through a 4 KB ring window that
also serves as the output buffer, so the device never holds the whole image.
The CLI offers a new client feature bit; a device whose backend has no gzip
support and has the inflater compiled answers with a new server bit once the
session memory is in hand, then the CLI sends a 4 KB window deflate stream and
the MD5 of the inflated image. On allocation failure the device declines the
bit and the upload stays uncompressed. Old CLIs and old devices never set the
bits, so both directions stay compatible; the ESP8266 keeps its gzip path and
the CLI prefers gzip when a device offers both.
The decoder is uzlib's tinflate.c (zlib licence) trimmed to raw deflate.
2026-09-08 09:59:04 +02:00
Jesse Hills
d58b37faa1
[esp32_hosted] Add ESP-NOW-over-hosted shim for the ESP32-P4 ( #17712 )
2026-09-07 10:29:20 +12:00
Bonne Eggleston
afb0022dd0
[core] Lint: require braces around single ESP_LOG control-statement bodies ( #18727 )
2026-09-01 11:53:39 +12:00
J. Nick Koston
e53870085b
[improv_serial] Add uart bus support and host integration test ( #18794 )
2026-08-26 21:13:47 -05:00
J. Nick Koston
d47acf5d0b
[core] Read the mqtt IP discovery flag without importing the mqtt component ( #18066 )
2026-08-04 15:12:57 -05:00
J. Nick Koston
4424af8c5b
[api] Move runtime log client out of the component package ( #18043 )
2026-08-03 19:57:52 -05:00
dependabot[bot] and Jonathan Swoboda
345bd11a2c
Bump ruff from 0.15.22 to 0.16.0 ( #17818 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-07-27 12:08:51 -04:00
Jesse Hills and Jonathan Swoboda
cdd334284e
[rp2] Rename rp2040 platform to rp2 ( #17145 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-07-07 08:20:24 +12:00
Chris Boot and Claude Opus 4.8
8ab19c0242
[esp32] Add RTC-backed preferences (honor in_flash flag) ( #17073 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-05 11:48:30 +10:00
Clyde Stubbs and Copilot Autofix powered by AI
5f311d281e
[esphome] Warn when a YAML merge (<<:) drops a key ( #17246 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-06-29 07:17:01 +10:00
Jesse Hills
d0e3e98d55
[dashboard] Remove legacy web dashboard ( #17124 )
2026-06-22 09:33:27 +12:00
Jonathan Swoboda
7cb6cf2f2a
[ci] Replace clang-tidy hash with direct config-file diff check ( #17019 )
2026-06-17 21:12:39 -04:00
Jonathan Swoboda
171ded35a5
[core] Remove cv.only_with_esp_idf and CORE.using_esp_idf ( #16681 )
2026-05-26 18:47:16 -04:00
J. Nick Koston
ae74920b81
[core] Enable ruff PTH (flake8-use-pathlib) lint family ( #16661 )
2026-05-26 05:14:42 +00:00
J. Nick Koston
ae814cff5c
[core] Enable ruff B (flake8-bugbear) lint family ( #16655 )
2026-05-26 02:28:14 +00:00
J. Nick Koston
b39b34bfe1
[core] Enable ruff C4 (flake8-comprehensions) lint family ( #16653 )
2026-05-25 20:14:26 -05:00
Jonathan Swoboda
e7ab78366d
[core] Add esphome.build_flags option for IDF + PlatformIO ( #16629 )
2026-05-25 10:03:38 -04:00
Jesse Hills
cb2dbcd70d
[ci] Add validate.*.yaml for config-only component tests ( #16384 )
2026-05-13 11:37:33 +12:00
e9cc10fedc
[core] Native idf full support ( #14678 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: Jonathan Swoboda <swoboda1337@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-05-11 02:12:07 +00:00
Jonathan Swoboda and Jonathan Swoboda
29db5fa4bb
[script] Make pre-commit and helpers work on Windows ( #16260 )
...
Co-authored-by: Jonathan Swoboda <swoboda1337@users.noreply.github.com >
2026-05-06 07:11:06 -05:00
Jesse Hills and Claude Opus 4.7
876c8c4c2a
[ci-custom] Lint imports of esphome.components.const outside components ( #16068 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-28 05:59:02 -05:00
J. Nick Koston
df987a7ffb
[ci-custom] Suggest uint32_to_str/int8_to_str for integer formatting ( #15970 )
2026-04-26 07:22:34 -05:00
J. Nick Koston
0d3a3552da
[core] Move heap-allocating helpers to alloc_helpers.h/cpp ( #15623 )
2026-04-21 04:39:49 +02:00
J. Nick Koston
e7194dce75
[core] Deduplicate entity type boilerplate with X-macro pattern ( #15618 )
2026-04-15 17:45:01 -10:00
J. Nick Koston
c7513b9262
[ci] Add lint check for test package key matching bus directory ( #15547 )
2026-04-07 16:01:18 -10:00
Jonathan Swoboda
b6abfec82e
[core] Fix area/device hash collision validation not running ( #15259 )
2026-03-27 22:22:24 -04:00
Jonathan Swoboda
3cd50f0495
[ci] Block new CONF_ constants from being added to esphome/const.py ( #15145 )
2026-03-24 09:31:08 -10:00
Daniel Kent
4c1363b104
[spi] Add LOG_SPI_DEVICE macro ( #15118 )
2026-03-23 15:07:40 -04:00
J. Nick Koston
4b0c711f77
[ci] Ban std::bind in new C++ code ( #14969 )
2026-03-23 08:23:35 -10:00
Clyde Stubbs
f3ca86b670
[ci-custom] Directions on constant hoisting ( #14637 )
2026-03-08 23:48:03 -04:00
5c5ea8824e
[audio_file] New component for embedding files into firmware ( #14434 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-05 09:51:08 -10:00
J. Nick Koston
78602ccacb
[ci] Add lint check to prevent powf in core and base entity platforms ( #14126 )
2026-03-03 07:03:50 -10:00
J. Nick Koston
b7cb65ec49
[ci] Fix TypeError in ci-custom.py when POST lint checks fail ( #14378 )
2026-02-28 14:23:20 -10:00
Jonathan Swoboda and Claude Opus 4.6
fb6c7d81d5
[core] Fix multiline log continuations without leading whitespace ( #14217 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 05:08:40 +00:00
J. Nick Koston
9571a979eb
[ci] Suggest StringRef instead of std::string_view ( #14183 )
2026-02-21 13:53:45 -06:00
J. Nick Koston
b5a8e1c94c
[ci] Update lint message to recommend constexpr over static const ( #14099 )
2026-02-19 09:06:46 -06:00
J. Nick Koston
e4ea016d1e
[ci] Block new std::to_string() usage, suggest snprintf alternatives ( #13369 )
2026-02-09 12:26:19 -06:00
J. Nick Koston
f4e410f47f
[ci] Block new scanf() usage to prevent ~9.8KB flash bloat ( #13657 )
2026-02-06 02:56:43 +13:00
J. Nick Koston
a7fbecb25c
[ci] Soft-deprecate str_sprintf/str_snprintf to prevent hidden heap allocations ( #13227 )
2026-01-26 17:28:07 -10:00
J. Nick Koston
fc16ad806a
[ci] Block sprintf/vsprintf usage, suggest snprintf alternatives ( #13305 )
2026-01-20 17:53:36 -10:00
J. Nick Koston
ea0fac96cb
[core][mqtt] Add str_sanitize_to(), soft-deprecate str_sanitize() ( #13233 )
2026-01-18 18:42:04 -10:00
J. Nick Koston
3f892711c7
[core][opentherm] Add format_bin_to(), soft-deprecate format_bin() ( #13232 )
2026-01-17 11:09:42 -10:00
J. Nick Koston
6c043be4d3
[ci] Add format_hex_pretty to heap-allocating helper lint check ( #13178 )
2026-01-12 20:55:23 -10:00
J. Nick Koston
889886909b
[core] Soft deprecate heap-allocating string helpers to prevent fragmentation patterns ( #13156 )
2026-01-12 12:48:54 -10:00
J. Nick Koston
5b9be7c169
[ci] Add lint check to prevent usage of deprecated CORE.using_esp_idf ( #13029 )
2026-01-06 17:54:04 -10:00
94bedd83be
async_tcp: Add AsyncClient for ESP-IDF and host ( #12337 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick+github@koston.org >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-05 23:37:38 +00:00
J. Nick Koston
00fd4f2fdd
[esp8266] Exclude unused waveform code to save ~596 bytes RAM ( #12690 )
2026-01-02 19:51:07 -10:00
Clyde Stubbs
3c7d6b7fc6
[ci-custom] Fix after switch from string to path ( #12314 )
2025-12-06 07:49:23 -06:00
Jonathan Swoboda
9c7cb30ae5
[esp32_hosted] Initial OTA implementation ( #11562 )
2025-11-03 14:08:50 -06:00
Stuart Parmenter
fedfda6c29
[core] Fix regression from #10654 ( #11248 )
2025-10-15 16:57:47 +13:00