Commit Graph
23587 Commits
Author SHA1 Message Date
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
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
J. Nick Koston f4e412d1d6 Merge remote-tracking branch 'swoboda1337/fix/ld24xx-buffer-size' into integration 2026-02-19 22:02:34 -06:00
Jonathan SwobodaandClaude Opus 4.6 dbe3dfb265 [ld2410/ld2450] Replace header sync with buffer size increase for frame resync
Reverts the frame header synchronization added in #14135 and #14136
in favor of a simpler fix: increasing MAX_LINE_LENGTH so that the
existing footer-based resynchronization can recover after losing sync.

Both components already check for frame footers at every byte position,
which naturally resyncs the parser. The problem was that the buffers
were sized exactly to fit the largest frame, so a desynced parser's
footer could land at the overflow boundary and get discarded. Increasing
the buffer by 4 bytes (footer size) ensures the footer always lands
inside the buffer.

- ld2450: 41 -> 45 (zone query response = 40 bytes + 1 null + 4 footer)
- ld2410: 46 -> 50 (engineering data frame = 45 bytes + 1 null + 4 footer)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 22:47:58 -05:00
Jonathan SwobodaandClaude Opus 4.6 5af871acce [ld2420] Increase MAX_LINE_LENGTH to allow footer-based resync (#14137)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 22:36:12 -05:00