J. Nick Koston
f278e12841
Merge remote-tracking branch 'upstream/templatable-value-specialize' into integration
2026-04-07 19:14:36 -10:00
J. Nick Koston
0dfd906cb5
Merge branch 'dev' of https://github.com/esphome/esphome into templatable-value-specialize
2026-04-07 17:09:39 -10:00
J. Nick Koston
e658a8559e
[ethernet] Add W6100 and W6300 support for RP2040 ( #15543 )
2026-04-07 16:57:05 -10:00
J. Nick Koston
4db82877af
[yaml] Add IncludeFile representer to ESPHomeDumper ( #15549 )
2026-04-07 16:27:11 -10:00
J. Nick Koston
2d9e03352c
Merge remote-tracking branch 'upstream/fix-include-file-dumper' into templatable-value-specialize
2026-04-07 16:11:07 -10:00
J. Nick Koston
32fcbc8823
address bot comments
2026-04-07 16:10:40 -10:00
J. Nick Koston
a9ce676151
Merge remote-tracking branch 'upstream/fix-include-file-dumper' into templatable-value-specialize
2026-04-07 16:07:04 -10:00
J. Nick Koston
6d44b37297
Merge branch 'dev' of https://github.com/esphome/esphome into templatable-value-specialize
2026-04-07 16:05:15 -10:00
J. Nick Koston
1d982c47cc
[yaml] Add tests for IncludeFile YAML dumper representer
2026-04-07 16:02:34 -10:00
J. Nick Koston
de7f081799
[emontx] Fix uart package name in tests ( #15546 )
2026-04-07 21:52:37 -04:00
J. Nick Koston
dc9cf44eb1
Merge remote-tracking branch 'upstream/dev' into templatable-value-specialize
2026-04-07 15:48:17 -10:00
Clyde Stubbs
88f4067dd6
[lvgl] Implement rotation with PPA ( #15453 )
2026-04-08 13:19:29 +12:00
d20d613c1d
[substitutions] !include ${filename}, Substitutions in include filename paths (package refactor part 5) ( #12213 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-07 15:12:55 -10:00
Clyde Stubbs
801f3fadaa
[epaper_spi] Fix deep sleep command ( #15544 )
2026-04-08 13:00:39 +12:00
J. Nick Koston
0ec4e98374
[core] Expand = delete to catch inconvertible return types, add to_exp test
...
- TemplatableFn = delete now catches both stateful lambdas AND stateless
lambdas with inconvertible return types (e.g., string -> int)
- Add test for to_exp with non-string output_type (lambda-wraps result)
2026-04-07 14:54:41 -10:00
J. Nick Koston
11c24324d5
Merge remote-tracking branch 'upstream/templatable-value-specialize' into integration
2026-04-07 14:31:35 -10:00
J. Nick Koston
7d497e6b52
Merge remote-tracking branch 'upstream/dev' into integration
2026-04-07 14:31:13 -10:00
J. Nick Koston
0dddeea4d2
[core] Assert stateless capture in test, fix TemplatableFn comment
2026-04-07 14:10:18 -10:00
J. Nick Koston
11934ab27f
[sensor] Wrap benchmark filter constants in lambdas for TemplatableFn
2026-04-07 13:49:55 -10:00
Jesse Hills
b307c7c74c
[config_validation] Add unbounded percentage validators ( #15500 )
2026-04-08 11:44:52 +12:00
J. Nick Koston
8cd78441a6
Revert "[sensor] Wrap filter constants in lambdas for TemplatableValue in benchmarks"
...
This reverts commit 5e2187581a .
2026-04-07 13:34:11 -10:00
J. Nick Koston
5e2187581a
[sensor] Wrap filter constants in lambdas for TemplatableValue in benchmarks
2026-04-07 13:26:21 -10:00
J. Nick Koston
9bf0133525
[core] Specialize TemplatableValue for non-string types as function pointer
...
Specialize TemplatableValue so non-string types use function-pointer-only
storage (4 bytes on 32-bit) instead of the tagged union with std::function
support (8 bytes). The std::string specialization retains full support for
VALUE, STATIC_STRING, FLASH_STRING, and stateful lambdas.
Codegen now wraps non-string constants in stateless lambdas automatically,
so the generated C++ always assigns a function pointer.
2026-04-07 13:16:14 -10:00
14bcdfe700
[emontx] emonTx component ( #9027 )
...
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-07 22:29:55 +00:00
ee7b38504b
[nextion] Expose custom protocol frames as automation triggers ( #13248 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-07 22:13:58 +00:00
J. Nick Koston
5d31f4aeba
[light] Use function-pointer fields in LightControlAction ( #15132 )
2026-04-07 12:00:17 -10:00
Jonathan Swoboda
17ec5389d8
[mcp4461] Fix terminal disable passing string where C++ expects char ( #15528 )
2026-04-07 11:07:28 -10:00
Jonathan Swoboda
9d396cea5a
[grove_tb6612fng] Move direction logic from Python to C++ to fix lambda crash ( #15513 )
2026-04-07 10:56:25 -10:00
J. Nick Koston
ef6c65c7ec
[cli] Add config bundle CLI command for remote compilation ( #13791 )
2026-04-07 10:37:19 -10:00
J. Nick Koston
6460f3a757
[api] Add max_data_length and force to DeviceInfoResponse/HelloResponse proto fields ( #15514 )
2026-04-07 10:24:36 -10:00
J. Nick Koston
0d809a7481
[automation] Add CallbackAutomation dataclass and build_callback_automations helper ( #15246 )
2026-04-07 10:09:27 -10:00
J. Nick Koston
cf78b035be
Merge remote-tracking branch 'upstream/dev' into integration
2026-04-07 08:53:34 -10:00
J. Nick Koston
674d030cbb
[core] Reschedule fired intervals directly into heap ( #15516 )
2026-04-07 07:36:55 -10:00
Diorcet Yann
7ab7538220
[hdc2080] Fix tests ( #15518 )
2026-04-06 21:59:05 -10:00
J. Nick Koston
9d43ed77c6
Merge remote-tracking branch 'origin/scheduler-interval-direct-heap' into integration
2026-04-06 20:58:44 -10:00
J. Nick Koston
cf704b6b91
Address review: remove unused global, fix assertion messages
2026-04-06 20:54:01 -10:00
J. Nick Koston
c79e7f4018
[core] Reschedule fired intervals directly into heap instead of to_add_
...
When an interval fires in Scheduler::call(), push it directly back into
items_ via push_back() + push_heap() instead of routing through the
to_add_ staging vector and process_to_add_slow_path_().
This eliminates per-cycle overhead of process_to_add_slow_path_() which
acquires a lock, iterates to_add_, pushes each item into the heap, clears
the vector, and resets the atomic counter.
2026-04-06 20:37:04 -10:00
J. Nick Koston
d0b3cdebdb
Merge remote-tracking branch 'upstream/fan-store-preset-modes-on-entity' into integration
2026-04-06 19:19:34 -10:00
J. Nick Koston
e3d95817a1
Merge remote-tracking branch 'upstream/climate-store-custom-modes-on-entity' into integration
2026-04-06 19:18:58 -10:00
J. Nick Koston
60b5893ec7
Merge branch 'dev' into climate-store-custom-modes-on-entity
2026-04-06 18:46:43 -10:00
J. Nick Koston
6db21ec054
Merge branch 'dev' into fan-store-preset-modes-on-entity
2026-04-06 18:46:32 -10:00
J. Nick Koston
d3df97f534
Merge remote-tracking branch 'origin/api-max-data-length-force' into integration
2026-04-06 18:42:13 -10:00
J. Nick Koston
b86ab07632
[core] Fix test for byte-length error message, add ByteLength and multibyte tests
2026-04-06 18:38:58 -10:00
J. Nick Koston
10b38e1588
[api] Add max_data_length proto option and optimize entity name/object_id ( #15426 )
2026-04-07 03:31:01 +00:00
J. Nick Koston
e3e191b783
Merge remote-tracking branch 'upstream/dev' into integration
2026-04-06 16:23:07 -10:00
J. Nick Koston
7c671cd0e6
Merge branch 'api-proto-max-length' into integration
...
# Conflicts:
# esphome/components/api/api_connection.cpp
# esphome/components/api/api_pb2.cpp
# esphome/components/api/proto.h
# esphome/core/application.h
# esphome/core/component.cpp
# script/api_protobuf/api_protobuf.py
2026-04-06 14:02:14 -10:00
Jonathan Swoboda
29ca7bc8f9
[espnow] Fix string data generating invalid C++ char literals ( #15493 )
2026-04-06 19:57:16 -04:00
J. Nick Koston
87622c9a74
[api] Add max_data_length proto option and optimize entity string encoding
...
Add a max_data_length field option to api_options.proto for string/bytes
fields. When max_data_length < 128 and force = true, the code generator
uses encode_short_string_force() — a single call that writes the tag
byte, 1-byte length varint, and raw string data with no branching. Size
calculation simplifies from calc_length(1, size) to 2 + size.
Annotate entity fields across all 25 ListEntities*Response messages:
- name and object_id: max_data_length = 120, force = true (50 fields)
- icon: max_data_length = 63 (25 fields)
The 120 and 63 values match NAME_MAX_LENGTH and ICON_MAX_LENGTH in
esphome/core/config.py, validated at config time.
2026-04-06 13:28:50 -10:00
Clyde Stubbs
c98bb9060f
[lvgl] Fix setting triggers on display ( #15364 )
2026-04-07 10:48:14 +12:00
Clyde Stubbs
ce0d360790
[lvgl] Implement rotation directly ( #14955 )
2026-04-07 10:46:42 +12:00