From da7e9f3ab6bfcbc9fba07174e88a7ea56c950335 Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Tue, 6 May 2025 19:30:48 +0200 Subject: [PATCH] Ensure all default MQTT subentry option values are saved (#144347) * Ensure all default MQTT subentry option values are saved * Apply correct filter --- homeassistant/components/mqtt/config_flow.py | 12 +++++++++--- tests/components/mqtt/common.py | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/mqtt/config_flow.py b/homeassistant/components/mqtt/config_flow.py index 0ccf7468cbf..d83b88540b2 100644 --- a/homeassistant/components/mqtt/config_flow.py +++ b/homeassistant/components/mqtt/config_flow.py @@ -1490,8 +1490,11 @@ def subentry_schema_default_data_from_fields( return { key: field.default for key, field in data_schema_fields.items() - if field.is_schema_default - or (field.default is not vol.UNDEFINED and key not in component_data) + if _check_conditions(field, component_data) + and ( + field.is_schema_default + or (field.default is not vol.UNDEFINED and key not in component_data) + ) } @@ -2317,7 +2320,10 @@ class MQTTSubentryFlowHandler(ConfigSubentryFlow): for component_data in self._subentry_data["components"].values(): platform = component_data[CONF_PLATFORM] subentry_default_data = subentry_schema_default_data_from_fields( - PLATFORM_ENTITY_FIELDS[platform] | COMMON_ENTITY_FIELDS, component_data + COMMON_ENTITY_FIELDS + | PLATFORM_ENTITY_FIELDS[platform] + | PLATFORM_MQTT_FIELDS[platform], + component_data, ) component_data.update(subentry_default_data) diff --git a/tests/components/mqtt/common.py b/tests/components/mqtt/common.py index 3c017de89f4..f0952e7f821 100644 --- a/tests/components/mqtt/common.py +++ b/tests/components/mqtt/common.py @@ -179,6 +179,10 @@ MOCK_SUBENTRY_LIGHT_BASIC_KELVIN_COMPONENT = { "state_topic": "test-topic", "color_temp_kelvin": True, "state_value_template": "{{ value_json.value }}", + "brightness_scale": 255, + "max_kelvin": 6535, + "min_kelvin": 2000, + "white_scale": 255, "entity_picture": "https://example.com/8131babc5e8d4f44b82e0761d39091a2", }, }