J. Nick Koston
08ed0840ca
Merge branch 'runtime-stats-inline-recording' into integration
2026-03-31 23:21:07 -10:00
J. Nick Koston
0daa0fb29d
Fix clang-tidy: remove trailing underscore from static methods
2026-03-31 23:17:18 -10:00
J. Nick Koston
695b41763a
Add WarnIfComponentBlockingGuard as friend for runtime_stats_ access
2026-03-31 23:12:42 -10:00
J. Nick Koston
0b59acb922
Fix access: use friend + static comparators for protected member access
2026-03-31 23:11:33 -10:00
J. Nick Koston
b63dc719e5
Fix protected access: move ComponentRuntimeStats before Component class
2026-03-31 23:08:23 -10:00
J. Nick Koston
bd4bc24bcc
Merge branch 'dev' into runtime-stats-inline-recording
2026-03-31 23:00:30 -10:00
J. Nick Koston
d1ef6bf604
[runtime_stats] Store stats inline on Component to eliminate std::map lookup
...
The runtime_stats component used a std::map<Component*, ComponentRuntimeStats>
to record per-component timing data. Every loop iteration for every component
required a red-black tree lookup to record its time, adding ~2-3µs of
measurement overhead per component — often exceeding the actual work done
by lightweight components like OTA idle checks.
Move RuntimeStats struct directly onto Component (behind #ifdef USE_RUNTIME_STATS)
so recording is a direct member access with zero lookup cost. The
RuntimeStatsCollector now iterates App.components_ to collect stats instead of
maintaining its own map, eliminating ~2KB of red-black tree code.
2026-03-31 22:58:18 -10:00
Edward Firmo and pre-commit-ci-lite[bot]
fbfb5d401f
[nextion] Fix memory leak in reset_() ( #15344 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-31 22:34:29 -10:00
J. Nick Koston
24f916ba67
merge
2026-03-31 20:15:57 -10:00
J. Nick Koston
6f4f852d8e
Merge remote-tracking branch 'upstream/dev' into integration
2026-03-31 20:15:36 -10:00
Rene Guca and Rene
212b3e1688
[cover] move time_based_cover to its own subdirectory ( #15313 )
...
Co-authored-by: Rene <rene@guca.at >
2026-03-31 21:59:24 -04:00
Kevin Ahrendt
31a70ab299
[resampler] Future-proof resampler task to avoid potential memory leaks ( #15186 )
2026-03-31 21:44:54 -04:00
Christian H and pre-commit-ci-lite[bot]
8f2cf8b8a7
[bmp581_base] Add support for BMP585 ( #15277 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-31 21:39:41 -04:00
954227b203
[esp32_ble_tracker] Restart BLE scan after OTA failure ( #15308 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-03-31 23:26:26 +00:00
Kevin Ahrendt
4a23ba7d8a
[mixer] Fix memory leak in mixer task on stop/start cycles ( #15185 )
2026-04-01 12:06:48 +13:00
Edward Firmo
b71c406e70
[uart] fix baud rate not applied on load_settings() for ESP32 (IDF) ( #15341 )
2026-04-01 12:04:07 +13:00
Jesse Hills
15bcd62f22
[internal_temperature] Move code into platform specific files ( #15339 )
2026-04-01 11:59:53 +13:00
J. Nick Koston
23dcc5389d
[time] Fix strftime %Z and %z returning wrong timezone ( #15330 )
2026-04-01 11:59:45 +13:00
Jonathan Swoboda
9dca7e0daf
[tormatic] Fix UART stream desync on ESP32 ( #15337 )
2026-03-31 18:01:33 -04:00
J. Nick Koston
9b564a76f8
Merge branch 'fix-ble-scan-restart-after-ota-failure' into integration
2026-03-31 11:12:29 -10:00
J. Nick Koston
0acdbfd007
de-nest
2026-03-31 11:12:11 -10:00
J. Nick Koston and Copilot
217808b0fc
Update esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-31 11:09:34 -10:00
J. Nick Koston
4746b95722
Merge remote-tracking branch 'upstream/fix-strftime-tz-designation' into integration
...
# Conflicts:
# esphome/components/time/posix_tz.cpp
# esphome/components/time/posix_tz.h
2026-03-31 11:08:48 -10:00
Clyde Stubbs and Jesse Hills
66b6d36a26
[lvgl] Fixes #3 ( #15304 )
...
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-04-01 10:04:10 +13:00
Jonathan Swoboda
2064eef273
[esp32_hosted] Guard against empty firmware URL in perform() ( #15338 )
2026-03-31 10:53:12 -10:00
dependabot[bot]
64e836f9c8
Bump CodSpeedHQ/action from 4.12.1 to 4.13.0 ( #15340 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 10:49:17 -10:00
2cb987095d
[modbus] Share helper functions across modbus components - part B ( #14172 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-31 10:48:16 -10:00
Clyde Stubbs
da6c4e20fe
[lvgl] Fixes #2 ( #15161 )
2026-04-01 09:29:57 +13:00
Keith Burzinski
26b426bbff
[zwave_proxy] Clear Home ID on USB modem disconnect ( #15327 )
2026-03-31 14:34:16 -05:00
J. Nick Koston
2449aa75af
[http_request] Fix crash when esp_http_client_init fails ( #15328 )
2026-03-31 07:45:23 -10:00
J. Nick Koston
2c9a3051d6
[api] Use memcpy for fixed32 decode on little-endian platforms ( #15292 )
2026-03-31 07:43:18 -10:00
J. Nick Koston
9b97e95cf3
[binary_sensor] Add on_multi_click integration test ( #15329 )
2026-03-31 07:42:12 -10:00
J. Nick Koston
c64bc24960
[preferences] Reduce log verbosity for unchanged NVS/FDB writes ( #15332 )
2026-03-31 07:34:54 -10:00
Jonathan Swoboda
ceb3cb2ae7
[haier] Fix hOn half-degree temperature setting ( #15312 )
2026-03-31 15:22:29 +00:00
J. Nick Koston
4f7cb2407c
Merge remote-tracking branch 'origin/fix-preferences-log-spam' into integration
2026-03-30 22:40:38 -10:00
J. Nick Koston
7396b1163e
Keep failed writes at ESP_LOGE level
2026-03-30 22:40:29 -10:00
J. Nick Koston
6bad85d3e2
Merge remote-tracking branch 'origin/fix-preferences-log-spam' into integration
2026-03-30 22:39:11 -10:00
J. Nick Koston
49ea0f2578
[preferences] Reduce log verbosity for unchanged NVS/FDB writes
2026-03-30 22:38:18 -10:00
J. Nick Koston
5d93713404
[time] Guard against format string ending with bare %
2026-03-30 22:15:34 -10:00
J. Nick Koston
d0d8f2935d
[time] Handle %%Z/%%z correctly in strftime format substitution
2026-03-30 21:45:34 -10:00
J. Nick Koston
38e3095e35
[time] Fix strftime %Z and %z returning GMT/+0000 instead of actual timezone
...
Since the timezone bloat elimination (#13635 ) removed setenv("TZ")/tzset()
on embedded platforms, libc's ::strftime no longer has access to timezone
state for %Z and %z format specifiers. The time values (hour, minute, etc.)
are correct since they come from our custom timezone parser via struct tm
fields, but %Z and %z read from libc's internal _tzname/_timezone which
are stuck at GMT/+0000.
Fix by substituting %Z and %z in the format string with the correct
"+HHMM"/"-HHMM" designation computed from our parsed timezone offset
before passing to ::strftime. The substitution only runs when %Z or %z
are present in the format string, so there is no overhead for the common
case.
Also refactors strftime_to() to delegate to strftime() instead of
duplicating the ::strftime call, ensuring both code paths get the fix.
2026-03-30 21:26:23 -10:00
J. Nick Koston
a3913b98ba
[wifi] Move LibreTiny WiFi STA state to member variable ( #15305 )
2026-03-30 17:05:48 -10:00
Guillermo Ruffino
ef65e47bc5
[schema] generator fixes ( #15276 )
2026-03-31 13:08:50 +13:00
Jonathan Swoboda
53b2a03c80
[multiple] Fix -Wformat and -Wextra warnings across 33 component files ( #15321 )
2026-03-30 18:56:05 -04:00
dependabot[bot]
58df755d8b
Bump requests from 2.33.0 to 2.33.1 ( #15324 )
2026-03-30 12:27:30 -10:00
Ardumine
c5eb0eb984
[internal_temperature] Add nRF52 Zephyr support ( #15297 )
2026-03-31 10:50:11 +13:00
Clyde Stubbs
f25fa71235
[lvgl] Fix align_to directives ( #15311 )
2026-03-31 07:25:15 +11:00
J. Nick Koston
8561a8c495
[core] Suppress component source overflow warnings in testing mode ( #15320 )
2026-03-30 08:48:04 -10:00
J. Nick Koston
38fdd86384
Revert "[core] Expand component source index to 9 bits (511 max)"
...
This reverts commit fcfcb4ed72 .
2026-03-30 08:42:23 -10:00
J. Nick Koston
9ac9814955
Merge remote-tracking branch 'upstream/component-source-9bit' into integration
2026-03-30 08:36:35 -10:00