From 29a6361df37b8e8f0742e5da884abd049bcfa247 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 7 Apr 2026 13:56:46 -1000 Subject: [PATCH] [mdns] Wrap raw port values in lambda in mdns_service() public API --- esphome/components/mdns/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/esphome/components/mdns/__init__.py b/esphome/components/mdns/__init__.py index 0d535d6970..6f08887db8 100644 --- a/esphome/components/mdns/__init__.py +++ b/esphome/components/mdns/__init__.py @@ -131,6 +131,13 @@ def mdns_service( Returns: A StructInitializer representing a MDNSService struct """ + # Wrap port in a stateless lambda for TemplatableFn storage + from esphome.cpp_generator import LambdaExpression + + if not isinstance(port, LambdaExpression): + port = LambdaExpression( + f"return {cg.safe_exp(port)};", [], capture="", return_type=cg.uint16 + ) return cg.StructInitializer( MDNSService, ("service_type", cg.RawExpression(f"MDNS_STR({cg.safe_exp(service)})")),