Commit Graph
25796 Commits
Author SHA1 Message Date
J. Nick Koston ba8a86ca39 Merge remote-tracking branch 'origin/wrap-vfprintf-idf6' into integration 2026-03-25 13:26:07 -10:00
J. Nick Koston bb55ddb148 Merge remote-tracking branch 'origin/controller-registry-direct-dispatch' into integration 2026-03-25 13:26:03 -10:00
J. Nick Koston 791249f692 [core] Remove indirection from ControllerRegistry dispatch
Replace the shared noinline notify() dispatch loop with direct
virtual calls in each notify method. This eliminates two levels
of indirection (noinline function call + function pointer) from
every entity state publish while adding only ~20 bytes of flash
per entity type for the duplicated loop.
2026-03-25 13:07:01 -10:00
J. Nick Koston 802dcdabca Refactor __wrap_fprintf to delegate to __wrap_vfprintf 2026-03-25 12:44:59 -10:00
J. Nick Koston 4a842f8e83 [esp32] Wrap vfprintf to fix printf stub on picolibc (IDF 6)
IDF 6 uses picolibc instead of newlib. In newlib, vfprintf was a thin
36-byte trampoline to _vfprintf_r, so wrapping printf/vprintf/fprintf
was sufficient to dead-code eliminate _vfprintf_r. In picolibc, vfprintf
IS the heavy implementation (~2.8 KB) and is referenced directly by SDK
components. Add vfprintf to the wrap list to intercept those references.
2026-03-25 12:44:27 -10:00
Jonathan Swoboda a075f63b59 [uart] Fix debug callback missing peeked byte and reading past end (#15169) 2026-03-25 16:50:37 -04:00
J. Nick Koston ec60da893f [core] Move state logging to client-side formatting, console to VERBOSE (#15155) 2026-03-25 19:45:06 +00:00
dependabot[bot] d8fbce365a Bump requests from 2.32.5 to 2.33.0 (#15170)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-25 09:38:20 -10:00
J. Nick Koston c72aeb91c5 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-25 08:47:35 -10:00
Jonathan Swoboda f6c5767a83 [inkplate] Use atomic GPIO write to prevent ISR race (#15166) 2026-03-25 14:10:28 -04:00
Jonathan Swoboda 19615f2eae [bme68x_bsec2] Fix uninitialized bme68x_conf in measurement duration calculation (#15168) 2026-03-25 14:10:04 -04:00
Jonathan Swoboda c42c6745b9 [mcp9600] Fix setup success check using OR instead of AND (#15165) 2026-03-25 08:06:48 -10:00
65d0a91fcc [nextion] Add defined keys to defines.h (#14971)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-25 18:01:52 +00:00
J. Nick Koston a22d47c719 [api] Add --no-states flag to esphome logs command (#15160) 2026-03-25 07:36:53 -10:00
J. Nick Koston 010516aef2 [benchmark] Add sensor publish_state benchmarks (#15034) 2026-03-25 07:33:17 -10:00
Jonathan Swoboda a15389318f [audio] Bump esp-audio-libs to 2.0.4 (#15164) 2026-03-25 11:57:33 -04:00
Edward Firmo 5d67868ac6 [nextion] Fix inline doc parameter types for page and touch callbacks (#14972) 2026-03-25 10:39:46 -04:00
Clyde StubbsandCopilot e0d8000007 [ai] Add instructions regarding constructor parameters (#15091)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-25 10:34:34 -04:00
b66ff374a2 [esp32] Fix GPIO strapping pins and add USB-JTAG warnings (#15105)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-03-25 14:26:33 +00:00
Brandon der Blätter 6c981e83db [hub75] Add SCAN_1_8_32PX_FULL wiring option (#15130) 2026-03-25 09:52:50 -04:00
Clyde StubbsandCopilot 2355fcb44e [lvgl] Update function and type names (#15109)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-25 09:51:51 -04:00
f5bbff0b05 [core] Add CONF_LIBRETINY constant to const.py (#15141)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-03-25 07:40:39 -04:00
Clyde Stubbs c45c9da771 [lvgl] Various 9.5 fixes (#15157) 2026-03-25 20:51:23 +11:00
J. Nick Koston 5b2d65b5c8 Merge branch 'state-log-no-states' into integration 2026-03-24 23:06:52 -10:00
J. Nick Koston 9befe1b299 [api] Add --no-states flag to esphome logs command
Pass subscribe_states through to aioesphomeapi's log runner so users
can suppress synthetic [S] state change lines in log output.
2026-03-24 23:00:06 -10:00
dependabot[bot] 7a40759567 Bump aioesphomeapi from 44.7.0 to 44.8.0 (#15159)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-25 08:55:12 +00:00
J. Nick Koston ff02bf8099 Merge branch 'state-publish-logv' into integration 2026-03-24 22:26:09 -10:00
J. Nick Koston 5b8a1623b0 [core] Move entity state publish and setting logs to VERBOSE level
Benchmarking in #15034 showed that esp_log_printf and vsnprintf_chk
dominate sensor publish time (95%+ of internal_send_state_to_frontend).
At the default DEBUG log level, every state change generates log output
that overwhelms the log output making it hard to actually debug and
wastes significant CPU time on string formatting.

Move all entity state publish (>>) and setting logs from ESP_LOGD to
ESP_LOGV across all base entity types: sensor, binary_sensor, switch,
number, text_sensor, select, text, event, lock, cover, valve, climate,
fan, light, media_player, alarm_control_panel, datetime, update, and
water_heater.
2026-03-24 18:13:09 -10:00
J. Nick Koston af5b98c635 [time] Remove dummy placeholder values for recalc_timestamp_utc() (#15129) 2026-03-25 01:07:28 +00:00
J. Nick Koston 690dc324c9 [logger] Move task log buffer storage to BSS (#15153) 2026-03-25 00:52:37 +00:00
Jonathan Swoboda 26e78c840c [wifi] Filter fast_connect by band_mode and use background scan for roaming (#15152) 2026-03-24 20:21:04 -04:00
J. Nick Koston 9c9ae190ee [core] Use compile-time HasElse parameter in IfAction (#15134) 2026-03-24 14:13:59 -10:00
J. Nick Koston 238adbe008 [wifi] Fix roaming counter reset from delayed disconnect and successful retry (#15126) 2026-03-24 14:04:17 -10:00
J. Nick Koston f457b995f7 [datetime] Fix state_as_esptime() returning invalid timestamp (#15128) 2026-03-24 14:03:56 -10:00
J. Nick Koston b6aec4fa25 [ethernet] Add W5100 support for RP2040 (#15131) 2026-03-24 14:03:30 -10:00
J. Nick Koston 9fb5b6aa15 [light] Replace initial_state storage with flash-resident callback (#15133) 2026-03-24 14:03:18 -10:00
J. Nick Koston 752fe30332 [api] Add descriptive message to status warning when waiting for client (#15148) 2026-03-24 20:01:59 -04:00
Jonathan SwobodaandJ. Nick Koston 4ff85e2a1e [core] Fix clean-all to handle custom build paths (#15146)
Co-authored-by: J. Nick Koston <nick+github@koston.org>
2026-03-24 19:48:17 -04:00
J. Nick Koston cf961d7e11 Merge remote-tracking branch 'upstream/logger-task-log-buffer-bss' into integration 2026-03-24 13:26:07 -10:00
J. Nick Koston a4225eb4e9 Fix sizeof(non-static member) in static function 2026-03-24 13:24:47 -10:00
J. Nick Koston f7c9a70d89 Merge remote-tracking branch 'origin/logger-task-log-buffer-bss' into integration 2026-03-24 13:19:44 -10:00
J. Nick Koston 42a8a7946e Fix test Logger constructor calls 2026-03-24 13:12:40 -10:00
J. Nick Koston 32151bfc43 Address review feedback
- Remove dead DEFAULT_SLOT_COUNT constant from host header
- Fix misleading BSS comments (Logger is heap-allocated via new_Pvariable)
- Add comment explaining Zephyr BUF_WORD_COUNT formula
2026-03-24 13:11:38 -10:00
J. Nick Koston 99d0aa9734 Fix dummy_main.cpp Logger constructor call 2026-03-24 13:10:10 -10:00
J. Nick Koston 4d379d5e10 [logger] Move task log buffer storage to BSS
Follow-up to #15071 which moved the TaskLogBuffer allocation into the
Logger constructor to fix a race condition where another task could log
before the buffer was initialized.

This takes that fix further by eliminating the heap allocation entirely.
The buffer size is a codegen constant, so we emit it as a define
(ESPHOME_TASK_LOG_BUFFER_SIZE) and use it to size member arrays directly.
The TaskLogBuffer becomes a direct member of Logger rather than a
heap-allocated pointer, placing the entire buffer in BSS.

Changes per platform:
- ESP32: storage_ from RAMAllocator heap to member array
- Host: slots_ from unique_ptr<LogMessage[]> to member array
- LibreTiny: storage_ from RAMAllocator heap to member array
- Zephyr: mpsc buf from new uint32_t[] to member array
2026-03-24 13:07:40 -10:00
J. Nick Koston 434e548a22 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-24 10:40:48 -10:00
13baf26050 [core] get_log_str: fix false-positive error on null-terminated strings with stricter compilers (#15136)
Co-authored-by: J. Nick Koston <nick@koston.org>
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>
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
2026-03-24 20:26:21 +00:00
J. Nick Koston 968fa1cadd Merge remote-tracking branch 'origin/api-warning-message' into integration 2026-03-24 10:19:55 -10:00
J. Nick Koston 17981a14af [api] Add descriptive message to status warning when waiting for client
The API component calls status_set_warning() without a message when no
client is connected and reboot timeout is enabled. This results in a
confusing log line: "api set Warning flag: unspecified"

Replace with a descriptive message so users see:
"api set Warning flag: waiting for client connection"

Closes https://github.com/esphome/esphome/issues/15140
2026-03-24 10:18:17 -10:00
Jonathan Swoboda 8751f348c8 [sx127x] Fix FIFO read corruption (#15114) 2026-03-24 10:04:27 -10:00