Commit Graph
25233 Commits
Author SHA1 Message Date
J. Nick Koston a9a2d4a6cb Merge remote-tracking branch 'upstream/mqtt-publish-json-std-bind-to-lambda' into integration 2026-03-19 00:42:48 -10:00
J. Nick Koston 890a0186cd Merge remote-tracking branch 'upstream/http-request-std-bind-to-lambda' into integration 2026-03-19 00:42:44 -10:00
J. Nick Koston f726f2907d Merge remote-tracking branch 'upstream/custom-mqtt-device-std-bind-to-lambda' into integration 2026-03-19 00:42:39 -10:00
J. Nick Koston bcb6ba1e55 Merge remote-tracking branch 'upstream/custom-api-device-std-bind-to-lambda' into integration 2026-03-19 00:42:31 -10:00
J. Nick Koston 9415be0e07 Merge remote-tracking branch 'upstream/bme68x-bsec2-sbo-fix' into integration 2026-03-19 00:42:26 -10:00
J. Nick Koston 455a33cdb5 Merge remote-tracking branch 'upstream/binary-sensor-multiclick-inline-callback' into integration 2026-03-19 00:42:18 -10:00
J. Nick KostonandCopilot Autofix powered by AI 6486937aa1 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-19 00:39:05 -10:00
J. Nick Koston 47eb70849f [http_request] Replace std::bind with lambdas in HttpRequestSendAction
Replace std::bind calls with [this, x...] lambdas for JSON encoding
in play(). Remove the now-unused encode_json_func_ helper.
2026-03-19 00:38:20 -10:00
J. Nick Koston 72a378393a [mqtt] Replace std::bind with lambda in MQTTPublishJsonAction
Replace std::bind with a lambda that captures [this, x...] directly,
eliminating the intermediate encode_ method.
2026-03-19 00:37:18 -10:00
J. Nick Koston f57b604351 [mqtt] Replace std::bind with lambdas in CustomMQTTDevice
Replace std::bind calls in subscribe/subscribe_json template methods
with equivalent lambdas. Uses static_cast<T*>(this) instead of
C-style cast for type safety.
2026-03-19 00:36:05 -10:00
J. Nick Koston 9b8f4b5a5d [api] Replace std::bind with lambdas in CustomAPIDevice
Replace std::bind calls in subscribe_homeassistant_state template
methods with equivalent lambdas. Uses static_cast<T*>(this) instead
of C-style cast for type safety.
2026-03-19 00:34:32 -10:00
J. Nick Koston d4d8e92243 [bme68x_bsec2] Store trigger time as member to avoid SBO overflow
The set_timeout lambda captured [this, curr_time_ns] (4 + 8 = 12
bytes), exceeding the std::function small buffer optimization
threshold (8 bytes on 32-bit) and forcing a heap allocation every
measurement cycle (every 3s in LP mode).

Store curr_time_ns as a class member and capture only [this] (4
bytes), which fits inline in the SBO. Trades 8 bytes of permanent
member storage to eliminate a heap alloc+free cycle per measurement.
2026-03-19 00:22:31 -10:00
J. Nick Koston 3bc7efb479 [binary_sensor] Replace std::bind with inline lambda in MultiClickTrigger
Replace std::bind(&MultiClickTrigger::on_state_, this, _1) with a
[this] lambda for the add_on_state_callback registration. The [this]
lambda fits within the Callback inline storage threshold
(sizeof(void*)), avoiding a permanent heap allocation.
2026-03-19 00:04:55 -10:00
J. Nick Koston e5ab35e144 Merge remote-tracking branch 'upstream/fix-top-level-iana-tz' into integration 2026-03-18 23:45:39 -10:00
J. Nick Koston b5b84c1570 Merge remote-tracking branch 'upstream/packet-transport-inline-callback' into integration 2026-03-18 23:45:34 -10:00
J. Nick Koston ed51f2869b Merge remote-tracking branch 'upstream/combination-inline-callback' into integration 2026-03-18 23:45:30 -10:00
J. Nick Koston f8af05bbea Merge remote-tracking branch 'upstream/dev' into integration 2026-03-18 23:22:56 -10:00
Javier Peletier 0a3393bed3 [core] Disable LeakSanitizer in C++ unit tests (#14712) 2026-03-18 23:13:36 -10:00
Javier PeletierandJ. Nick Koston c2c50ceea7 [substitutions] substitutions pass and !include redesign (package refactor part 2a) (#14917)
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-03-18 23:10:01 -10:00
J. Nick Koston 07b6c7dd5b [time] Fix lookup of top-level IANA timezone keys like UTC and GMT 2026-03-18 22:55:17 -10:00
J. Nick Koston 9a3798ad2a [packet_transport] Fix tests to call set_sensor_count before add_sensor
FixedVector requires init() before push_back(). Update all test cases
to call set_sensor_count()/set_binary_sensor_count() before adding
sensors, matching what the Python codegen does.
2026-03-18 21:46:41 -10:00
J. Nick Koston 257d804d06 [packet_transport] Use const ref in dump_config loops to avoid copies 2026-03-18 21:34:06 -10:00
2341d510d3 [lvgl] Migrate to library v9.5.0 (#12312)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com>
2026-03-19 20:31:33 +13:00
J. Nick Koston c1a843a9af [packet_transport] Remove unnecessary friend declarations
The lambdas are defined inside PacketTransport::setup() so they
inherit member-function access rights. The friend declarations
are not needed for accessing protected members through parent pointer.
2026-03-18 21:30:50 -10:00
J. Nick Koston ad668f6395 [packet_transport] Use FixedVector for sensor lists to eliminate realloc machinery
The sensor and binary sensor counts are known at config time, so
pre-allocate with FixedVector::init() instead of using std::vector
which pulls in _M_realloc_insert template instantiation code.
2026-03-18 21:29:02 -10:00
J. Nick Koston 96f4f1537c [packet_transport] Add safety comments for [&sensor] capture lifetime 2026-03-18 21:26:42 -10:00
J. Nick Koston 084790809f [combination] Add safety comment for [&source] capture lifetime 2026-03-18 21:26:20 -10:00
J. Nick Koston ded490dc9f [combination] Move SensorSource to protected and fix grammar nit 2026-03-18 21:24:09 -10:00
J. Nick Koston 04552e240e [combination] Use FixedVector for sensor sources to eliminate realloc machinery
The source count is known at config time, so pre-allocate with
FixedVector::init() instead of using std::vector which pulls in
_M_realloc_insert template instantiation code.
2026-03-18 21:19:22 -10:00
J. Nick Koston 5b8acaa7c0 [combination] Store parent pointer to enable inline Callback storage
Replace std::pair<Sensor*, std::function> with a SensorSource struct
that includes a back-pointer to the parent component. This allows
KalmanCombinationComponent::setup() to capture only [&source] (one
pointer) instead of [this, stddev] (this + a full std::function copy),
enabling inline Callback storage and avoiding a heap allocation per
sensor callback registration.
2026-03-18 20:05:49 -10:00
J. Nick Koston 7b9d3b4c33 [packet_transport] Store parent pointer to enable inline Callback storage
Add a back-pointer to PacketTransport in the Sensor and BinarySensor
structs so the state callback lambdas can capture only [&sensor] (one
pointer) instead of [this, &sensor] (two pointers). This brings the
capture size within the Callback inline threshold (sizeof(void*)),
avoiding a heap allocation per callback registration.
2026-03-18 19:59:24 -10:00
Kevin AhrendtandCopilot Autofix powered by AI 9d6f2f71e8 [speaker_source] Reshuffle playlist on repeat all restart (#14773)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-18 19:51:17 -10:00
e1334cf57f [mqtt] Support JSON payload with code for alarm control panel commands (#14731)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: J. Nick Koston <nick@home-assistant.io>
Co-authored-by: J. Nick Koston <nick@koston.org>
2026-03-19 05:40:48 +00:00
J. Nick Koston f4db76d7e4 Merge remote-tracking branch 'upstream/callback-drop-captures' into integration 2026-03-18 19:36:06 -10:00
J. Nick Koston f757e7e7d4 Merge remote-tracking branch 'upstream/add-enc28j60-ethernet' into integration 2026-03-18 19:35:59 -10:00
J. Nick Koston 0f6eac0d57 Merge branch 'dev' into callback-drop-captures 2026-03-18 18:43:45 -10:00
J. Nick Koston a1aff7cadf [preferences] Devirtualize preference backend and manager classes (#14825) 2026-03-18 18:42:05 -10:00
J. Nick Koston 2271ac6470 [api] Extract overflow buffer from frame helper into APIOverflowBuffer (#14871) 2026-03-18 18:41:45 -10:00
J. Nick Koston 8fe36cde23 [core] Replace std::function with lightweight Callback in CallbackManager (#14853) 2026-03-18 18:41:05 -10:00
Jesse Hills fdd5956c1e Merge branch 'release' into dev 2026-03-19 17:34:17 +13:00
Jesse Hills 609003c897 Merge pull request #14941 from esphome/bump-2026.3.0
2026.3.0
2026.3.0
2026-03-19 17:33:27 +13:00
J. Nick Koston 3c1431c322 [ethernet] Address additional review feedback
- Remove dead ENC28J60 entry from _IDF6_ETHERNET_COMPONENTS
- Simplify get_duplex_mode() — both chips are full-duplex on RP2040
- Add #error guard for unsupported RP2040 SPI Ethernet type
2026-03-18 17:40:13 -10:00
J. Nick Koston e90839e0b8 [ethernet] Address additional review feedback
- Remove dead ENC28J60 entry from _IDF6_ETHERNET_COMPONENTS
- Simplify get_duplex_mode() — both chips are full-duplex on RP2040
- Add #error guard for unsupported RP2040 SPI Ethernet type
2026-03-18 17:39:50 -10:00
J. Nick Koston f83a2768b6 Merge remote-tracking branch 'upstream/add-enc28j60-ethernet' into integration 2026-03-18 17:32:38 -10:00
J. Nick Koston 82348af414 [ethernet] Address review feedback
- Remove redundant ENC28J60lwIP.h include (already included via header)
- Fix misleading duplex mode comment for ENC28J60
2026-03-18 17:31:38 -10:00
J. Nick Koston c752c023a4 [ethernet] Add ENC28J60 SPI Ethernet support for ESP32 and RP2040 2026-03-18 17:14:43 -10:00
J. Nick Koston a771431126 Merge branch 'inline-calculate-looping-components' into integration 2026-03-18 16:27:41 -10:00
J. Nick Koston bd91d4831e Merge remote-tracking branch 'upstream/preferences-compile-out-loop' into integration 2026-03-18 16:27:36 -10:00
J. Nick Koston da2f86bfab fix 2026-03-18 16:27:21 -10:00
J. Nick Koston 196586bd29 [core] Inline calculate_looping_components_ into header
Move calculate_looping_components_() from application.cpp to
application.h as an inline method. This function has only one
caller (setup()) and is small enough for the compiler to inline,
saving ~20 bytes of flash by eliminating the function call overhead.
2026-03-18 16:25:20 -10:00