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:
@@ -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))
|
||||
|
Reference in New Issue
Block a user