J. Nick Koston
b46ccb5ae0
[web_server_idf] Move NOLINTNEXTLINE adjacent to onConnect declaration
2026-04-24 03:16:42 -05:00
J. Nick Koston
3507d567cc
[web_server_idf] Preserve on_connect_ ordering and document main-loop context
...
Pre-refactor, on_connect_ ran after the ctor had already sent the
initial ping/config/sorting_groups. Call start_session_main_loop_()
before on_connect_ so the callback still observes a primed session.
Also document at onConnect() that the callback now runs on the main
loop instead of the httpd task.
2026-04-24 03:10:17 -05:00
J. Nick Koston
121b4d6916
[web_server_idf] Move session adoption to out-of-line cold path
...
Keep the hot path in AsyncEventSource::loop() to the atomic load,
branch, and dead-session cleanup. On a real connect, call a
noinline+cold helper (adopt_pending_sessions_main_loop_) to swap the
pending list out, drop any already-disconnected sessions, and invoke
on_connect_ / start_session_main_loop_ on the rest.
2026-04-24 03:08:01 -05:00
J. Nick Koston
c7a67ac41d
[web_server_idf] Rename prime_() to start_session_main_loop_()
2026-04-24 03:04:50 -05:00
J. Nick Koston
1df529cbca
[web_server_idf] Drop padding comment
2026-04-24 03:01:48 -05:00
J. Nick Koston
9b28edd23e
[web_server_idf] De-dupe destructor delete loops
2026-04-24 03:00:29 -05:00
J. Nick Koston
44b4a20abe
[web_server_idf] Hold pending_mutex_ for both deletes in destructor
2026-04-24 03:00:04 -05:00
J. Nick Koston
b1390f1679
[web_server_idf] Drop pre-disconnected sessions before on_connect_
...
If fd_ is already 0 when the main loop adopts an incoming session, the
client closed before we got here. Delete the session immediately instead
of pushing it into sessions_ and firing on_connect_ on a dead socket.
2026-04-24 02:59:03 -05:00
J. Nick Koston
82081fc567
[web_server_idf] Trim comments
2026-04-24 02:58:45 -05:00
J. Nick Koston
5fab869286
[web_server_idf] Move has_pending_sessions_ to end to tighten layout
...
Keep the single-byte std::atomic<bool> as the last member of
AsyncEventSource so it consumes what would otherwise be trailing
padding instead of introducing 3 bytes of interior padding between
pending_mutex_ and on_connect_.
2026-04-24 02:57:21 -05:00
J. Nick Koston
f4a055f342
[web_server_idf] Defer SSE session adoption/priming to the main loop
...
AsyncEventSource::handleRequest() runs on the ESP-IDF httpd task. Prior to
this change it mutated sessions_, event_buffer_, deferred_queue_, and
entities_iterator_ directly: appending the new response to sessions_,
sending the initial ping/config/sorting_groups through try_send_nodefer()
(which writes event_buffer_), and calling entities_iterator_.begin().
The main loop reads/writes the same fields from WebServer::loop() on the
main task, so every new SSE connect raced with any in-flight loop tick.
The httpd path now only performs the HTTP-level setup that requires the
live httpd_req_t (headers, initial chunk, sess_ctx/free_ctx, fd_, send
override) and parks the response on pending_sessions_ under a mutex.
The main loop checks a std::atomic<bool> fast-path gate per tick; when
set it swaps the pending list out under the lock and then — outside the
lock — pushes into sessions_, invokes on_connect_, and calls prime_()
which performs the initial sends and starts entities_iterator_.
sessions_, event_buffer_, deferred_queue_, and entities_iterator_ are
now mutated exclusively from the main loop. fd_ remains the only
cross-thread signal (std::atomic<int> cleared by destroy() on the
httpd/tcpip task).
2026-04-24 02:55:23 -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] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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