From 7c884329eb570214aff952a597e8922312b7df4b Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Tue, 21 Sep 2021 06:34:56 +0200 Subject: [PATCH] Fix MDNS not registered (#2359) --- esphome/components/mdns/__init__.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/esphome/components/mdns/__init__.py b/esphome/components/mdns/__init__.py index ec568ae2d5..c0c0865643 100644 --- a/esphome/components/mdns/__init__.py +++ b/esphome/components/mdns/__init__.py @@ -1,3 +1,4 @@ +from esphome.const import CONF_ID import esphome.codegen as cg import esphome.config_validation as cv from esphome.core import CORE @@ -5,11 +6,26 @@ 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.Schema( - { - cv.Optional(CONF_DISABLED, default=False): cv.boolean, - } +CONFIG_SCHEMA = cv.All( + cv.Schema( + { + cv.GenerateID(): cv.declare_id(MDNSComponent), + cv.Optional(CONF_DISABLED, default=False): cv.boolean, + } + ), + _remove_id_if_disabled, ) @@ -23,3 +39,6 @@ async def to_code(config): 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)