diff --git a/esphome/dashboard/web_server.py b/esphome/dashboard/web_server.py index 67712da9b6..ac19f5f079 100644 --- a/esphome/dashboard/web_server.py +++ b/esphome/dashboard/web_server.py @@ -51,7 +51,7 @@ from .util.text import friendly_name_slugify if TYPE_CHECKING: from requests import Response - +import voluptuous as vol _LOGGER = logging.getLogger(__name__) @@ -599,6 +599,19 @@ class DownloadListRequestHandler(BaseHandler): self.send_error(404) return + config = yaml_util.load_yaml(settings.rel_path(configuration)) + + if const.CONF_EXTERNAL_COMPONENTS in config: + from esphome.components.external_components import ( + do_external_components_pass, + ) + + try: + do_external_components_pass(config) + except vol.Invalid: + self.send_error(404) + return + from esphome.components.esp32 import VARIANTS as ESP32_VARIANTS downloads = []