J. Nick Koston
95cdc90835
Fix to_code signature: add ConfigType annotation
2026-03-26 15:27:20 -10:00
J. Nick Koston
1c054db1f1
Fix to_code signature: add ConfigType annotation
2026-03-26 15:26:51 -10:00
J. Nick Koston
576b1c3ff0
Fix fan fixture: use C++17 namespace style
2026-03-26 15:25:13 -10:00
J. Nick Koston
991c34a4f3
Fix fixtures: remove unnecessary build flags, use C++17 namespace style
2026-03-26 15:24:38 -10:00
J. Nick Koston
c8d842586a
Fix fan fixture: remove unnecessary build flags
2026-03-26 15:23:44 -10:00
J. Nick Koston
2f93ba0d71
Add integration test for deprecated FanTraits compat layer
2026-03-26 15:21:11 -10:00
J. Nick Koston
602bcd2c97
Add integration test for deprecated ClimateTraits compat layer
2026-03-26 15:19:45 -10:00
J. Nick Koston
e77cdb5971
[light] Validate effect names during config validation instead of codegen ( #15107 )
2026-03-26 15:13:44 -10:00
J. Nick Koston
240e53afce
[fan] Add benchmarks for fan component ( #15210 )
2026-03-26 14:35:09 -10:00
J. Nick Koston
fa8a609bcc
[automation] Eliminate trigger trampolines with deduplicated forwarder structs ( #15174 )
2026-03-26 13:50:50 -10:00
J. Nick Koston
b2290891a3
Revert benchmark changes — keep identical to base for apples-to-apples comparison
2026-03-26 13:11:24 -10:00
J. Nick Koston
fe395ac41d
Use plain vector compat members, add custom modes benchmark
...
The owned vectors add 48 bytes to ClimateTraits copies — this is the
cost of backward compat and will be removed in 2026.11.0.
Add ClimatePublish_WithCustomModes benchmark to show the improvement
for climate devices that use custom fan modes and presets (the case
that previously heap-allocated on every publish).
2026-03-26 13:10:47 -10:00
J. Nick Koston
4170f0ecb4
Merge remote-tracking branch 'origin/warn-verbose-logging' into integration
2026-03-26 09:43:45 -10:00
Clyde Stubbs
1edf952dda
[font] Add unit tests verifying correct processing of glyphs ( #15178 )
2026-03-26 14:59:06 -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 Kent and Jonathan 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
Keith Burzinski and J. 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
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
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
c72aeb91c5
Merge remote-tracking branch 'upstream/dev' into integration
2026-03-25 08:47:35 -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
Clyde Stubbs and Copilot
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
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
J. Nick Koston
ff02bf8099
Merge branch 'state-publish-logv' into integration
2026-03-24 22:26:09 -10:00
J. Nick Koston
690dc324c9
[logger] Move task log buffer storage to BSS ( #15153 )
2026-03-25 00:52:37 +00: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
Jonathan Swoboda and J. 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
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
99d0aa9734
Fix dummy_main.cpp Logger constructor call
2026-03-24 13:10:10 -10:00
J. Nick Koston
968fa1cadd
Merge remote-tracking branch 'origin/api-warning-message' into integration
2026-03-24 10:19:55 -10:00
Javier Peletier and J. Nick Koston
7eddf429ea
[substitutions] speed up config loading: substitutions pass and !include redesign (package refactor part 4) ( #12126 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-03-23 23:57:22 -10:00
J. Nick Koston
d632f1070b
Merge branch 'light-initial-state-callback' into integration
2026-03-23 20:43:51 -10:00
J. Nick Koston
a53b0f4646
Add integration test for light initial_state
2026-03-23 20:40:56 -10:00
J. Nick Koston
7927b9d885
Merge remote-tracking branch 'upstream/light-control-action-compact' into integration
2026-03-23 20:04:54 -10:00
J. Nick Koston
04c6e7e770
[light] Use compact per-field union storage in LightControlAction
...
Replace 14 TemplatableValue fields with a per-field union that stores
either a constant value or a callable pointer in the same 4 bytes
(on 32-bit targets). A 2-bit-per-field type tag in a uint32_t tracks
field state (unset/constant/stateless lambda/stateful lambda).
Reduces LightControlAction from 128 to 76 bytes per instance on ESP32.
For a config with 8 light actions, this saves 416 bytes of RAM and
476 bytes of flash (from eliminated TemplatableValue template
instantiations).
2026-03-23 20:03:34 -10:00
J. Nick Koston
b36a049761
Merge branch 'add-w5100-ethernet-support' into integration
2026-03-23 19:57:21 -10:00