J. Nick Koston
57d9e508ea
merge
2026-04-14 08:09:00 -10:00
J. Nick Koston
f4f56cfaaa
Merge remote-tracking branch 'upstream/dev' into optimize-value-accuracy
...
# Conflicts:
# esphome/core/helpers.h
# tests/components/core/test_helpers.cpp
2026-04-14 08:07:44 -10:00
J. Nick Koston
da9fbb8044
[core] Fix app_state_ status bits clobbered for non-looping components ( #15658 )
2026-04-14 07:50:11 -10:00
J. Nick Koston
cf01163c8c
[core] Add uint32_to_str helper and use in preferences ( #15597 )
2026-04-14 07:49:44 -10:00
J. Nick Koston
2a530a4bf4
[core] Optimize format_hex_internal by splitting separator loop ( #15594 )
2026-04-14 07:48:33 -10:00
J. Nick Koston
6b4b653462
[globals] Fix TemplatableFn deprecation warning for globals.set ( #15733 )
2026-04-14 09:18:38 -04:00
J. Nick Koston and Copilot Autofix powered by AI
edb16a27d3
[esphome] Skip missing extra flash images in upload_using_esptool ( #15723 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-04-13 16:58:48 -10:00
Jonathan Swoboda
5d0cfc31fa
[core] Move FILTER_PLATFORMIO_LINES into platformio_runner ( #15707 )
2026-04-13 14:18:44 -04:00
J. Nick Koston
4f69c3b850
[benchmark] Add SubscribeLogsResponse encode benchmarks ( #15696 )
2026-04-13 02:03:53 -05:00
Javier Peletier
daa68a2a60
[packages] fix support packages: !include mypackages.yaml ( #15677 )
2026-04-13 09:48:30 +12:00
Clyde Stubbs and Jesse Hills
8754bbfa89
[lvgl] Fix use of rotation on host SDL ( #15611 )
...
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2026-04-12 20:29:11 +00:00
J. Nick Koston
6d92cc3d2b
[packages] Fix false deprecation warning and wrong error paths in nested packages ( #15605 )
2026-04-13 08:24:23 +12:00
Jonathan Swoboda
2f684bf4f3
[esp32] Bump platform to 55.03.38, Arduino to 3.3.8, ESP-IDF to 5.5.4 ( #15666 )
2026-04-12 10:07:04 -10:00
Jonathan Swoboda
45af21bf38
[canbus] Fix canbus.send can_id compile error ( #15668 )
2026-04-12 09:58:51 -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
36ac6e277a
Merge branch 'dev' into optimize-value-accuracy
2026-04-09 07:54:37 -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
3b45179948
Split uint32_to_str/frac_to_str into internal and public API
...
- uint32_to_str_(): raw pointer, internal use
- uint32_to_str(): template with compile-time buffer size check
- frac_to_str_(): raw pointer, internal use
- small_pow10(): simplify to ternary chain
2026-04-08 21:01:32 -10:00
J. Nick Koston
e52c3b01e6
Extract buf_append_sep_str helper, add tests
2026-04-08 20:52:51 -10:00
J. Nick Koston
c8e636f253
Add unit tests for small_pow10, uint32_to_str, frac_to_str
2026-04-08 20:51:06 -10:00
J. Nick Koston
d8e586609f
[core] Optimize value_accuracy_to_buf to avoid snprintf
...
Replace snprintf("%.*f") with integer-based formatting for finite
float values with accuracy_decimals 0-3 (covers virtually all sensor
usage). Falls back to snprintf for higher accuracy or NaN/Inf.
Uses lrint() with double cast for the multiply to match snprintf's
rounding behavior exactly. The fast path avoids snprintf's heavy
float formatting machinery entirely.
Also optimizes value_accuracy_with_uom_to_buf to append the UOM
string directly instead of going through snprintf.
Adds C++ unit tests that verify output matches snprintf for a range
of values including edge cases.
Benchmark: 92,961ns -> 6,484ns (14.3x faster, 2000 iterations).
2026-04-08 20:46:16 -10:00
J. Nick Koston
352121b7bf
[core] Add CodSpeed benchmarks for hot helper functions
...
Add benchmarks for format_hex_to, format_hex_pretty_to,
format_mac_addr_upper, fnv1_hash, fnv1a_hash, fnv1_hash_object_id,
parse_hex, crc8, crc16, value_accuracy_to_buf, int8_to_str, and
base64_decode to establish baseline performance data before optimization.
2026-04-08 19:57:37 -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
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
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
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
de7f081799
[emontx] Fix uart package name in tests ( #15546 )
2026-04-07 21:52:37 -04: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
Jesse Hills
b307c7c74c
[config_validation] Add unbounded percentage validators ( #15500 )
2026-04-08 11:44:52 +12: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
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
10b38e1588
[api] Add max_data_length proto option and optimize entity name/object_id ( #15426 )
2026-04-07 03:31:01 +00:00
Jonathan Swoboda
29ca7bc8f9
[espnow] Fix string data generating invalid C++ char literals ( #15493 )
2026-04-06 19:57:16 -04:00