Kevin Ahrendt
94f30d5950
[micro_wake_word] Use ESPMicroSpeechFeatures from Espressif registry (v1.2.3) ( #15879 )
2026-04-20 16:26:47 -04:00
Elvin Luff
6af341bb5b
[epaper_spi] Support SSD1683 and GDEY042T81 4.2 inch display ( #13910 )
2026-04-20 09:34:31 -04:00
Clyde Stubbs
82656cb0cf
[mipi_dsi] Add Seeed reTerminal d1001 display ( #15867 )
2026-04-20 09:28:52 -04:00
Rui Marinho
b72f5447c3
[modbus] Simplify payload size validation in modbus_helpers ( #15838 )
2026-04-20 09:24:07 -04:00
Clyde Stubbs
73b8e8ac09
[lvgl] Fix update of textarea attached to keyboard ( #15866 )
2026-04-20 09:15:51 -04:00
Clyde Stubbs
9459f0426d
[lvgl] Fix overloads for setting images on styles ( #15864 )
2026-04-20 09:14:15 -04:00
Clyde Stubbs
0dae41aa22
[lvgl] Fix format of hello world page ( #15868 )
2026-04-20 09:13:42 -04:00
7321e6e52f
[rtttl] allow any control parameters order and default value fallback ( #14438 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-20 09:10:05 -04:00
guillempages
f0c21520aa
[mipi_rgb] Add definitions for sunton displays ( #15858 )
2026-04-20 21:56:56 +10:00
J. Nick Koston
574bdc9a00
Merge remote-tracking branch 'origin/decouple_scheduler_loop_cadence' into integration
2026-04-20 12:06:28 +02:00
J. Nick Koston
78aabf257f
[core] wake_loop_threadsafe() forces a component-phase iteration
...
After the Phase A / Phase B split in this PR, an external producer that
called wake_loop_threadsafe() (MQTT RX, USB RX, BLE event, espnow,
camera, mWW, speakers, USB host/CDC, lwip socket, enable_loop_soon_any_context)
only got Phase A — the component phase stayed gated by loop_interval_,
so the producer's component loop() could be delayed by up to
loop_interval_ ms before draining its queued work. That breaks the
long-standing semantic of wake_loop_threadsafe().
Add a wake_request flag set by every wake_loop_* entry point and
exchange-cleared at the gate in Application::loop(). When the flag is
set, force Phase B regardless of loop_interval_.
Storage is conditional on the threading model:
- ESPHOME_THREAD_MULTI_ATOMICS: std::atomic<uint8_t> (uint8_t, not
bool, because GCC on Xtensa generates an indirect call for
atomic<bool> ops — same workaround as scheduler.h)
- ESPHOME_THREAD_SINGLE / ESPHOME_THREAD_MULTI_NO_ATOMICS: volatile
uint8_t (8-bit aligned loads/stores are atomic on every supported
MCU; the platform signal that follows wake_request_set provides the
cross-thread/cross-core memory barrier)
Helpers (wake_request_set / wake_request_take) are always_inline so
IRAM_ATTR call sites stay in IRAM. Set BEFORE the platform signal so the
consumer is guaranteed to see the flag on its next gate check.
Adds an integration test that raises loop_interval_ to 2s, snapshots a
counting component's loop count, spawns a std::thread that calls
App.wake_loop_threadsafe() after 50ms, and asserts the count increments
inside a 500ms observation window. Without the fix the count would not
move for ~2s.
2026-04-20 11:52:56 +02:00
J. Nick Koston
09aca12521
Merge branch 'dev' into decouple_scheduler_loop_cadence
2026-04-20 04:31:11 -05:00
Jesse Hills
b0c133201f
Merge branch 'release' into dev
2026-04-20 13:53:30 +12:00
Jesse Hills
572fb83015
Merge pull request #15859 from esphome/bump-2026.4.1
...
2026.4.1
2026.4.1
2026-04-20 13:52:45 +12:00
Clyde Stubbs
0d3db2b670
[lvgl] Fix angles for arc ( #15860 )
2026-04-20 12:08:35 +12:00
Clyde Stubbs
e5f6a734ba
[lvgl] Fix angles for arc ( #15860 )
2026-04-20 12:08:07 +12:00
J. Nick Koston
bab9cd3e7a
[runtime_stats] Track main loop active time and report overhead ( #15743 )
2026-04-20 11:20:39 +12:00
Jesse Hills
36812591eb
Bump version to 2026.4.1
2026-04-20 10:20:56 +12:00
1862c6115f
[packages] Improve error messages with include stack and fix missing path propagation ( #15844 )
...
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@home-assistant.io >
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-04-20 10:20:56 +12:00
J. Nick Koston
ef780886c3
[substitutions] Fix substitutions: !include file.yaml regression ( #15850 )
2026-04-20 10:20:56 +12:00
J. Nick Koston
602305b20d
[core] Default PollingComponent() to 1ms when codegen is bypassed ( #15831 )
2026-04-20 10:20:56 +12:00
dependabot[bot]
78701debec
Bump aioesphomeapi from 44.16.0 to 44.16.1 ( #15836 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-20 10:20:56 +12:00
J. Nick Koston
08ac61ae94
[core] Feed WDT unconditionally in main loop to fix empty-config panic ( #15830 )
2026-04-20 10:20:16 +12:00
Clyde Stubbs
6d5340f253
[lvgl] Fix crash with snow on rotated display ( #15822 )
2026-04-20 10:18:05 +12:00
Clyde Stubbs
e2dfef5ddc
[runtime_image] Fix RGB order ( #15813 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
1d88027618
[esp32] Downgrade unneeded ignore_pin_validation_error to a warning ( #15811 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
9841deec31
[core] Fix DelayAction compile error with non-const reference args ( #15814 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda and J. Nick Koston
ed5852c2d6
[ethernet] Fix SPI3_HOST default breaking compile on variants without SPI3 ( #15809 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-20 10:18:05 +12:00
J. Nick Koston
b26601a3dc
[core] coerce set_interval(0) / update_interval: 0ms to 1ms ( #15799 )
2026-04-20 10:18:05 +12:00
Clyde Stubbs
f5806818cd
[image] Fix byte order handling ( #15800 )
2026-04-20 10:18:05 +12:00
Clyde Stubbs
c3e739eba9
[mipi_spi] Drawing fixes for native display ( #15802 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
b167b64f06
[lvgl] Guard lv_image_set_src wrapper with LV_USE_IMAGE ( #15789 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
722cfae04c
[esp32] Accept unquoted minimum_chip_revision values ( #15785 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
9cb2b562b9
[ili9xxx] Guard against null buffer in display_() when allocation fails ( #15786 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
81fb6712fe
[bundle] Force-resolve nested IncludeFile during file discovery ( #15762 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
227dfa3730
[qmc5883l] Move per-update log line from DEBUG to VERBOSE ( #15781 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
aa80bdbbc6
[time] Fix RTC is_valid() rejecting valid times after day_of_year cleanup ( #15763 )
2026-04-20 10:18:05 +12:00
J. Nick Koston
914ed10bcc
[core] Diagnose missing cg.templatable in codegen for TEMPLATABLE_VALUE fields ( #15758 )
2026-04-20 10:18:05 +12:00
Boris Krivonog
92c99a7d41
[mitsubishi_cn105] use HEAT_COOL mode to enable temperature slider ( #15748 )
2026-04-20 10:18:05 +12:00
Clyde Stubbs
af1aaba547
[lvgl] Clean the build if lv_conf.h changes ( #15777 )
2026-04-20 10:18:05 +12:00
dependabot[bot]
5a2b7546f6
Bump aioesphomeapi from 44.15.0 to 44.16.0 ( #15757 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
4047d5af5f
[sx126x][sx127x] Fix frequency precision loss from float32 codegen ( #15753 )
2026-04-20 10:18:05 +12:00
Jonathan Swoboda
6857e1ceb4
[st7789v] Fix swapped offset_width/offset_height in model presets ( #15755 )
2026-04-20 10:18:04 +12:00
J. Nick Koston and Copilot
4479212008
[core] Inline feed_wdt hot path with out-of-line slow path ( #15656 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-20 10:18:04 +12:00
J. Nick Koston
cb90ac45c3
[core] Fix app_state_ status bits clobbered for non-looping components ( #15658 )
2026-04-20 10:18:04 +12:00
J. Nick Koston
1847666e75
[core] Default PollingComponent() to not run when codegen is bypassed ( #15832 )
2026-04-19 17:05:27 -05:00
aad1318b4a
[packages] Improve error messages with include stack and fix missing path propagation ( #15844 )
...
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@home-assistant.io >
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-04-19 21:09:14 +00:00
J. Nick Koston
7a23a339e9
[substitutions] Fix substitutions: !include file.yaml regression ( #15850 )
2026-04-20 09:00:31 +12:00
J. Nick Koston
0d43973380
Merge remote-tracking branch 'upstream/fix/substitutions-include-15848' into integration
2026-04-19 02:52:38 -05:00
J. Nick Koston
78853260a5
[substitutions] Lock in shape check and document single-shot resolve
...
- Add unit tests asserting cv.Invalid when `substitutions: !include list.yaml`
resolves to a non-mapping, covering both do_substitution_pass and
do_packages_pass.
- Note in resolve_substitutions_block that the resolve is single-shot and
chained top-level includes are not supported (matches _walk_packages for
`packages: !include`).
2026-04-19 02:50:20 -05:00