From 820afea83a94a4dc3926ffdcf08fd5e48485c5ae Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 10 Feb 2026 06:06:54 -0600 Subject: [PATCH] Fix publish action skipping away: false and is_on: false The walrus operator treats false as falsy, so publishing away: false or is_on: false was silently ignored. Use key presence check instead. --- esphome/components/template/water_heater/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/esphome/components/template/water_heater/__init__.py b/esphome/components/template/water_heater/__init__.py index 9978e945ca..71f98c826a 100644 --- a/esphome/components/template/water_heater/__init__.py +++ b/esphome/components/template/water_heater/__init__.py @@ -156,12 +156,12 @@ async def water_heater_template_publish_to_code( template_ = await cg.templatable(mode, args, water_heater.WaterHeaterMode) cg.add(var.set_mode(template_)) - if away := config.get(CONF_AWAY): - template_ = await cg.templatable(away, args, bool) + if CONF_AWAY in config: + template_ = await cg.templatable(config[CONF_AWAY], args, bool) cg.add(var.set_away(template_)) - if is_on := config.get(CONF_IS_ON): - template_ = await cg.templatable(is_on, args, bool) + if CONF_IS_ON in config: + template_ = await cg.templatable(config[CONF_IS_ON], args, bool) cg.add(var.set_is_on(template_)) return var