diff --git a/esphome/components/openthread/__init__.py b/esphome/components/openthread/__init__.py index 5277455eca..4865399d02 100644 --- a/esphome/components/openthread/__init__.py +++ b/esphome/components/openthread/__init__.py @@ -107,6 +107,14 @@ _CONNECTION_SCHEMA = cv.Schema( } ) + +def _require_vfs_select(config): + """Register VFS select requirement during config validation.""" + # OpenThread uses esp_vfs_eventfd which requires VFS select support + require_vfs_select() + return config + + CONFIG_SCHEMA = cv.All( cv.Schema( { @@ -123,6 +131,7 @@ CONFIG_SCHEMA = cv.All( cv.has_exactly_one_key(CONF_NETWORK_KEY, CONF_TLV), cv.only_with_esp_idf, only_on_variant(supported=[VARIANT_ESP32C6, VARIANT_ESP32H2]), + _require_vfs_select, ) @@ -142,9 +151,6 @@ FINAL_VALIDATE_SCHEMA = _final_validate async def to_code(config): cg.add_define("USE_OPENTHREAD") - # OpenThread uses esp_vfs_eventfd which requires VFS select support - require_vfs_select() - # OpenThread SRP needs access to mDNS services after setup enable_mdns_storage()