From 0cadca9c473bcbc64965534c75d60d23ac0ca102 Mon Sep 17 00:00:00 2001 From: Ryan Wagoner Date: Wed, 18 Feb 2026 14:11:25 -0500 Subject: [PATCH] Default fan_mode to AUTO when supported but unset Empty string is not a valid fan_mode value. When the climate supports fan modes but no value has been set yet, default to AUTO. --- esphome/components/web_server/web_server.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/esphome/components/web_server/web_server.cpp b/esphome/components/web_server/web_server.cpp index 1288fb882a..47598456c3 100644 --- a/esphome/components/web_server/web_server.cpp +++ b/esphome/components/web_server/web_server.cpp @@ -1564,7 +1564,8 @@ std::string WebServer::climate_json_(climate::Climate *obj, JsonDetail start_con } if (traits.get_supports_fan_modes()) { root[ESPHOME_F("fan_mode")] = - obj->fan_mode.has_value() ? PSTR_LOCAL(climate_fan_mode_to_string(obj->fan_mode.value())) : ""; + obj->fan_mode.has_value() ? PSTR_LOCAL(climate_fan_mode_to_string(obj->fan_mode.value())) + : PSTR_LOCAL(climate_fan_mode_to_string(climate::CLIMATE_FAN_AUTO)); } if (!traits.get_supported_custom_fan_modes().empty()) { if (obj->has_custom_fan_mode()) {