J. Nick Koston
09741dc97f
Merge remote-tracking branch 'upstream/ota-disable-loop-when-idle' into integration
2026-04-10 17:29:50 -10:00
J. Nick Koston
af8fd1d060
[esphome.ota] Fix cleanup race, tighten error message and comments, add tests
...
Addresses copilot review on #15636 .
1. Fix cleanup_connection_() race with queued listener events.
While an OTA session was active, a second incoming connection would
fire esphome_socket_event_callback → esphome_wake_ota_component_any_context,
which sets pending_enable_loop_ on the (still-active) OTA component.
enable_pending_loops_() only scans the inactive section, so that flag
goes invisible. When cleanup_connection_() then called disable_loop(),
the component dropped to LOOP_DONE with a stale pending flag and
nothing to re-trigger the scan — the queued client sat forever until
some unrelated socket activity woke the main loop.
Fix: don't call disable_loop() from cleanup_connection_(). loop() has
the idempotent idle check at its top; one more dispatch after cleanup
is cheap and guarantees we re-read server_->ready() and either accept
the queued client or disable cleanly.
2. Tighten the multi-port error message. Merging is fine — the constraint
is single-port. Reworded: "Only a single port is supported for 'ota'
'platform: esphome'. Got ports [...]. Consolidate onto a single port;
configs sharing a port are merged automatically."
3. Comment drift: three call sites and the fast-select extern declaration
still referred to enable_loop_soon_any_context() and implied the hook
wakes the main loop. Updated to reflect the current mechanism (sets
pending-enable flags only; callers have already woken the main loop).
Also clarified that esphome_wake_ota_component_any_context fires on
every RCVPLUS event across all monitored sockets, so false wakes are
expected and OTA::loop() disables itself again when idle.
4. Added tests/component_tests/ota/test_esphome_ota.py covering
ota_esphome_final_validate: single instance accepted, same-port
configs merge, different-port configs rejected with cv.Invalid,
non-esphome platforms unaffected.
2026-04-10 14:29:32 -10:00
J. Nick Koston
6f4a502dc2
Merge remote-tracking branch 'origin/optimize-format-hex' into integration
2026-04-09 21:51:04 -10:00
J. Nick Koston
1262b98fa1
Merge remote-tracking branch 'upstream/rp2040-ethernet-lwiplock-irq-defer' into integration
2026-04-09 21:48:20 -10:00
J. Nick Koston
17209df7b5
[mcp23016] Add interrupt pin support ( #15616 )
2026-04-10 15:29:52 +12:00
J. Nick Koston
9cf9b02ba2
[pca6416a] Add interrupt pin support ( #15614 )
2026-04-10 15:29:26 +12:00
J. Nick Koston
c90fa2378a
[tca9555] Add interrupt pin support ( #15613 )
2026-04-10 15:29:00 +12:00
J. Nick Koston
fd69a8e380
Merge remote-tracking branch 'upstream/dev' into integration
2026-04-09 11:56:18 -10:00
J. Nick Koston
6fe6bf79d4
Address Copilot review: fix namespace and custom separator test
2026-04-09 09:30:06 -10:00
J. Nick Koston
a941422fa6
Add unit tests for format_hex helpers
2026-04-09 08:36:40 -10:00
J. Nick Koston
03db32d045
[core] Add CodSpeed benchmarks for hot helper functions ( #15593 )
2026-04-09 07:48:32 -10:00
J. Nick Koston
8e02d0a20e
[fan] Store preset mode vector on Fan entity to eliminate heap allocation ( #15209 )
2026-04-09 10:25:37 +12:00
J. Nick Koston
faa05031a7
[climate] Store custom mode vectors on Climate entity to eliminate heap allocation ( #15206 )
2026-04-09 10:25:29 +12:00
J. Nick Koston
576d89a82a
[api] Peel first write iteration, inline socket writes, zero-gap batch encoding ( #15063 )
2026-04-08 11:05:53 -10:00
J. Nick Koston
d9ebe1e1e7
Merge branch 'crash-handler-dual-core' into integration
2026-04-08 09:34:33 -10:00
Clyde Stubbs
7de060ed55
[lvgl] Fix args for lambda in set_rotation action ( #15555 )
2026-04-09 07:22:24 +12:00
J. Nick Koston
a72609e640
[yaml] Resolve top-level IncludeFile in load_yaml ( #15557 )
2026-04-08 08:39:14 -04:00
J. Nick Koston and Copilot
a8b7c7a4ac
[core] Add TemplatableFn for 4-byte function-pointer templatable storage ( #15545 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-08 08:38:00 -04:00
J. Nick Koston
ca61dc5d69
Merge remote-tracking branch 'upstream/test_merge_to_beta_again' into integration
2026-04-07 22:48:15 -10:00
J. Nick Koston
7ba5398418
Merge remote-tracking branch 'upstream/templatable-value-specialize' into integration
2026-04-07 22:48:10 -10:00
J. Nick Koston
618ee77e43
Merge remote-tracking branch 'upstream/fix-test-build-include-file' into test_merge_to_beta_again
2026-04-07 22:47:14 -10:00
J. Nick Koston
67f26b6cf7
fix 8266 flash string opt
2026-04-07 22:46:31 -10:00
J. Nick Koston
5079c86d1d
Merge remote-tracking branch 'upstream/templatable-value-specialize' into integration
2026-04-07 21:51:20 -10:00
J. Nick Koston
b53f1c694b
Add test for top-level !include resolution in load_yaml
2026-04-07 21:36:49 -10:00
J. Nick Koston
fe17c86f58
now fix is always the same for unwrapped
2026-04-07 21:32:20 -10:00
J. Nick Koston
e7a33a93eb
Merge branch 'dev' of https://github.com/esphome/esphome into templatable-value-specialize
2026-04-07 19:27:41 -10:00
J. Nick Koston
2a79f91947
Merge remote-tracking branch 'upstream/dev' into integration
2026-04-07 19:14:39 -10:00
J. Nick Koston
f278e12841
Merge remote-tracking branch 'upstream/templatable-value-specialize' into integration
2026-04-07 19:14:36 -10:00
Jonathan Swoboda
9bf53e0ab8
[esp32_hosted] Add SPI transport and SDIO 1-bit bus width support ( #15551 )
2026-04-08 03:17:58 +00: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