Commit Graph
25206 Commits
Author SHA1 Message Date
J. Nick Koston f8af05bbea Merge remote-tracking branch 'upstream/dev' into integration 2026-03-18 23:22:56 -10:00
Javier Peletier 0a3393bed3 [core] Disable LeakSanitizer in C++ unit tests (#14712) 2026-03-18 23:13:36 -10:00
Javier PeletierandJ. Nick Koston c2c50ceea7 [substitutions] substitutions pass and !include redesign (package refactor part 2a) (#14917)
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-03-18 23:10:01 -10:00
Clyde Stubbspre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>Jonathan Swoboda
2341d510d3 [lvgl] Migrate to library v9.5.0 (#12312)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-03-19 20:31:33 +13:00
Kevin AhrendtandCopilot Autofix powered by AI 9d6f2f71e8 [speaker_source] Reshuffle playlist on repeat all restart (#14773)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-18 19:51:17 -10:00
e1334cf57f [mqtt] Support JSON payload with code for alarm control panel commands (#14731)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-03-19 05:40:48 +00:00
J. Nick Koston f4db76d7e4 Merge remote-tracking branch 'upstream/callback-drop-captures' into integration 2026-03-18 19:36:06 -10:00
J. Nick Koston f757e7e7d4 Merge remote-tracking branch 'upstream/add-enc28j60-ethernet' into integration 2026-03-18 19:35:59 -10:00
J. Nick Koston 0f6eac0d57 Merge branch 'dev' into callback-drop-captures 2026-03-18 18:43:45 -10:00
J. Nick Koston a1aff7cadf [preferences] Devirtualize preference backend and manager classes (#14825) 2026-03-18 18:42:05 -10:00
J. Nick Koston 2271ac6470 [api] Extract overflow buffer from frame helper into APIOverflowBuffer (#14871) 2026-03-18 18:41:45 -10:00
J. Nick Koston 8fe36cde23 [core] Replace std::function with lightweight Callback in CallbackManager (#14853) 2026-03-18 18:41:05 -10:00
Jesse Hills fdd5956c1e Merge branch 'release' into dev 2026-03-19 17:34:17 +13:00
Jesse Hills 609003c897 Merge pull request #14941 from esphome/bump-2026.3.0
2026.3.0
2026.3.0
2026-03-19 17:33:27 +13:00
J. Nick Koston 3c1431c322 [ethernet] Address additional review feedback
- Remove dead ENC28J60 entry from _IDF6_ETHERNET_COMPONENTS
- Simplify get_duplex_mode() — both chips are full-duplex on RP2040
- Add #error guard for unsupported RP2040 SPI Ethernet type
2026-03-18 17:40:13 -10:00
J. Nick Koston e90839e0b8 [ethernet] Address additional review feedback
- Remove dead ENC28J60 entry from _IDF6_ETHERNET_COMPONENTS
- Simplify get_duplex_mode() — both chips are full-duplex on RP2040
- Add #error guard for unsupported RP2040 SPI Ethernet type
2026-03-18 17:39:50 -10:00
J. Nick Koston f83a2768b6 Merge remote-tracking branch 'upstream/add-enc28j60-ethernet' into integration 2026-03-18 17:32:38 -10:00
J. Nick Koston 82348af414 [ethernet] Address review feedback
- Remove redundant ENC28J60lwIP.h include (already included via header)
- Fix misleading duplex mode comment for ENC28J60
2026-03-18 17:31:38 -10:00
J. Nick Koston c752c023a4 [ethernet] Add ENC28J60 SPI Ethernet support for ESP32 and RP2040 2026-03-18 17:14:43 -10:00
J. Nick Koston a771431126 Merge branch 'inline-calculate-looping-components' into integration 2026-03-18 16:27:41 -10:00
J. Nick Koston bd91d4831e Merge remote-tracking branch 'upstream/preferences-compile-out-loop' into integration 2026-03-18 16:27:36 -10:00
J. Nick Koston da2f86bfab fix 2026-03-18 16:27:21 -10:00
J. Nick Koston 196586bd29 [core] Inline calculate_looping_components_ into header
Move calculate_looping_components_() from application.cpp to
application.h as an inline method. This function has only one
caller (setup()) and is small enough for the compiler to inline,
saving ~20 bytes of flash by eliminating the function call overhead.
2026-03-18 16:25:20 -10:00
J. Nick Koston b08f730aeb Merge remote-tracking branch 'upstream/preferences-compile-out-loop' into integration 2026-03-18 16:10:35 -10:00
J. Nick Koston 0594e22e3a [preferences] Compile out loop() when flash_write_interval is non-zero
The write_interval == 0 case (sync every loop) is only used on host
or for testing. For the vast majority of real devices using the default
60s interval, loop() and the runtime branch are unnecessary overhead.

Use a compile-time define to separate the two modes so that:
- Normal case: no loop() override, no write_interval_ member, just set_interval
- Zero interval case: loop() syncs every iteration, no interval needed
2026-03-18 16:08:24 -10:00
J. Nick Koston 99042463d0 Merge remote-tracking branch 'upstream/inline-get-use-address' into integration 2026-03-18 15:51:18 -10:00
J. Nick Koston 0f9158d37b [network] Inline get_use_address() to eliminate function call overhead
Move get_use_address()/set_use_address() definitions to headers for
wifi, ethernet, and openthread components so the compiler can inline
them. Also inline network::get_use_address() in the header, matching
the existing pattern used by network::is_connected().

This allows the compiler to collapse the two-level indirection
(network::get_use_address -> component->get_use_address -> field load)
into a single pointer dereference at each call site.

Saves 24 bytes of flash on ESP32-S3.
2026-03-18 15:50:38 -10:00
Jonathan SwobodaandClaude Opus 4.6 403ba262c6 [openthread] Guard InstanceLock against uninitialized semaphore (#14940)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 21:23:47 -04:00
J. Nick Koston 5ffe824fff Merge remote-tracking branch 'upstream/dev' into integration 2026-03-18 14:13:41 -10:00
Jonathan SwobodaandClaude Opus 4.6 f8be27ce6d [ble_client] Fix RSSI sensor reporting same value for all clients (#14939)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 20:10:42 -04:00
Jesse Hills 2c10adba85 Bump version to 2026.3.0 2026-03-19 13:09:03 +13:00
J. Nick Koston a50d70c8d3 [core] Remove call_loop_ wrapper and call loop() directly (#14931) 2026-03-18 14:08:03 -10:00
J. Nick KostonandCopilot Autofix powered by AI 4d86049c21 [ota] Pack deferred state args into uint32 to avoid heap allocation (#14922)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-18 14:06:55 -10:00
J. Nick Koston 44037c4f9b [http_request] Prevent double update task launch (#14910) 2026-03-18 14:06:41 -10:00
J. Nick Koston 3ecda92278 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-18 14:06:13 -10:00
J. Nick Koston 5856d05701 [core] Devirtualize PollingComponent::set_update_interval (#14938) 2026-03-18 14:05:57 -10:00
J. Nick Koston 9ee124b088 Merge remote-tracking branch 'swoboda1337/fix-ble-rssi-multi-client' into integration 2026-03-18 13:21:28 -10:00
Jonathan SwobodaandClaude Opus 4.6 eebf27e239 [ble_client] Fix RSSI sensor reporting same value for all clients
When multiple ble_client RSSI sensors were configured, they all reported
the same RSSI value because the GAP event handler did not filter by
remote device address. Add an address check so each sensor only processes
RSSI events matching its parent client's device.

Fixes https://github.com/esphome/esphome/issues/14898

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 19:09:03 -04:00
J. Nick Koston 2a74d10388 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-18 13:02:18 -10:00
J. Nick Koston a2a048e3bf [ld2412] Inline trivial gate threshold number setters (#14937) 2026-03-18 13:02:07 -10:00
J. Nick Koston dd131fab04 Merge branch 'devirtualize-set-update-interval' into integration 2026-03-18 12:56:08 -10:00
J. Nick Koston 6c0dd9947c [sds011] Pop update_interval before register_component
The sds011 component handles update_interval via its own
set_update_interval_min method. Pop it from config before
register_component to prevent generating a set_update_interval
call on the Component base class.
2026-03-18 12:53:26 -10:00
J. Nick Koston 352e887d77 Merge remote-tracking branch 'upstream/devirtualize-set-update-interval' into integration 2026-03-18 12:50:21 -10:00
J. Nick Koston 2ab54174e9 [core] Devirtualize PollingComponent::set_update_interval
Remove the virtual keyword from set_update_interval and inline the
trivial setter in the header. No component in the tree actually
overrides this on PollingComponent — the only apparent override was
in sds011 which extends Component (not PollingComponent), so it was
just a name-hiding no-op that is also removed here.

This allows the compiler to inline the setter at all 8 call sites
generated by register_component, eliminating function call overhead
and removing a vtable entry.
2026-03-18 12:49:42 -10:00
J. Nick Koston 1be3e07679 Merge branch 'ld2412-inline-setters' into integration 2026-03-18 12:45:29 -10:00
J. Nick Koston dd44e92cb8 [ld2412] Inline trivial gate threshold number setters
Move set_gate_move_threshold_number and set_gate_still_threshold_number
definitions into the header. These are single-line array assignments
called 14 times each (once per gate), and inlining them eliminates
function call overhead, saving ~52 bytes of flash.
2026-03-18 12:45:01 -10:00
J. Nick Koston 1f2cbc3b34 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-18 12:39:05 -10:00
Kevin Ahrendt 9f4c773963 [media_source] Add request helpers for smart sources (#14936) 2026-03-18 12:34:16 -10:00
Kevin Ahrendt ef0eef8117 [const] Move shared volume constants to components/const (#14935) 2026-03-18 21:57:33 +00:00
Jonathan Swoboda 097e6eb41f [i2s_audio] Remove legacy I2S driver support (#14932) 2026-03-18 11:42:56 -10:00