mirror of
https://github.com/esphome/esphome.git
synced 2026-09-18 02:28:42 +00:00
c43015a467253f965d1c8287a0cbf2ef89c0a699
Replace the non-blocking poll + delay(1) pattern in OTA data transfer with SO_RCVTIMEO blocking reads. The socket now wakes immediately when data arrives instead of sleeping 1ms between polls. Adds SO_RCVTIMEO support to the raw TCP socket implementation (ESP8266, RP2040) using the existing socket_delay()/socket_wake() infrastructure. The timeout is stored as a uint8_t in centiseconds, fitting in existing struct padding with zero RAM cost. Tested OTA improvements across platforms: - ESP32-S3: ~15% faster (6.96-7.76s -> 5.87-6.60s) - LibreTiny RTL: 24% faster (18.84s -> 14.33s) - LibreTiny BK72xx: 56% faster (55.52s -> 24.38s) - ESP8266: ~1% faster (compressed OTA, already efficient)
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme
Multiple Licenses
598 MiB
Languages
C++
55.7%
Python
43.7%
C
0.3%
JavaScript
0.2%
