diff --git a/esphome/components/uart/__init__.py b/esphome/components/uart/__init__.py index eda7d8c792..69db4b44aa 100644 --- a/esphome/components/uart/__init__.py +++ b/esphome/components/uart/__init__.py @@ -509,10 +509,11 @@ async def uart_write_to_code(config, action_id, template_arg, args): @coroutine_with_priority(CoroPriority.FINAL) async def final_step(): """Final code generation step to configure optional UART features.""" - if CORE.is_esp32: + if CORE.is_esp32 and CORE.has_networking: # Wake-on-RX is essentially free on ESP32 (just an ISR function pointer # registration) — enable by default to reduce RX buffer overflow risk # by waking the main loop immediately when data arrives. + # Requires networking for the wake_loop_isrsafe() infrastructure. from esphome.components import socket socket.require_wake_loop_threadsafe()