J. Nick Koston
a0532d657f
[api] Drop escape() helper and return-by-value APIBuffer in proxy decode benchmarks
...
Simplifies the decode benchmarks to mirror the encode pattern more
closely: no per-iteration asm volatile barrier, no return-by-value of
APIBuffer through encode_message_for_proxy. CodSpeed callgrind has been
crashing inside Decode_ZWaveProxyFrame and the previous setup was the
main thing it had that the (passing) Encode_ZWaveProxyFrame did not.
2026-04-29 21:46:32 -05:00
J. Nick Koston
483d294ef6
[api] Move proxy message benchmarks into bench_proto_proxy.cpp
...
Splitting these out from bench_proto_encode.cpp and bench_proto_decode.cpp
moves them to the end of the linker's static-init order. CodSpeed's
callgrind runner has been segfaulting immediately after measuring the
last existing decode benchmark (Decode_SwitchCommandRequest), and
isolating the new code into its own translation unit lets us see whether
the crash is triggered by one of the new benchmarks or by something
about the new USE_*_PROXY/USE_INFRARED/USE_RADIO_FREQUENCY defines
changing how api_pb2.cpp compiles.
2026-04-29 21:38:01 -05:00
J. Nick Koston
f841de0664
[api] Avoid lambda IIFE and per-byte APIBuffer growth in proxy benchmarks
...
The InfraredRFReceiveEvent encode benchmark used a C++17 lambda IIFE
(`[]{...}()`) to seed a function-static vector, and the
InfraredRFTransmitRawTimingsRequest decode benchmark grew its APIBuffer
one byte at a time (~210 grow_() calls), each allocating a fresh
exact-fit buffer and memcpy'ing the prior contents. Both patterns are
fine under direct execution but appear to hit a CodSpeed/valgrind
edge case during the simulated benchmark run.
Switch to a plain heap-init pattern for the vector and build the wire
bytes into a stack array first, then resize+memcpy into the APIBuffer
once.
2026-04-29 21:25:46 -05:00
J. Nick Koston
4c027e87ba
[api] Add encode/decode benchmarks for Z-Wave, IR/RF, and serial proxy messages
...
Mirrors the existing BluetoothLERawAdvertisementsResponse benchmarks for
the remaining proxy message families: ZWaveProxyFrame/ZWaveProxyRequest,
SerialProxyDataReceived/SerialProxyWriteRequest, and
InfraredRFReceiveEvent/InfraredRFTransmitRawTimingsRequest.
Adds minimal stub headers under tests/benchmarks/stubs/ for the
zwave_proxy, infrared, radio_frequency, and serial_proxy components so
api_connection.cpp compiles without dragging in their UART/RMT/BLE
hardware dependencies.
2026-04-29 21:07:39 -05:00
J. Nick Koston
c41f38e16d
[scheduler] Add self-keyed timer API for callers without a Component ( #16127 )
2026-04-29 13:24:37 -05:00
J. Nick Koston
985dba9332
[core] Defer heavy module-scope imports in __main__, loader, and config ( #15955 )
2026-04-29 13:17:59 -05:00
J. Nick Koston
44cabc191d
[core] Catch body-read errors in download_content ( #16023 )
2026-04-29 14:06:41 -04:00
J. Nick Koston
e5b1991cf7
[fan] Add tests for fan.turn_on action field combinations ( #16125 )
2026-04-29 12:46:06 -05:00
J. Nick Koston
7fba57ce51
[valve] Add tests for valve.control action field combinations ( #16126 )
2026-04-29 12:45:30 -05:00
Jonathan Swoboda
42b8597719
[api] Extend NOLINT to cover bugprone-random-generator-seed in MAC varint test ( #16120 )
2026-04-29 13:58:19 +00:00
J. Nick Koston
8ceada8d04
[core] Download external_files in parallel ( #16021 )
2026-04-29 14:32:30 +12:00
J. Nick Koston
49c7a6928e
[script] Fix cpp_unit_test crash for non-MULTI_CONF platform components ( #16104 )
2026-04-29 14:32:13 +12:00
J. Nick Koston
2fce71e0d4
[wifi] Add phy_mode option for ESP8266 ( #16055 )
2026-04-29 14:31:07 +12:00
J. Nick Koston
80251c54be
[climate] Add climate.control coverage to component tests via thermostat ( #16052 )
2026-04-29 14:27:56 +12:00
J. Nick Koston
0d51a122d0
[cover] Add cover.control / cover.template.publish coverage to template tests ( #16051 )
2026-04-29 14:27:40 +12:00
J. Nick Koston
5a33c50015
[light] Use constexpr template for DimRelativeAction transition_length ( #16038 )
2026-04-29 14:26:38 +12:00
J. Nick Koston
0d150dc57e
[light] Use constexpr template for ToggleAction transition_length ( #16037 )
2026-04-29 14:25:18 +12:00
J. Nick Koston
592486ae9a
[analyze_memory] Attribute main.cpp setup()/loop() to esphome core ( #16033 )
2026-04-29 14:06:54 +12:00
J. Nick Koston
eec770d622
[core] Use ETag in external_files cache to fix re-downloads from raw.githubusercontent.com ( #16020 )
2026-04-29 13:52:09 +12:00
J. Nick Koston
d7b21a84a3
[git] Make ref fetches and submodule updates shallow ( #16014 )
2026-04-29 13:49:51 +12:00
J. Nick Koston
f05243bd9d
[api] Add 48-bit MAC address varint fast path for BLE advertisements ( #15988 )
2026-04-29 13:48:35 +12:00
J. Nick Koston
676f26919e
[mdns] Drive MDNS.update() polling from IP state events on ESP8266/RP2040 ( #15961 )
2026-04-29 13:02:21 +12:00
Clyde Stubbs
0b5835284a
[lvgl] Additional layout features ( #16041 )
2026-04-29 12:35:24 +12:00
Clyde Stubbs
8157c721a5
[mapping] Implement default value ( #15861 )
2026-04-29 06:31:37 +10:00
tomaszduda23 and J. Nick Koston
6b3df66bdc
[nrf52] make reset pin optional ( #11684 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-28 12:20:38 -05:00
Bonne Eggleston and J. Nick Koston
52e8c50f45
[modbus] Split modbus_server from modbus_controller ( #15509 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-04-28 10:21:25 -05:00
J. Nick Koston
0a4d9b430f
[ci] Add import-time regression check for esphome.__main__ ( #15954 )
2026-04-28 14:05:12 +00:00
J. Nick Koston
0759a3c681
[core] Split wake.{h,cpp} into per-platform files ( #15978 )
2026-04-28 08:48:13 -05:00
Clyde Stubbs and J. Nick Koston
52f80618d4
[lvgl] Allow a binary sensor to report checked or pressed state ( #16073 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
2026-04-28 22:00:29 +10:00
Darafei Praliaskouski
41458d72e0
[esp32] Make Arduino app metadata reproducible ( #16053 )
2026-04-28 05:58:34 -05:00
J. Nick Koston and Claude
39a69385fb
[image] Fix RGB565+alpha rendering for multi-frame animations ( #16017 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-04-28 12:57:42 +12:00
J. Nick Koston
79b741b8dc
[core] Combine entity register + configure_entity_ into one call ( #16030 )
2026-04-27 03:03:39 +00:00
tomaszduda23
112646a9c4
[zigbee] add router for nrf52 ( #16034 )
2026-04-26 23:02:09 -04:00
J. Nick Koston
2e096bb036
[core] Combine set_component_source_ + register_component_ into one call ( #16029 )
2026-04-26 21:54:15 -05:00
J. Nick Koston
0f25d91e68
[core] Unify skip_external_update and honor it in external_files for faster esphome logs ( #16016 )
2026-04-26 07:24:33 -05:00
Boris Krivonog
c8d4420408
[mitsubishi_cn105] add support for half-degree temperature setpoint ( #15919 )
2026-04-26 07:19:49 -05:00
Darafei Praliaskouski and J. Nick Koston
b084fa4490
[esp32] Make ESP-IDF builds reproducible ( #16008 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-26 06:31:32 -05:00
68625a1b76
[core] Isolate generated build metadata ( #16007 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-04-26 09:11:09 +00:00
J. Nick Koston
f092e619d8
[rtttl] Gate on_finished_playback callback storage behind define ( #16003 )
2026-04-26 00:03:59 -05:00
Keith Burzinski and J. Nick Koston
bc33260c61
[ir_rf_proxy] Extend for RF ( #15744 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-25 22:33:02 -05:00
J. Nick Koston
4cab262ef8
[ci] Trigger CodSpeed benchmarks on host platform changes ( #15995 )
2026-04-25 17:18:21 -04:00
J. Nick Koston
4f8feb86f0
[dashboard] Add --no-states support to logs WebSocket handler ( #15993 )
2026-04-25 15:43:05 -05:00
b5ccd55f4e
[packages] Fix premature substitution of vars in remote package files ( #15997 )
...
Co-authored-by: J. Nick Koston <nick+github@koston.org >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-25 17:06:58 +00:00
Kevin Ahrendt
94e300389c
[sendspin] remove year and track number text sensors and refactor ( #15975 )
2026-04-24 15:35:32 +00:00
Kevin Ahrendt
55bcf33446
[sendspin] Add metadata sensor component ( #15971 )
2026-04-24 14:32:47 +00:00
Kevin Ahrendt
f132b7dc07
[media_player][speaker][speaker_source] Centralize preferred format codegen ( #14771 )
2026-04-24 14:09:03 +00:00
Kevin Ahrendt
ac7f0f0b74
[sendspin] Add a metadata text sensor component ( #15969 )
2026-04-24 11:07:00 +00:00
bc7f35b569
[sendspin] Add a Sendspin media source component for playing audio (PR4) ( #15950 )
...
Co-authored-by: Copilot <copilot@github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-24 10:00:22 +00:00
J. Nick Koston
eceb534895
[deep_sleep] Fix sleep_duration codegen type to uint32_t ( #15965 )
2026-04-24 07:19:59 +00:00
tomaszduda23 and Copilot
404620b99c
[deep_sleep][logger][zephyr][zigbee] add deep sleep support with zigbee wakeup ( #13950 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-23 22:31:46 -04:00