예제 #1
0
    def run_esptool(baud_rate):
        cmd = [
            "esptool.py",
            "--before",
            "default_reset",
            "--after",
            "hard_reset",
            "--baud",
            str(baud_rate),
            "--chip",
            "esp8266",
            "--port",
            port,
            "write_flash",
            "0x0",
            path,
        ]

        if os.environ.get("ESPHOME_USE_SUBPROCESS") is None:
            import esptool

            # pylint: disable=protected-access
            return run_external_command(esptool._main, *cmd)

        return run_external_process(*cmd)
예제 #2
0
def run_platformio_cli(*args, **kwargs):
    os.environ["PLATFORMIO_FORCE_COLOR"] = "true"
    cmd = ['platformio'] + list(args)

    if os.environ.get('ESPHOME_USE_SUBPROCESS') is None:
        import platformio.__main__
        return run_external_command(platformio.__main__.main, *cmd, **kwargs)

    return run_external_process(*cmd, **kwargs)
예제 #3
0
    def run_esptool(baud_rate):
        cmd = ['esptool.py', '--before', 'default_reset', '--after', 'hard_reset',
               '--baud', str(baud_rate),
               '--chip', 'esp8266', '--port', port, 'write_flash', '0x0', path]

        if os.environ.get('ESPHOME_USE_SUBPROCESS') is None:
            import esptool
            # pylint: disable=protected-access
            return run_external_command(esptool._main, *cmd)

        return run_external_process(*cmd)
예제 #4
0
def upload_using_esptool(config, port):
    path = CORE.firmware_bin
    cmd = ['esptool.py', '--before', 'default_reset', '--after', 'hard_reset',
           '--chip', 'esp8266', '--port', port, 'write_flash', '0x0', path]

    if os.environ.get('ESPHOME_USE_SUBPROCESS') is None:
        import esptool
        # pylint: disable=protected-access
        return run_external_command(esptool._main, *cmd)

    return run_external_process(*cmd)
예제 #5
0
def run_platformio_cli(*args, **kwargs):
    os.environ["PLATFORMIO_FORCE_COLOR"] = "true"
    os.environ["PLATFORMIO_BUILD_DIR"] = os.path.abspath(
        CORE.relative_pioenvs_path())
    os.environ["PLATFORMIO_LIBDEPS_DIR"] = os.path.abspath(
        CORE.relative_piolibdeps_path())
    cmd = ['platformio'] + list(args)

    if os.environ.get('ESPHOME_USE_SUBPROCESS') is not None:
        return run_external_process(*cmd, **kwargs)

    import platformio.__main__
    patch_structhash()
    return run_external_command(platformio.__main__.main, *cmd, **kwargs)
예제 #6
0
    def run_esptool(baud_rate):
        idedata = platformio_api.get_idedata(config)

        firmware_offset = "0x10000" if CORE.is_esp32 else "0x0"
        flash_images = [
            platformio_api.FlashImage(
                path=idedata.firmware_bin_path,
                offset=firmware_offset,
            ),
            *idedata.extra_flash_images,
        ]

        mcu = "esp8266"
        if CORE.is_esp32:
            from esphome.components.esp32 import get_esp32_variant

            mcu = get_esp32_variant().lower()

        cmd = [
            "esptool.py",
            "--before",
            "default_reset",
            "--after",
            "hard_reset",
            "--baud",
            str(baud_rate),
            "--port",
            port,
            "--chip",
            mcu,
            "write_flash",
            "-z",
            "--flash_size",
            "detect",
        ]
        for img in flash_images:
            cmd += [img.offset, img.path]

        if os.environ.get("ESPHOME_USE_SUBPROCESS") is None:
            import esptool

            # pylint: disable=protected-access
            return run_external_command(esptool._main, *cmd)

        return run_external_process(*cmd)
예제 #7
0
def run_platformio_cli(*args, **kwargs) -> Union[str, int]:
    os.environ["PLATFORMIO_FORCE_COLOR"] = "true"
    os.environ["PLATFORMIO_BUILD_DIR"] = os.path.abspath(CORE.relative_pioenvs_path())
    os.environ.setdefault(
        "PLATFORMIO_LIBDEPS_DIR", os.path.abspath(CORE.relative_piolibdeps_path())
    )
    cmd = ["platformio"] + list(args)

    if not CORE.verbose:
        kwargs["filter_lines"] = FILTER_PLATFORMIO_LINES

    if os.environ.get("ESPHOME_USE_SUBPROCESS") is not None:
        return run_external_process(*cmd, **kwargs)

    import platformio.__main__

    patch_structhash()
    return run_external_command(platformio.__main__.main, *cmd, **kwargs)
예제 #8
0
def run_platformio_cli(*args, **kwargs):
    os.environ["PLATFORMIO_FORCE_COLOR"] = "true"
    os.environ["PLATFORMIO_BUILD_DIR"] = os.path.abspath(
        CORE.relative_pioenvs_path())
    os.environ["PLATFORMIO_LIBDEPS_DIR"] = os.path.abspath(
        CORE.relative_piolibdeps_path())
    cmd = ['platformio'] + list(args)

    if os.environ.get('ESPHOME_USE_SUBPROCESS') is None:
        import platformio.__main__
        try:
            if IS_PY2:
                patch_structhash()
        except Exception:  # pylint: disable=broad-except
            # Ignore when patch fails
            pass
        return run_external_command(platformio.__main__.main, *cmd, **kwargs)

    return run_external_process(*cmd, **kwargs)