Commit Graph
22873 Commits
Author SHA1 Message Date
J. Nick Koston 4c70f2001a Merge branch 'fix_logger_loop_disable' into integration 2026-02-20 13:21:08 -06:00
J. Nick Koston 4a4fd8b92c [logger] Fix loop disable optimization using wrong preprocessor guard
The logger loop disable optimization was guarded by USE_LOGGER_USB_CDC,
which is a platform capability flag defined whenever the platform
supports USB CDC. This meant the optimization was disabled on all
ESP32-S2, S3, C3, C5, C6, C61, H2, and P4 variants regardless of
whether USB CDC was actually selected as the hardware UART.

Changed all guards to use USE_LOGGER_UART_SELECTION_USB_CDC which is
only defined when USB CDC is the selected hardware UART. Also changed
the guard logic from || to && so the loop only stays permanently active
when both Zephyr AND USB CDC is selected (the only case that needs
cdc_loop_() to poll port readiness).

Additionally set USE_LOGGER_UART_SELECTION_USB_CDC in the Zephyr
codepath when USB CDC is selected, and updated defines.h for static
analysis coverage.
2026-02-20 13:18:07 -06:00
J. Nick Koston fbc818221e Merge branch 'web_server_64_bit_time' into integration 2026-02-20 11:41:51 -06:00
9c0eed8a67 [e131] Remove dead LWIP TCP code path from loop() (#14155)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
2026-02-20 17:03:39 +00:00
Jonathan Swoboda 887375ebef Merge branch 'release' into dev 2026-02-20 11:24:25 -05:00
Jonathan Swoboda 49356f4132 Merge pull request #14151 from esphome/bump-2026.2.1
2026.2.1
2026.2.1
2026-02-20 11:24:11 -05:00
Jonathan SwobodaandClaude Opus 4.6 403235e2d4 [wifi] Add band_mode configuration for ESP32-C5 dual-band WiFi (#14148)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 11:20:29 -05:00
Jonathan SwobodaandClaude Opus 4.6 9ce01fc369 [esp32] Add engineering_sample option for ESP32-P4 (#14139)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 11:20:05 -05:00
J. Nick Koston b0a35559b3 [esp32] Bump ESP-IDF to 5.5.3.1, revert GATTS workaround (#14147) 2026-02-20 10:19:01 -06:00
Jonathan Swoboda 8aaf0b8d85 Bump version to 2026.2.1 2026-02-20 10:17:12 -05:00
Jonathan SwobodaandClaude Opus 4.6 28d510191c [ld2410/ld2450] Replace header sync with buffer size increase for frame resync (#14138)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:12 -05:00
Jonathan SwobodaandClaude Opus 4.6 4c8e0575f9 [ld2420] Increase MAX_LINE_LENGTH to allow footer-based resync (#14137)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:12 -05:00
Jonathan SwobodaandClaude Opus 4.6 49afe53a2c [ld2410] Add frame header synchronization to readline_() (#14136)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:12 -05:00
Jonathan SwobodaClaude Opus 4.6pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
d19c1b689a [ld2450] Add frame header synchronization to fix initialization regression (#14135)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-02-20 10:17:12 -05:00
Jonathan SwobodaandClaude Opus 4.6 e7e1acc0a2 [pulse_counter] Fix PCNT glitch filter calculation off by 1000x (#14132)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:12 -05:00
J. Nick Koston 7bdeb32a8a [uart] Always call pin setup for UART0 default pins on ESP-IDF (#14130) 2026-02-20 10:17:12 -05:00
Jonathan SwobodaandClaude Opus 4.6 f412ab4f8b [wifi] Sync output_power with PHY max TX power to prevent brownout (#14118)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:12 -05:00
Jonathan SwobodaandClaude Opus 4.6 0fc09462ff [safe_mode] Log brownout as reset reason on OTA rollback (#14113)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:12 -05:00
J. Nick KostonandClaude Opus 4.6 d78496321e [esp32_ble] Enable CONFIG_BT_RELEASE_IRAM on ESP32-C2 (#14109)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:12 -05:00
Jonathan SwobodaandClaude Opus 4.6 ac76fc4409 [pulse_counter] Fix build failure when use_pcnt is false (#14111)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:12 -05:00
Jonathan SwobodaandClaude Opus 4.6 a343ff1989 [ethernet] Improve clk_mode deprecation warning with actionable YAML (#14104)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:12 -05:00
Jonathan SwobodaandClaude Opus 4.6 2d2178c90a [socket] Fix IPv6 compilation error on host platform (#14101)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:17:11 -05:00
J. Nick Koston 25b14f9953 [e131] Fix E1.31 on ESP8266 and RP2040 by restoring WiFiUDP support (#14086) 2026-02-20 10:17:11 -05:00
J. Nick Koston 2491b4f85c [ld2420] Use constexpr for compile-time constants (#14079) 2026-02-20 10:17:11 -05:00
J. Nick Koston cb8b14e64b [web_server] Fix water_heater JSON key names and move traits to DETAIL_ALL (#14064) 2026-02-20 10:17:11 -05:00
J. Nick Koston 887172d663 [pulse_counter] Fix compilation on ESP32-C6/C5/H2/P4 (#14070) 2026-02-20 10:17:11 -05:00
J. Nick Koston e4aa23abaa [web_server] Double socket allocation to prevent connection exhaustion (#14067) 2026-02-20 10:17:11 -05:00
J. Nick Koston 8c0cc3a2d8 [udp] Register socket consumption for CONFIG_LWIP_MAX_SOCKETS (#14068) 2026-02-20 10:17:11 -05:00
Rodrigo Martín efe8a6c8eb [esp32_ble_server] fix infinitely large characteristic value (#14011) 2026-02-20 10:17:11 -05:00
J. Nick Koston 0f5de6c62f Merge branch 'bump_espidf_5531' into integration 2026-02-20 08:52:22 -06:00
J. Nick Koston 12d4c45a50 Merge branch 'warn_outdated_api_client' into integration 2026-02-20 08:52:18 -06:00
J. Nick Koston e0072a4b71 reduce 2026-02-20 08:37:12 -06:00
J. Nick Koston 8452c7ab40 [esp32] Bump ESP-IDF to 5.5.3.1, revert GATTS workaround
Bump the pioarduino ESP-IDF framework from v5.5.3 to v5.5.3.1 which
fixes the gatt_main.c compile error when GATTS is disabled. This allows
reverting the workaround that unconditionally enabled CONFIG_BT_GATTS_ENABLE.

Also update _format_framework_espidf_version to support dot-separated
sub-release versions (e.g., 5.5.3.1) in both the tag and asset filename.
2026-02-20 08:08:56 -06:00
J. Nick Koston 77132b2228 [api] Warn when clients connect with outdated API version
Log a warning when a client connects with an API version older than
1.14. This alerts users that their client needs updating before the
backward-compatibility code for pre-1.14 clients is removed in 2026.7.0.
2026-02-20 00:33:53 -06:00
J. Nick Koston 21d0589c5e Merge remote-tracking branch 'origin/integration' into integration 2026-02-20 00:15:52 -06:00
J. Nick Koston 607fcb4254 Merge branch 'base64_decode_dedup' into integration
# Conflicts:
#	esphome/core/helpers.cpp
2026-02-20 00:15:32 -06:00
J. Nick KostonandClaude Opus 4.6 fbc2d6c066 [core] Also deduplicate base64_encode 3-to-4 byte conversion
Same pattern as the decode side - the bit manipulation was
duplicated in the main loop and tail path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:12:10 -06:00
J. Nick KostonandClaude Opus 4.6 f291773d5c [core] Remove unnecessary input contract comment
base64_find_char() safely handles any input including 0,
returning 0 via strchr fallback - no special contract needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:10:14 -06:00
J. Nick KostonandClaude Opus 4.6 cdc40101d4 [core] Document base64_decode_quad_ input requirements
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:08:58 -06:00
J. Nick KostonandClaude Opus 4.6 af4d4b35ae [core] Also deduplicate base64 output copy loop
Fold the output copy loop into base64_decode_quad_ since both
call sites use the same truncation-checked copy logic, differing
only in count (3 vs i-1).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:08:09 -06:00
J. Nick KostonandClaude Opus 4.6 4b53f6ef2b [core] Extract base64_decode_quad_ to deduplicate base64 decode logic
The base64 character-to-byte conversion and output copy loop were
duplicated in both the main decode loop and the tail/padding path.
Extract into a shared static helper to reduce flash usage (-64 bytes
on ESP32) and eliminate duplicated logic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:07:20 -06:00
J. Nick Koston 9229e3c102 Merge branch 'base64_decode_dedup' into integration 2026-02-20 00:03:15 -06:00
J. Nick KostonandClaude Opus 4.6 9a028f37ba [core] Extract base64_decode_quad_ to deduplicate base64 decode logic
The base64 character-to-byte conversion was duplicated in both the
main decode loop and the tail/padding path. Extract into a shared
static helper to reduce flash usage (-64 bytes on ESP32).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:02:27 -06:00
J. Nick Koston 7a14f30710 Merge branch 'scheduler_relaxed_atomics_under_lock' into integration 2026-02-19 23:44:05 -06:00
J. Nick Koston 7568b64a4a Fix remaining direct atomic reads under lock
Replace two more direct item->remove accesses (implicit seq_cst) with
is_item_removed_locked_() in call() and cleanup_(), both under lock.
2026-02-19 23:31:43 -06:00
J. Nick Koston 25b979bbed [scheduler] Use relaxed memory ordering for atomic reads under lock
When the scheduler lock is already held, atomic loads of the remove
flag don't need acquire ordering — the mutex provides all necessary
synchronization guarantees. Add is_item_removed_locked_() helper that
uses memory_order_relaxed and use it in all _locked_ call sites.

This eliminates redundant memw barriers on Xtensa, saving 12 bytes
in matches_item_locked_ (152 → 140 B) and reducing pipeline stalls
in the scheduler hot path.
2026-02-19 23:10:39 -06:00
J. Nick Koston badf09164e [web_server] Reuse scheduler millis_64 for uptime instead of std::chrono
Replace the std::chrono::steady_clock approach with the scheduler's
existing millis_64() rollover tracking. This avoids pulling in
gettimeofday_r, system_clock, and the ArduinoJson int64_t serializer
template, saving ~270 bytes of flash and 8 bytes of RAM on ESP8266.

Send uptime as uint32_t seconds (good for ~136 years) instead of
int64_t milliseconds.
2026-02-19 22:47:05 -06:00
J. Nick Koston d4765bb21d Merge remote-tracking branch 'upstream/dev' into integration 2026-02-19 22:34:05 -06:00
J. Nick Koston 9d0eb63fb4 Merge remote-tracking branch 'upstream/dev' into web_server_64_bit_time
# Conflicts:
#	esphome/components/web_server/web_server.cpp
2026-02-19 22:30:37 -06:00
Jonathan SwobodaandClaude Opus 4.6 efe54e3b5e [ld2410/ld2450] Replace header sync with buffer size increase for frame resync (#14138)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 23:25:25 -05:00