J. Nick Koston
e158cd2de2
Treat a UDP send failure on the last chunk like a lost final ack
...
Surface a device error code waiting on the channel, and do not retry once
the whole image was queued, since the device may already be committing.
2026-10-10 15:43:59 -10:00
J. Nick Koston
959ddfdc6e
Merge remote-tracking branch 'origin/ota-udp-transport' into ota-udp-transport
2026-10-10 15:37:02 -10:00
J. Nick Koston
0e6b966352
Back the UDP resend timer off while acks come back untimed
...
On a slow, congested link every message was resent before its ack came back,
so no round trip could be timed and the timer stayed at 0.5 s: 16 datagrams per
message. Eight progress acks in a row with no timed round trip now double the
timer, up to its 2 s cap, until a sample resets it. Random loss still yields
samples, so it never triggers there.
2026-10-10 15:36:50 -10:00
J. Nick Koston
ec3ec4155d
Merge branch 'dev' into ota-udp-transport
2026-10-10 13:27:11 -10:00
J. Nick Koston
d0fc2c182e
Count Windows' reset as a refused UDP port
2026-10-10 13:22:31 -10:00
J. Nick Koston
e5fe8cc351
Fail fast when the device's UDP port refuses, include <algorithm>
2026-10-10 13:17:06 -10:00
J. Nick Koston
5faadcdbf8
Log every UDP decline, report a client close in the commit wait, fall back when the UDP socket fails
2026-10-10 13:09:24 -10:00
J. Nick Koston
00955d449a
Cover the UDP client paths in the espota2 unit tests
2026-10-10 13:06:14 -10:00
J. Nick Koston
bfa0a5fc94
Add host UDP support with end to end tests, surface device errors over UDP
...
The host platform now offers UDP through a socket drained by the wait
loops, so the host OTA integration tests cover UDP with loss, the TCP
fallback, a device error mid upload and Noise. Over UDP the device no
longer waits for the final ack, the client stops and reads a device error
as soon as one arrives, socket errors are named in the no progress error,
and the device notices the commit within 100 ms. LibreTiny without core
locking drops the UDP code at build time.
2026-10-10 12:56:41 -10:00
J. Nick Koston
54b34edf2d
[ota] Fall back to a UDP data phase when the link is lossy
...
TCP gives up on links that lose many packets: retransmit timers back off and
the connection drops, so devices on poor Wi-Fi cannot be updated without being
moved. After the TCP handshake, a client that saw loss moves the upload to a
UDP byte stream that the device acks from lwIP's receive callback as datagrams
arrive, keeping at most four of them like TCP's window. Clean links stay on
TCP; blocked UDP falls back to TCP.
2026-10-10 12:15:36 -10:00
78d3b9f5a1
[nrf52] Fix BLE OTA/log device discovery & transport selection on macOS ( #17101 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-10 21:17:01 +00:00
J. Nick Koston
4ba0e1bfa2
[core] Fix the native ESP8266 and host builds on Windows without ccache ( #20468 )
2026-10-10 07:39:49 -10:00
jabla
f4fbc3215d
[espidf] Clean the build when the IDF target changes ( #20473 )
2026-10-10 07:28:40 -10:00
J. Nick Koston
dd45f8a6f8
[usb_host] Warn instead of failing when a device duplicates a usb_uart entry ( #20373 )
2026-10-09 16:38:05 -10:00
J. Nick Koston and pre-commit-ci-lite[bot]
41cc96bbb8
[light] Keep the effect list in a flash table ( #20204 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-10-09 15:55:09 -10:00
J. Nick Koston
073394b1eb
[core] Let a trigger filter name its parent with {parent} ( #20448 )
2026-10-09 15:43:22 -10:00
J. Nick Koston
59963dd246
[espidf] Declare the map byproduct only when IDF has not ( #20462 )
2026-10-09 15:38:16 -10:00
Bascht74
4e4056d790
[uart] Share uart_tcp's write pacing and uart_id matcher ( #20464 )
2026-10-09 15:11:48 -10:00
J. Nick Koston
76ba7f0c88
[espidf] Cache the discovered component list once per target ( #20432 )
2026-10-09 09:10:06 -10:00
J. Nick Koston
822bbb85dc
[core] Build trigger callbacks as stateless lambdas ( #19606 )
2026-10-09 08:50:32 -10:00
J. Nick Koston
daea315b13
[nrf52] Fake a larger flash in testing mode ( #20439 )
2026-10-09 08:36:42 -10:00
J. Nick Koston
6a463c801e
[ci] Stop the toolchain tests from installing ESP-IDF ( #20413 )
2026-10-08 21:42:45 -04:00
Kevin Ahrendt and J. Nick Koston
e395e626ec
[api][sendspin] Add a request for the Sendspin pairing token ( #20355 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-10-08 19:12:20 +00:00
J. Nick Koston
e51e0e683f
[esp8266] Force-include the throw stubs into the core and libraries on the native toolchain ( #20336 )
2026-10-08 06:06:45 -10:00
J. Nick Koston
f5e4c0356f
[core] Move zstd_module from the api wizard to esphome.helpers ( #20342 )
2026-10-08 11:08:38 -04:00
Jesse Hills
73bbd75d3f
[core] Let cv.rename_key pass non-dict input through ( #20331 )
2026-10-08 17:29:56 +13:00
J. Nick Koston
0a7763d902
[esp8266] Normalize misspelled boards and fall back to PlatformIO for unknown ones ( #20322 )
2026-10-08 17:05:18 +13:00
J. Nick Koston
7aeed8455e
[api] Add a progmem option for bytes fields kept in flash ( #20318 )
2026-10-08 16:24:27 +13:00
J. Nick Koston
8eba5a1c28
[core] Warn on every run that Intel Mac support ends by 2027.6.0 ( #20303 )
2026-10-08 16:23:01 +13:00
J. Nick Koston
0323fd36d4
[core] Clone git PlatformIO packages in parallel in the prefetch ( #18837 )
2026-10-08 09:00:07 +13:00
Jesse Hills and J. Nick Koston
6f940a486b
[api] Add a device wizard for Home Assistant onboarding ( #19966 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-07 09:49:31 -10:00
TheSwert
2560a4436e
[audio_http][core] Add ca_certificate_path to audio_http media source ( #19392 )
2026-10-07 09:28:10 -10:00
Clyde Stubbs and Claude Sonnet 5
6dec759261
[core] Select I/O expander pin providers by I2C address ( #18939 )
...
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
2026-10-07 09:18:40 -10:00
678975b6b2
[usb_host] iManufacturer and iProduct descriptor filters ( #19095 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
Co-authored-by: Keith Burzinski <kbx81x@gmail.com >
2026-10-07 13:25:28 -05:00
J. Nick Koston
cf96c53279
[espnow] Keep constant send payloads in shared flash tables ( #20271 )
2026-10-07 05:40:12 -10:00
Francesco Pace
923700dcc9
[espectre] Add Wi-Fi CSI motion detection component ( #19801 )
2026-10-06 19:46:06 -05:00
Clyde Stubbs
e68a499429
[motion] Add gesture detection ( #16787 )
2026-10-06 15:57:20 -05:00
J. Nick Koston
4eeb110247
[esp32] Extract prefetched ESP-IDF tool archives in parallel ( #18841 )
2026-10-07 09:26:46 +13:00
J. Nick Koston
417fdd9dc7
[nrf52] Share the ccache between devices ( #20028 )
2026-10-05 10:53:35 -05:00
Jonathan Swoboda
00303fb72b
[esp32][api][noise] Resolve arduino's libsodium requirement to the converted esphome/libsodium ( #20185 )
2026-10-05 09:55:18 -04:00
Bascht74
aa02a0996a
[socket][tcp_uart][uart_tcp] Reject an IPv6 host at config time ( #20165 )
2026-10-05 08:48:33 -05:00
J. Nick Koston
4f9cd7821a
[core] Log ignored --skip-bootloader at debug level ( #20059 )
2026-10-05 12:14:42 +13:00
J. Nick Koston
63cb75726b
[noise] Use the shared PROGMEM table helper for the PSK ( #20101 )
2026-10-04 13:06:05 -05:00
J. Nick Koston
6d33b0401d
[nrf52] Use the shared managed ccache settings for the native build ( #20027 )
2026-10-02 13:28:40 -05:00
Bascht74 and J. Nick Koston
b6c79fdc9a
[socket] Share the server side as TcpListener ( #20037 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-02 13:07:00 -05:00
Bascht74 and J. Nick Koston
5def4d46ca
[socket] Add an IPv4 allow list ( #20025 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
2026-10-02 11:22:21 -05:00
J. Nick Koston
7096546d83
[nrf52] Create the precompiled header in ccache depend mode ( #20019 )
2026-10-02 15:07:13 +00:00
1440998f3c
[core] Add new options suspend_loop and loop_interval ( #18136 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@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@home-assistant.io >
2026-10-02 09:09:14 -05:00
J. Nick Koston
d970e9292e
[esphome][ota][core] Compress OTA uploads on ESP32, RP2040, LibreTiny and host ( #19037 )
2026-10-02 08:00:10 -05:00
J. Nick Koston
797682cccc
[espidf] Skip the lwip sources that compile to empty objects ( #20000 )
2026-10-02 07:59:52 -05:00