mirror of
https://github.com/esphome/esphome.git
synced 2026-09-15 17:18:40 +00:00
0f8419f97dba73f3c3a9d1d9609caf41cad0c0ea
Address copilot review on #15636. 1. Enforce single ESPHome OTA instance (BREAKING CHANGE). The `ota_esphome_final_validate` hook has always merged multiple `ota: - platform: esphome` configs by port so a user config and a remote package that both define OTA would merge rather than break. That merge behavior is preserved. But if two configs survive on *different* ports they produce two independent listening sockets, which is not a sane deployment: it creates ambiguity for safe_mode coordination and for the socket wake hook added in this PR. Raise cv.Invalid when more than one port remains after merging. 2. Drop redundant main-loop wake in Application::wake_ota_component_any_context. Every caller (lwip fast-select callback already calls xTaskNotifyGive, raw-tcp accept callback already calls wake_loop_any_context(), host path is already running post-select in the main loop) has woken the main loop by the time we reach this hook. Calling enable_loop_soon_any_context() would re-wake it. Application is a friend of Component, so set pending_enable_loop_ and has_pending_enable_loop_requests_ directly instead.
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
597 MiB
Languages
C++
55.8%
Python
43.6%
C
0.3%
JavaScript
0.2%
