Commit Graph
26319 Commits
Author SHA1 Message Date
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 Firmoandpre-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 GucaandRene 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 Handpre-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 KostonandCopilot 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 StubbsandJesse 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