1
0
mirror of https://github.com/esphome/esphome.git synced 2025-06-16 07:16:58 +02:00

[web_server] Fix download list where external_components has a substitution value (#8911)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Jesse Hills 2025-05-27 09:08:16 +12:00
parent 6c08f5e343
commit fdc6c4a219
No known key found for this signature in database
GPG Key ID: BEAAE804EFD8E83A

View File

@ -601,10 +601,12 @@ class DownloadListRequestHandler(BaseHandler):
loop = asyncio.get_running_loop()
try:
downloads_json = await loop.run_in_executor(None, self._get, configuration)
except vol.Invalid:
except vol.Invalid as exc:
_LOGGER.exception("Error while fetching downloads", exc_info=exc)
self.send_error(404)
return
if downloads_json is None:
_LOGGER.error("Configuration %s not found", configuration)
self.send_error(404)
return
self.set_status(200)
@ -618,14 +620,17 @@ class DownloadListRequestHandler(BaseHandler):
if storage_json is None:
return None
config = yaml_util.load_yaml(settings.rel_path(configuration))
try:
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,
)
if const.CONF_EXTERNAL_COMPONENTS in config:
from esphome.components.external_components import (
do_external_components_pass,
)
do_external_components_pass(config)
do_external_components_pass(config)
except vol.Invalid:
_LOGGER.info("Could not parse `external_components`, skipping")
from esphome.components.esp32 import VARIANTS as ESP32_VARIANTS