def compile_program(args, config): from esphome import platformio_api _LOGGER.info("Compiling app...") rc = platformio_api.run_compile(config, CORE.verbose) if rc != 0: return rc idedata = platformio_api.get_idedata(config) return 0 if idedata is not None else 1
def command_idedata(args, config): from esphome import platformio_api import json logging.disable(logging.INFO) logging.disable(logging.WARNING) idedata = platformio_api.get_idedata(config) if idedata is None: return 1 print(json.dumps(idedata.raw, indent=2) + "\n") return 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)