J. Nick Koston
6d1fa9fa72
[uart] Remove redundant mutex, fix rx_event_task race, optimize event queue
...
Remove the FreeRTOS mutex (lock_) that wrapped all ESP-IDF UART driver
calls. A codebase audit confirmed all UART wrapper methods (read_array,
write_array, peek_byte, available, flush) are called exclusively from
the cooperative main loop. The lock was protecting single-threaded code
from itself and added 4 unnecessary semaphore operations per read_array
call on the hot path.
Fix a race condition in rx_event_task_func where uart_flush_input() was
called from a separate FreeRTOS task without taking the lock, racing
with read_array() on the main loop. This could destroy ring buffer data
mid-read, causing data loss. The flush was also unnecessary since the
ESP-IDF driver self-heals the buffer-full condition: uart_read_bytes()
internally calls uart_check_buf_full() which moves stashed FIFO bytes
back into the ring buffer and re-enables RX interrupts.
Move the event queue allocation behind USE_UART_WAKE_LOOP_ON_RX. When
the feature is disabled, uart_driver_install is called with queue_size=0
and uart_queue=NULL (the documented API for skipping the event queue).
This saves ~320 bytes of RAM per UART instance and reduces ISR overhead
since the driver skips xQueueSendFromISR when no queue exists.
Add thread safety documentation to the class and rx_event_task.
2026-02-12 08:19:42 -06:00
J. Nick Koston
e12ed08487
[wifi] Add CompactString to reduce WiFi scan heap fragmentation ( #13472 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-11 21:24:24 +00:00
tomaszduda23
374cbf4452
[nrf52,zigbee] count sleep time of zigbee thread ( #13933 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-11 21:21:10 +00:00
dependabot[bot]
7287a43f2a
Bump docker/build-push-action from 6.18.0 to 6.19.1 in /.github/actions/build-image ( #13937 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-11 15:12:05 -06:00
J. Nick Koston
483b7693e1
[api] Fix debug asserts in production code, encode_bool bug, and reduce flash overhead ( #13936 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-11 13:57:08 -06:00
J. Nick Koston
c9c125aa8d
[socket] Devirtualize Socket::ready() and implement working ready() for LWIP raw TCP ( #13913 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-02-11 17:54:58 +00:00
schrob
8d62a6a88a
[openthread] Fix warning on old C89 implicit field zero init ( #13935 )
2026-02-11 11:54:31 -06:00
J. Nick Koston
0ec02d4886
[preferences] Replace per-element erase with clear() in sync() ( #13934 )
2026-02-11 11:41:53 -06:00
Nate Clark
1411868a0b
[mqtt.cover] Add option to publish states as JSON payload ( #12639 )
...
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-11 11:40:27 -06:00
J. Nick Koston
069c90ec4a
[api] Split process_batch_ to reduce stack on single-message hot path ( #13907 )
2026-02-11 11:34:43 -06:00
J. Nick Koston
930a186168
[web_server_idf] Use constant-time comparison for Basic Auth ( #13868 )
2026-02-11 11:03:27 -06:00
Djordje Mandic
b1f0db9da8
[bl0942] Update reference values ( #12867 )
2026-02-11 11:10:32 -05:00
J. Nick Koston
923445eb5d
[light] Eliminate redundant clamp in LightCall::validate_() ( #13923 )
2026-02-11 10:06:44 -06:00
tomaszduda23
9bdae5183c
[nrf52,logger] add support for task_log_buffer_size ( #13862 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-02-11 15:43:55 +00:00
J. Nick Koston
37f97c9043
[esp8266][rp2040] Eliminate heap fallback in preference save/load ( #13928 )
2026-02-11 08:41:15 -06:00
J. Nick Koston
8e785a2216
[web_server] Remove unnecessary packed attribute from DeferredEvent ( #13932 )
2026-02-11 08:40:41 -06:00
schrob
4fb1ddf212
[api] Fix compiler format warnings ( #13931 )
2026-02-11 08:40:21 -06:00
J. Nick Koston
38bba3f5a2
[scheduler] Reduce set_timer_common_ hot path size by 25% ( #13899 )
2026-02-11 16:42:13 +13:00
J. Nick Koston
225c13326a
[core] Extract dump_config from Application::loop() hot path ( #13900 )
2026-02-11 16:41:07 +13:00
J. Nick Koston
5281fd3273
[api] Extract cold code from APIConnection::loop() hot path ( #13901 )
2026-02-11 16:30:34 +13:00
J. Nick Koston
e3bafc1b45
[esp32_ble] Extract state transitions from ESP32BLE::loop() hot path ( #13903 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-11 16:29:29 +13:00
Thomas Rupprecht
42bc0994f1
[rtttl] Code Improvements ( #13653 )
...
Co-authored-by: Keith Burzinski <kbx81x@gmail.com >
2026-02-10 22:10:29 -05:00
J. Nick Koston
58659e4893
[mdns] Throttle MDNS.update() polling on ESP8266 and RP2040 ( #13917 )
2026-02-10 18:48:13 -06:00
Jonathan Swoboda
b4707344d3
[esp32] Upgrade uv to 0.10.1 and increase HTTP retries ( #13918 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 00:44:12 +00:00
Jonathan Swoboda
548b7e5dab
[esp32] Fix ESP32-P4 test: replace stale esp_hosted component ref ( #13920 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 00:04:12 +00:00
Jesse Hills
b9c2be8228
Merge branch 'release' into dev
2026-02-11 11:13:33 +13:00
Jesse Hills
fb2f0ce62f
Merge pull request #13915 from esphome/bump-2026.1.5
...
2026.1.5
2026.1.5
2026-02-11 11:13:08 +13:00
J. Nick Koston
d152438335
[libretiny] Update LibreTiny to v1.12.1 ( #13851 )
2026-02-10 20:07:09 +00:00
J. Nick Koston
868a2151e3
[web_server_idf] Reduce heap allocations by using stack buffers ( #13549 )
2026-02-10 13:56:12 -06:00
J. Nick Koston
c65d3a0072
[mqtt] Add zero-allocation topic getters to MQTT_COMPONENT_CUSTOM_TOPIC macro ( #13811 )
2026-02-10 13:55:16 -06:00
J. Nick Koston
e2fad9a6c9
[sprinkler] Convert state and request origin strings to PROGMEM_STRING_TABLE ( #13806 )
2026-02-10 13:55:01 -06:00
J. Nick Koston
5365faa877
[debug] Move ESP8266 switch tables to flash with PROGMEM_STRING_TABLE ( #13813 )
2026-02-10 13:54:48 -06:00
J. Nick Koston
86feb4e27a
[rtttl] Convert state_to_string to PROGMEM_STRING_TABLE ( #13807 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-10 13:54:37 -06:00
J. Nick Koston
2a6d9d6325
[mqtt] Avoid heap allocation in on_log by using const char* publish overload ( #13809 )
2026-02-10 13:54:22 -06:00
J. Nick Koston
727bb27611
[bmp3xx_base/bmp581_base] Convert oversampling and IIR filter strings to PROGMEM_STRING_TABLE ( #13808 )
2026-02-10 13:54:07 -06:00
J. Nick Koston
c03abcdb86
[http_request] Reduce heap allocations in update check by parsing JSON directly from buffer ( #13588 )
2026-02-10 13:53:53 -06:00
Jesse Hills
a99f75ca71
Bump version to 2026.1.5
2026-02-11 08:45:06 +13:00
Sean Kelly
4168e8c30d
[aqi] Fix AQI calculation for specific pm2.5 or pm10 readings ( #13770 )
2026-02-11 08:45:06 +13:00
J. Nick Koston
1a6c67f92e
[ssd1306_base] Move switch tables to PROGMEM with lookup tables ( #13814 )
2026-02-10 13:45:03 -06:00
Jonathan Swoboda
1f761902b6
[esp32] Set UV_CACHE_DIR inside data dir so Clean All clears it ( #13888 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 07:48:20 +13:00
Clyde Stubbs
0b047c334d
[lvgl] Fix crash with unconfigured top_layer ( #13846 )
2026-02-11 07:24:32 +13:00
tomaszduda23
a5dc4b0fce
[nrf52,logger] fix printk ( #13874 )
2026-02-11 07:24:32 +13:00
J. Nick Koston
c1455ccc29
[dashboard] Close WebSocket after process exit to prevent zombie connections ( #13834 )
2026-02-11 07:24:32 +13:00
Jonathan Swoboda
438a0c4289
[ota] Fix CLI upload option shown when only http_request platform configured ( #13784 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-11 07:24:32 +13:00
Jonathan Swoboda
9eee4c9924
[core] Add capacity check to register_component_ ( #13778 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-11 07:24:32 +13:00
Jas Strong
eea7e9edff
[rd03d] Revert incorrect field order swap ( #13769 )
...
Co-authored-by: jas <jas@asspa.in >
2026-02-11 07:24:32 +13:00
J. Nick Koston
2585779f11
[api] Remove duplicate peername storage to save RAM ( #13540 )
2026-02-11 07:23:16 +13:00
Jonathan Swoboda
b8ec3aab1d
[ci] Pin ESP-IDF version for Arduino framework builds ( #13909 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-10 12:16:25 -05:00
Jonathan Swoboda
c4b109eebd
[esp32_rmt_led_strip, remote_receiver, pulse_counter] Replace hardcoded clock frequencies with runtime queries ( #13908 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-10 17:09:56 +00:00
Jonathan Swoboda
03b41855f5
[esp32_hosted] Bump esp_wifi_remote and esp_hosted versions ( #13911 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-10 16:03:26 +00:00