J. Nick Koston
d507feaf81
[core] Scheduler::next_schedule_in: also handle single-threaded defer path
...
On ESPHOME_THREAD_SINGLE builds (ESP8266, RP2040), defer() does not
route through defer_queue_ — set_timer_common_ treats it as an ordinary
0-delay set_timeout that stages in to_add_ (scheduler.cpp:197). Since
next_schedule_in only inspects items_[0], any defer posted from a
component's loop() sits in to_add_ invisible to the sleep calculation
until the next scheduler.call() runs process_to_add().
The symmetric fix checks to_add_empty_() on single-threaded and
short-circuits sleep the same way. This also costs one "skipped sleep"
for any non-zero-delay timer added at runtime, but the next tick
produces a correct next_schedule_in reading and the cost is a single
yield — negligible vs. the stall this closes.
Suggested by Copilot review on #15968 .
2026-04-24 03:37:11 -05:00
J. Nick Koston
da5c31cb27
[core] Scheduler::next_schedule_in: return 0 when defer queue is non-empty
...
On multi-thread platforms (ESP32/LibreTiny/host), defer() items go
directly into a separate defer_queue_ instead of the main items_ heap
(scheduler.cpp:200). next_schedule_in previously only looked at
items_[0], so a pending defer posted from a background task was
invisible to the loop's sleep-duration calculation: if items_[0] fired
seconds away, the main loop would sleep that long on ulTaskNotifyTake
while the defer sat unexecuted.
In practice this rarely bit anyone because concurrent socket activity
usually woke the loop via the lwip fast-select path, but a defer with
no accompanying network traffic could stall for seconds.
Check defer_empty_() (cheap atomic/volatile load, scheduler.h:594)
before the items_ check and return 0 if pending. process_defer_queue_
runs at the top of every scheduler.call(), so "defer pending" == "run
immediately."
Single-threaded platforms funnel defers into to_add_ like any other
timeout, so the fix is gated on !ESPHOME_THREAD_SINGLE.
2026-04-24 03:26:21 -05:00
J. Nick Koston
eceb534895
[deep_sleep] Fix sleep_duration codegen type to uint32_t ( #15965 )
2026-04-24 07:19:59 +00:00
tomaszduda23 and Copilot
404620b99c
[deep_sleep][logger][zephyr][zigbee] add deep sleep support with zigbee wakeup ( #13950 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-23 22:31:46 -04:00
3ccaa771a7
[sendspin] Add a group media player controller (PR3) ( #15948 )
...
Co-authored-by: Copilot <copilot@github.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-04-24 01:46:25 +00:00
Kevin Ahrendt and Copilot
b4a86e46b2
[sendspin] Add controller role and sendspin.switch action (PR2) ( #15929 )
...
Co-authored-by: Copilot <copilot@github.com >
2026-04-23 20:22:47 -05:00
Kevin Ahrendt and Copilot
ddf1426f86
[sendspin] Add initial Sendspin hub component (PR1) ( #15924 )
...
Co-authored-by: Copilot <copilot@github.com >
2026-04-23 22:09:36 +00:00
J. Nick Koston
90d7bfe02e
[ci] Auto-close PRs opened from a fork's default branch ( #15957 )
2026-04-23 16:36:32 -05:00
Kevin Ahrendt and Copilot
d759f1a567
[audio_http] Add a media source for playing audio from HTTP URLs ( #15741 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-23 15:53:52 -05:00
f757cd1210
[zigbee][core] Add support for Zigbee binary sensors on ESP32 H2 and C6 ( #11553 )
...
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 >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-23 12:46:56 -04:00
Paulus Schoutsen
9b45b046a8
[core] Allow finding all devices as target that match mac suffix ( #13135 )
2026-04-23 08:43:32 -05:00
J. Nick Koston
70ae614abd
[api] Fall back to plaintext for logger connections ( #15938 )
2026-04-23 08:23:38 -05:00
J. Nick Koston
8f9b91eece
[wifi] Avoid BDK 3.0.78 wifi_event_sta_disconnected_t collision on BK72xx ( #15942 )
2026-04-23 08:22:17 -05:00
J. Nick Koston
3ca86fc3fc
[core] Raise WDT_FEED_INTERVAL_MS to 2000ms on BK72xx ( #15943 )
2026-04-23 08:21:46 -05:00
J. Nick Koston
b38db617a2
[core] Clean up stale includes and inline yield_with_select_ in application ( #15945 )
2026-04-23 08:21:05 -05:00
J. Nick Koston
13fe881f70
[scheduler][core] Lock-free fast-path on ESPHOME_THREAD_MULTI_NO_ATOMICS via __atomic builtins ( #15947 )
2026-04-23 08:20:31 -05:00
J. Nick Koston
50c181671c
[ci] Better explain too-big bot review message ( #15939 )
2026-04-23 06:47:16 -05:00
PolarGoose
43a371caab
[dsmr] Small refactoring: Move Aes128GcmDecryptorImpl type inside esphome::dsmr namespace. ( #15940 )
2026-04-23 04:08:49 -05:00
dependabot[bot]
64290d32a1
Bump aioesphomeapi from 44.20.0 to 44.21.0 ( #15941 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-23 03:32:12 -05:00
J. Nick Koston
9685d4eb0b
[core] feed_wdt wraps feed_wdt_with_time ( #15932 )
2026-04-23 01:15:44 -05:00
Keith Burzinski
4c2efd4165
[radio_frequency] Add experimental radio_frequency entity type (base component + API) ( #15556 )
2026-04-23 01:15:25 -05:00
J. Nick Koston
6f00ea1457
[core] Move host socket-select wake mechanism into wake.h/wake.cpp ( #15931 )
2026-04-23 15:53:10 +12:00
Jonathan Swoboda
a881121110
[ota] Make set_auth_password() lambda-callable via empty-password opt-in ( #15928 )
2026-04-22 23:06:31 -04:00
dependabot[bot]
f8167c9a70
Bump aioesphomeapi from 44.19.0 to 44.20.0 ( #15936 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-23 02:40:19 +00:00
Jesse Hills
e1d629f0d2
[time] Handle Windows EINVAL when validating POSIX TZ strings ( #15934 )
2026-04-23 14:35:13 +12:00
Clyde Stubbs
224cc7b419
[lvgl] Triggers on tabview tabs fix ( #15935 )
2026-04-23 14:35:00 +12:00
Jesse Hills
4d4347d33a
Merge branch 'release' into dev
2026-04-23 14:10:54 +12:00
Jesse Hills
6ca5b31fab
Merge pull request #15933 from esphome/bump-2026.4.2
...
2026.4.2
2026.4.2
2026-04-23 14:10:10 +12:00
dependabot[bot]
17f9269841
Update wheel requirement from <0.47,>=0.43 to >=0.43,<0.48 ( #15926 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 19:12:15 -05:00
dependabot[bot]
6253947311
Bump click from 8.3.2 to 8.3.3 ( #15927 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 19:12:02 -05:00
Jesse Hills
00b71208a6
Bump version to 2026.4.2
2026-04-23 11:18:39 +12:00
Keith Burzinski
76eb8f697f
[usb_uart] Derive TX output chunk count from buffer_size config ( #15909 )
2026-04-23 11:18:39 +12:00
Jonathan Swoboda
2a3bd8bc85
[io_expanders] Self-heal interrupt-driven expanders when INT stays asserted across the read ( #15923 )
2026-04-23 11:18:39 +12:00
Keith Burzinski
629da4d878
[esp32] Add Secure Boot V1 ECDSA signing scheme for pre-rev-3.0 ESP32 ( #15882 )
2026-04-23 11:18:39 +12:00
Jonathan Swoboda
5c2ceb63e0
[ld2412] Fix null deref in set_basic_config when entities unconfigured ( #15893 )
2026-04-23 11:18:39 +12:00
Jonathan Swoboda
92cb6dd7fd
[core] Fix Pvariable placement new losing subclass identity ( #15881 )
2026-04-23 11:18:39 +12:00
Jonathan Swoboda
06e5931ad7
[image] Fix rodata bloat for multi-frame RGB565+alpha animations ( #15873 )
2026-04-23 11:18:39 +12:00
Clyde Stubbs
dc5b06285d
[lvgl] Fix update of textarea attached to keyboard ( #15866 )
2026-04-23 11:18:38 +12:00
Clyde Stubbs
3d0a2421a6
[lvgl] Fix overloads for setting images on styles ( #15864 )
2026-04-23 11:18:38 +12:00
Clyde Stubbs
22f6791dea
[lvgl] Fix format of hello world page ( #15868 )
2026-04-23 11:18:38 +12:00
Keith Burzinski
70b1d9a087
[api_protobuf] Support compound ifdef conditions in proto generator ( #15930 )
2026-04-22 17:57:15 -05:00
Keith Burzinski
36720c8495
[usb_uart] Derive TX output chunk count from buffer_size config ( #15909 )
2026-04-23 09:16:14 +12:00
Jonathan Swoboda
c48ab2ef92
[io_expanders] Self-heal interrupt-driven expanders when INT stays asserted across the read ( #15923 )
2026-04-23 09:05:15 +12:00
Keith Burzinski
162ee2ecaf
[i2s_audio] Split speaker into base class and standard subclass ( #15404 )
2026-04-22 14:40:18 -05:00
Asela Fernando and Jonathan Swoboda
a73bac0b5f
[ac_dimmer] Zero-crossing interrupt type ( #15862 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-22 14:57:53 -04:00
Rishab Mehta and Jonathan Swoboda
4e84611ae7
[internal_temperature] Fix internal Temperature discrepancy on BK7231T ( #15771 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-22 17:50:59 +00:00
PolarGoose
ea2e36e55a
[dsmr] Improve performance. Add missing sensors. Remove Crypto-no-arduino. ( #15875 )
2026-04-22 13:49:14 -04:00
fcbc4d64fe
[one_wire] Reset bus before SKIP ROM command ( #14669 )
...
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>
2026-04-22 13:20:02 -04:00
Timothy and Jonathan Swoboda
dcd103cec0
[cse7761] bidirectional active power ( #15162 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-22 13:11:18 -04:00
Ludovic BOUÉ and Jonathan Swoboda
5e715692d6
[network] Reorder IPv6 configuration for network components ( #11694 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-22 17:01:20 +00:00