from esphome.const import CONF_ID import esphome.codegen as cg import esphome.config_validation as cv from esphome.core import CORE CODEOWNERS = ["@esphome/core"] DEPENDENCIES = ["network"] mdns_ns = cg.esphome_ns.namespace("mdns") MDNSComponent = mdns_ns.class_("MDNSComponent", cg.Component) def _remove_id_if_disabled(value): value = value.copy() if value[CONF_DISABLED]: value.pop(CONF_ID) return value CONF_DISABLED = "disabled" CONFIG_SCHEMA = cv.All( cv.Schema( { cv.GenerateID(): cv.declare_id(MDNSComponent), cv.Optional(CONF_DISABLED, default=False): cv.boolean, } ), _remove_id_if_disabled, ) async def to_code(config): if config[CONF_DISABLED]: return cg.add_define("USE_MDNS") if CORE.using_arduino: if CORE.is_esp32: cg.add_library("ESPmDNS", None) elif CORE.is_esp8266: cg.add_library("ESP8266mDNS", None) var = cg.new_Pvariable(config[CONF_ID]) await cg.register_component(var, config)