1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-16 08:43:45 +01:00

[mdns] Support templatable config options for MDNS extra services (#8606)

This commit is contained in:
Nate Clark
2025-04-28 00:27:39 -04:00
committed by GitHub
parent fdc4ec8a57
commit 253e3ec6f6
9 changed files with 45 additions and 21 deletions

View File

@@ -35,8 +35,8 @@ SERVICE_SCHEMA = cv.Schema(
{
cv.Required(CONF_SERVICE): cv.string,
cv.Required(CONF_PROTOCOL): cv.string,
cv.Optional(CONF_PORT, default=0): cv.Any(0, cv.port),
cv.Optional(CONF_TXT, default={}): {cv.string: cv.string},
cv.Optional(CONF_PORT, default=0): cv.templatable(cv.Any(0, cv.port)),
cv.Optional(CONF_TXT, default={}): {cv.string: cv.templatable(cv.string)},
}
)
@@ -102,12 +102,18 @@ async def to_code(config):
for service in config[CONF_SERVICES]:
txt = [
mdns_txt_record(txt_key, txt_value)
cg.StructInitializer(
MDNSTXTRecord,
("key", txt_key),
("value", await cg.templatable(txt_value, [], cg.std_string)),
)
for txt_key, txt_value in service[CONF_TXT].items()
]
exp = mdns_service(
service[CONF_SERVICE], service[CONF_PROTOCOL], service[CONF_PORT], txt
service[CONF_SERVICE],
service[CONF_PROTOCOL],
await cg.templatable(service[CONF_PORT], [], cg.uint16),
txt,
)
cg.add(var.add_extra_service(exp))