Commit Graph
25833 Commits
Author SHA1 Message Date
J. Nick Koston 05b2fda36f Merge branch 'media-player-trigger-trampoline' into integration 2026-03-26 10:37:12 -10:00
J. Nick Koston 491e065843 Merge branch 'alarm-control-panel-trigger-trampoline' into integration 2026-03-26 10:37:06 -10:00
J. Nick Koston 9073574bbd Merge branch 'safe-mode-trigger-trampoline' into integration 2026-03-26 10:37:01 -10:00
J. Nick Koston 4737407585 Merge branch 'rtttl-trigger-trampoline' into integration 2026-03-26 10:36:56 -10:00
J. Nick Koston 6f1ed2132b Merge branch 'eliminate-trigger-trampolines' into rtttl-trigger-trampoline 2026-03-26 10:35:13 -10:00
J. Nick Koston ef1f028eb5 Refactor automation building to iterate tuples 2026-03-26 10:34:13 -10:00
J. Nick Koston 1f9b02165a Remove stale trigger class declarations and schema overrides 2026-03-26 10:32:04 -10:00
J. Nick Koston f6e58848ea Migrate rtttl FinishedPlaybackTrigger to callback automation 2026-03-26 10:26:52 -10:00
J. Nick Koston 86434a2b99 Migrate media_player triggers to callback automation 2026-03-26 10:21:06 -10:00
J. Nick Koston 310e58f282 Migrate alarm_control_panel triggers to callback automation 2026-03-26 10:09:46 -10:00
J. Nick Koston 33487966c6 Migrate safe_mode SafeModeTrigger to callback automation 2026-03-26 10:03:18 -10:00
J. Nick Koston 4170f0ecb4 Merge remote-tracking branch 'origin/warn-verbose-logging' into integration 2026-03-26 09:43:45 -10:00
J. Nick Koston 76c93b882d [logger] Use only compiled log level for verbose warning
The compiled ESPHOME_LOG_LEVEL is what matters - all log calls up
to that level are in the binary and will format/block UART regardless
of runtime initial_level.
2026-03-26 08:30:00 -10:00
J. Nick Koston 8677dafae8 [logger] Add comment explaining why compiled log level matters 2026-03-26 08:27:00 -10:00
J. Nick Koston da54960191 [logger] Warn when VERBOSE/VERY_VERBOSE logging is active
Add a warning in dump_config() when the active log level is
VERBOSE or VERY_VERBOSE to remind users these levels are intended
for short-term debugging only.

VERY_VERBOSE triggers an ESP_LOGW, VERBOSE triggers an ESP_LOGI.
Both are guarded by compile-time #if/#elif so no code is added
when compiled at a lower log level.
2026-03-26 08:17:31 -10:00
Jonathan Swoboda bf89a191f0 [wifi] Guard coex_background_scan with CONFIG_SOC_WIFI_SUPPORTED (#15187) 2026-03-26 13:39:35 -04:00
Jonathan Swoboda c2456409bd [core] Improve clean-all with no arguments (#15184) 2026-03-26 13:39:19 -04:00
J. Nick Koston 02e23eb386 [benchmark] Add light call and publish benchmarks (#15176) 2026-03-26 07:33:10 -10:00
J. Nick Koston 6898284361 [benchmark] Add cover publish_state and call benchmarks (#15179) 2026-03-26 07:32:54 -10:00
J. Nick Koston f3a31be6d0 [benchmark] Add climate publish_state and call benchmarks (#15180) 2026-03-26 07:32:39 -10:00
Daniel KentandJonathan Swoboda 9260401747 [bmp581] Add SPI support for BMP581 (#13124)
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-03-26 12:11:46 -04:00
J. Nick Koston 41ed574826 Merge remote-tracking branch 'upstream/dev' into integration 2026-03-25 22:11:53 -10:00
J. Nick Koston 8a6b009173 [light] Move normal state logging to VERBOSE (#15177) 2026-03-26 15:53:33 +13:00
Keith BurzinskiandJ. Nick Koston 676ac9d8b8 [infrared][ir_rf_proxy] Add receiver_frequency config for IR receiver demodulation frequency (#15156)
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-03-26 15:30:46 +13:00
J. Nick Koston 93232363e9 Merge remote-tracking branch 'upstream/eliminate-trigger-trampolines' into integration 2026-03-25 15:38:03 -10:00
J. Nick Koston 150e0775b9 Add static_asserts for forwarder size, widen type hint
- static_assert that forwarders are pointer-sized and trivially
  copyable so future field additions can't silently cause heap
  allocation in Callback::create().
- Widen forwarder parameter type hint to MockObj | MockObjClass.
2026-03-25 15:36:08 -10:00
J. Nick Koston bd69737878 Add comment explaining RawExpression usage 2026-03-25 15:21:55 -10:00
J. Nick Koston a90a2b1d62 Address review: simplify template branch, add constructor comment
- Remove unnecessary TriggerForwarder.template() branch —
  TemplateArguments() already handles the empty case.
- Add comment on Automation default constructor explaining
  its purpose for the forwarder pattern.
2026-03-25 15:20:36 -10:00
J. Nick Koston 73ae0dd739 Migrate event component (EventTrigger) 2026-03-25 15:17:05 -10:00
J. Nick Koston bdc4a54613 Address review: const ref args, revert lock migration
- TriggerForwarder::operator() now takes const Ts&... to avoid
  copies of non-trivial types (e.g., std::string).
- Revert lock to trigger-based pattern: LockStateForwarder holds
  two pointers (automation + lock), exceeding sizeof(void*) which
  would cause Callback::create to heap-allocate.
- Remove forwarder_extra_args from API since lock was the only user.
2026-03-25 15:10:10 -10:00
J. Nick Koston 2465339d07 Merge remote-tracking branch 'upstream/eliminate-trigger-trampolines' into integration 2026-03-25 14:47:08 -10:00
J. Nick Koston ee1da10614 Remove unused trigger_ back-pointer from Automation
The trigger_ field was only set in the constructor and never read
afterward. Removing it saves 4 bytes per Automation instance.
2026-03-25 14:32:51 -10:00
J. Nick Koston 9be87f66c3 Accept custom forwarder types, migrate number and lock
Replace bool_filter with generic forwarder parameter that accepts
any struct type. Components can define their own forwarders with
custom fields (e.g., LockStateForwarder needs both automation and
lock entity pointers).

Migrates number (NumberStateTrigger) and lock (LockStateTrigger)
to prove the API is flexible enough for diverse patterns.
2026-03-25 14:23:35 -10:00
J. Nick Koston c127cacb9a Use template forwarder structs for callback deduplication
Replace per-site lambda generation with TriggerForwarder<Ts...>,
TriggerOnTrueForwarder, and TriggerOnFalseForwarder structs. The
compiler generates one operator() per forwarder type shared across
all call sites, avoiding flash duplication from unique lambdas.

Also cleans up API: replaces condition/callback_args with
bool_filter using TRIGGER_ON_TRUE/TRIGGER_ON_FALSE constants.
2026-03-25 14:16:30 -10:00
J. Nick Koston 6c905bd036 Add unit tests for trigger callback lambda generation
Tests the lambda output format for all variations used by
build_callback_automation: no args, typed args, conditions,
multiple args, and empty capture.
2026-03-25 14:09:10 -10:00
J. Nick Koston 6354d4ad97 [core] Eliminate trigger trampolines for common entity automations
Add build_callback_automation() to register automation callbacks
directly on parent components, bypassing the Trigger wrapper object.

Migrates button, sensor, binary_sensor, switch, and text_sensor
to the new pattern, eliminating 12 thin wrapper trigger classes
from runtime instantiation.
2026-03-25 13:58:30 -10:00
J. Nick Koston 29e263ad7d [esp32] Wrap vfprintf to fix printf stub on picolibc (IDF 6) (#15172) 2026-03-25 19:43:01 -04:00
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