J. Nick Koston
1be3e07679
Merge branch 'ld2412-inline-setters' into integration
2026-03-18 12:45:29 -10:00
J. Nick Koston
dd44e92cb8
[ld2412] Inline trivial gate threshold number setters
...
Move set_gate_move_threshold_number and set_gate_still_threshold_number
definitions into the header. These are single-line array assignments
called 14 times each (once per gate), and inlining them eliminates
function call overhead, saving ~52 bytes of flash.
2026-03-18 12:45:01 -10:00
J. Nick Koston
1f2cbc3b34
Merge remote-tracking branch 'upstream/dev' into integration
2026-03-18 12:39:05 -10:00
Kevin Ahrendt
9f4c773963
[media_source] Add request helpers for smart sources ( #14936 )
2026-03-18 12:34:16 -10:00
Kevin Ahrendt
ef0eef8117
[const] Move shared volume constants to components/const ( #14935 )
2026-03-18 21:57:33 +00:00
Jonathan Swoboda
097e6eb41f
[i2s_audio] Remove legacy I2S driver support ( #14932 )
2026-03-18 11:42:56 -10:00
J. Nick Koston
12b8805878
Merge remote-tracking branch 'origin/api-psk-sbo-fix' into integration
2026-03-18 11:10:41 -10:00
J. Nick Koston
405bb60b0d
Merge remote-tracking branch 'origin/ota-sbo-fix' into integration
2026-03-18 11:10:31 -10:00
J. Nick Koston
c9e96fc848
Merge branch 'dev' into ota-sbo-fix
2026-03-18 10:59:17 -10:00
J. Nick Koston
7cc3bf6425
[ota] Move notify_state_deferred_ out of header to avoid inlining at 8 call sites
2026-03-18 10:54:46 -10:00
J. Nick Koston
8ee6392b01
[ota] Add static_assert for OTAState packing assumption
2026-03-18 10:45:57 -10:00
Jonathan Swoboda
73a49493a2
[vbus][shelly_dimmer][st7789v][modbus_controller] Fix integer overflows, off-by-one, and coordinate swap ( #14916 )
2026-03-18 16:43:42 -04:00
Jonathan Swoboda
4a93d5b544
[vl53l0x][ld2420][ble_client][inkplate] Fix state corruption, crash, OOB read, and shift UB ( #14919 )
2026-03-18 16:42:53 -04:00
J. Nick Koston
d06c81fb0f
Remove unused active_psk parameter from update_noise_psk_
...
Now that the timeout lambda re-reads from preferences instead of
capturing the PSK, the active_psk parameter is no longer used.
2026-03-18 10:42:35 -10:00
Jonathan Swoboda
cc0655a904
[bedjet][light][i2s_audio][ld2412] Fix uninitialized pointers, div-by-zero, and buffer validation ( #14925 )
2026-03-18 16:42:13 -04:00
J. Nick Koston
0959c35753
Merge remote-tracking branch 'upstream/float-to-raw-optimization' into integration
2026-03-18 10:30:22 -10:00
Jesse Hills
a859cb3cce
Merge branch 'beta' into dev
2026-03-19 09:20:26 +13:00
Jesse Hills
9e4e2d78dc
Merge pull request #14926 from esphome/bump-2026.3.0b5
...
2026.3.0b5
2026.3.0b5
2026-03-19 09:19:50 +13:00
J. Nick Koston
85be827bb0
Use union instead of memcpy in float_to_raw — xtensa-gcc doesn't optimize memcpy in all contexts
2026-03-18 10:16:37 -10:00
J. Nick Koston
e7d1d08fa1
Use memcpy instead of __builtin_bit_cast for ESP8266 compat
2026-03-18 10:12:04 -10:00
J. Nick Koston
856a0b0c83
[api] Use integer comparison for float zero checks in protobuf encoding
...
Replace floating-point comparison (value != 0.0f) with integer bit-pattern
check via a shared float_to_raw() helper in both encode_float() and
calc_float(). This avoids software float library calls on platforms without
hardware FPU (ESP8266, some LibreTiny chips) and ensures both functions
use identical zero-check logic so size calculation always matches encoding.
2026-03-18 10:04:59 -10:00
J. Nick Koston
80192ad0d0
Merge remote-tracking branch 'upstream/remove-call-loop-wrapper' into integration
2026-03-18 09:58:33 -10:00
J. Nick Koston and Copilot Autofix powered by AI
273419a237
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-18 09:51:59 -10:00
J. Nick Koston and Copilot Autofix powered by AI
97f2fa7e9d
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-18 09:51:25 -10:00
J. Nick Koston
810f2f4b0d
Remove call_loop_ wrapper and call loop() directly
2026-03-18 09:50:22 -10:00
Jonathan Swoboda
47909d5299
[hub75] Bump esp-hub75 to 0.3.5 ( #14915 )
2026-03-18 09:47:14 -10:00
J. Nick Koston
d5731b3700
Merge remote-tracking branch 'upstream/dev' into integration
2026-03-18 09:45:16 -10:00
J. Nick Koston
fc03e7d2cd
Merge remote-tracking branch 'upstream/callback-drop-captures' into integration
2026-03-18 09:44:58 -10:00
dependabot[bot]
16667bf5be
Bump aioesphomeapi from 44.5.2 to 44.6.0 ( #14927 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-18 09:39:26 -10:00
dependabot[bot]
ef3afe3e21
Bump codecov/codecov-action from 5.5.2 to 5.5.3 ( #14928 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-18 09:33:29 -10:00
dependabot[bot]
3a47317fc8
Bump actions/cache from 5.0.3 to 5.0.4 in /.github/actions/restore-python ( #14930 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-18 09:33:15 -10:00
dependabot[bot]
89066e3e20
Bump actions/cache from 5.0.3 to 5.0.4 ( #14929 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-18 09:33:00 -10:00
Jesse Hills
af9366fdd4
Bump version to 2026.3.0b5
2026-03-19 08:19:26 +13:00
J. Nick Koston
448402ca2c
[http_request] Fix data race on update_info_ strings in update task ( #14909 )
2026-03-19 08:19:26 +13:00
Jonathan Swoboda
fc67551edc
[tc74][apds9960] Fix signed temperature and FIFO register address ( #14907 )
2026-03-19 08:19:26 +13:00
Jonathan Swoboda
98d3dce672
[voice_assistant][micro_wake_word] Fix null deref and missing error return ( #14906 )
2026-03-19 08:19:26 +13:00
Jonathan Swoboda
4cb93d4df8
[sensor][ee895][hdc2010] Fix misc bugs found during component scan ( #14890 )
2026-03-19 08:19:18 +13:00
Jonathan Swoboda
91e66cfd9d
[gree] Fix IR checksum for YAA/YAC/YAC1FB9/GENERIC models ( #14888 )
2026-03-19 08:17:03 +13:00
Jonathan Swoboda
6cf32af33f
[seeed_mr24hpc1] Fix frame parser length handling bugs ( #14863 )
2026-03-19 08:17:03 +13:00
J. Nick Koston
33e646cedf
[core] Store parent pointer as member to enable inline Callback storage
...
Callback::create() can store callables inline (no heap allocation)
when they fit in sizeof(void*) — i.e., a single [this] capture on
32-bit platforms. Many automation triggers captured [this, parent]
in their callback lambdas, doubling the capture size and forcing
heap allocation.
Store the parent/state pointer as a class member and capture only
[this] in the lambda. This trades 4 bytes of member storage for
avoiding a permanent heap allocation per callback registration.
Components changed: cover, valve, lock, fan, media_player, datetime,
display_menu_base, graphical_display_menu, esp32_improv, mqtt_fan.
2026-03-18 09:05:18 -10:00
J. Nick Koston
9498c554bf
[ota] Pack deferred state args into uint32 to avoid heap allocation
...
The notify_state_deferred_ lambda captured [this, state, progress, error]
(16 bytes on 32-bit), exceeding std::function SBO and forcing a heap
allocation on every OTA progress update.
Pack the three values into a single uint32_t:
- state (8 bits) + error (8 bits) + progress as fixed-point (16 bits)
The lambda now captures [this, packed] (8 bytes), fitting in SBO.
Progress resolution of 0.01% is more than adequate for OTA reporting.
2026-03-18 08:52:44 -10:00
J. Nick Koston
3187ab9208
[api] Avoid heap allocation in PSK update timeout lambda
...
The set_timeout lambda captured a psk_t (std::array<uint8_t, 32>) by
value, making the lambda 36 bytes — well beyond the std::function
small buffer optimization threshold, forcing a heap allocation.
Re-read the PSK from preferences inside the timeout callback instead.
The PSK was just saved to flash moments before the timeout was
scheduled, so re-reading it is reliable and avoids the large capture.
Extract load_and_apply_noise_psk_() helper to deduplicate the
load-from-preferences-and-apply pattern used in both setup() and
the timeout callback.
2026-03-18 08:47:34 -10:00
J. Nick Koston
9a80c980cb
[scheduler] Early exit cancel path after first match ( #14902 )
2026-03-18 07:48:26 -10:00
J. Nick Koston
c9e6c85e6a
[scheduler] Inline fast-path checks into header ( #14905 )
2026-03-18 07:48:11 -10:00
J. Nick Koston
e88c9ba066
[core] Inline progmem_read functions on non-ESP8266 platforms ( #14913 )
2026-03-18 07:47:42 -10:00
J. Nick Koston
45be290392
[ci] Bump Python to 3.14 in sync-device-classes workflow ( #14912 )
2026-03-18 07:47:17 -10:00
J. Nick Koston
3f28ab88ca
[http_request] Fix data race on update_info_ strings in update task ( #14909 )
2026-03-18 07:46:18 -10:00
Jonathan Swoboda
1d07f37d62
[opentherm] Migrate from legacy timer API to GPTimer API ( #14859 )
2026-03-18 09:22:28 -04:00
Jonathan Swoboda
16c5224341
[tc74][apds9960] Fix signed temperature and FIFO register address ( #14907 )
2026-03-18 07:48:43 -04:00
J. Nick Koston
8120fce094
Merge remote-tracking branch 'upstream/fix-http-request-update-double-launch-v2' into integration
2026-03-17 19:57:26 -10:00