1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-04 12:22:20 +01:00

validate dfu

This commit is contained in:
Tomasz Duda
2024-02-15 23:54:03 +01:00
parent 752b7a2b36
commit cfe64c1e07

View File

@@ -7,6 +7,7 @@ from esphome.const import (
from esphome.core import CORE from esphome.core import CORE
from esphome.components.zephyr import zephyr_add_prj_conf from esphome.components.zephyr import zephyr_add_prj_conf
import esphome.final_validate as fv
dfu_ns = cg.esphome_ns.namespace("dfu") dfu_ns = cg.esphome_ns.namespace("dfu")
DeviceFirmwareUpdate = dfu_ns.class_("DeviceFirmwareUpdate", cg.Component) DeviceFirmwareUpdate = dfu_ns.class_("DeviceFirmwareUpdate", cg.Component)
@@ -24,6 +25,21 @@ CONFIG_SCHEMA = cv.All(
) )
# TODO move this to common place with OTA
def _validate_mcumgr(config):
if CORE.using_zephyr:
fconf = fv.full_config.get()
try:
bootloader = fconf.get_config_for_path(["nrf52", "bootloader"])
if bootloader != "adafruit":
raise cv.Invalid(f"'{bootloader}' bootloader does not support DFU")
except KeyError:
pass
FINAL_VALIDATE_SCHEMA = _validate_mcumgr
async def to_code(config): async def to_code(config):
var = cg.new_Pvariable(config[CONF_ID]) var = cg.new_Pvariable(config[CONF_ID])
reset_output = await cg.get_variable(config[CONF_RESET_OUTPUT]) reset_output = await cg.get_variable(config[CONF_RESET_OUTPUT])