diff --git a/esphome/__main__.py b/esphome/__main__.py index 770c1a8fcf..43b5504704 100644 --- a/esphome/__main__.py +++ b/esphome/__main__.py @@ -2,6 +2,7 @@ import argparse from datetime import datetime import functools +import importlib import logging import os import re @@ -336,6 +337,13 @@ def check_permissions(port): def upload_program(config, args, host): + try: + module = importlib.import_module("esphome.components." + CORE.target_platform) + if getattr(module, "upload_program")(config, args, host): + return 0 + except AttributeError: + pass + if get_port_type(host) == "SERIAL": check_permissions(host) if CORE.target_platform in (PLATFORM_ESP32, PLATFORM_ESP8266):