Commit Graph
3552 Commits
Author SHA1 Message Date
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
Edward Firmopre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>Copilot Autofix powered by AIJ. Nick Koston
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