From c8fb86a8ed6c1de310a1cc394780522f4ec8c3ba Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Mon, 14 Mar 2022 12:39:44 +0100 Subject: [PATCH] Fix MQTT false positive deprecation warnings (#68117) --- homeassistant/components/mqtt/__init__.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/mqtt/__init__.py b/homeassistant/components/mqtt/__init__.py index 96074acab37..c74417ece37 100644 --- a/homeassistant/components/mqtt/__init__.py +++ b/homeassistant/components/mqtt/__init__.py @@ -130,6 +130,13 @@ DEFAULT_KEEPALIVE = 60 DEFAULT_PROTOCOL = PROTOCOL_311 DEFAULT_TLS_PROTOCOL = "auto" +DEFAULT_VALUES = { + CONF_PORT: DEFAULT_PORT, + CONF_WILL_MESSAGE: DEFAULT_WILL, + CONF_BIRTH_MESSAGE: DEFAULT_BIRTH, + CONF_DISCOVERY: DEFAULT_DISCOVERY, +} + ATTR_TOPIC_TEMPLATE = "topic_template" ATTR_PAYLOAD_TEMPLATE = "payload_template" @@ -186,7 +193,7 @@ CONFIG_SCHEMA_BASE = vol.Schema( vol.Coerce(int), vol.Range(min=15) ), vol.Optional(CONF_BROKER): cv.string, - vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, + vol.Optional(CONF_PORT): cv.port, vol.Optional(CONF_USERNAME): cv.string, vol.Optional(CONF_PASSWORD): cv.string, vol.Optional(CONF_CERTIFICATE): vol.Any("auto", cv.isfile), @@ -203,9 +210,9 @@ CONFIG_SCHEMA_BASE = vol.Schema( vol.Optional(CONF_PROTOCOL, default=DEFAULT_PROTOCOL): vol.All( cv.string, vol.In([PROTOCOL_31, PROTOCOL_311]) ), - vol.Optional(CONF_WILL_MESSAGE, default=DEFAULT_WILL): MQTT_WILL_BIRTH_SCHEMA, - vol.Optional(CONF_BIRTH_MESSAGE, default=DEFAULT_BIRTH): MQTT_WILL_BIRTH_SCHEMA, - vol.Optional(CONF_DISCOVERY, default=DEFAULT_DISCOVERY): cv.boolean, + vol.Optional(CONF_WILL_MESSAGE): MQTT_WILL_BIRTH_SCHEMA, + vol.Optional(CONF_BIRTH_MESSAGE): MQTT_WILL_BIRTH_SCHEMA, + vol.Optional(CONF_DISCOVERY): cv.boolean, # discovery_prefix must be a valid publish topic because if no # state topic is specified, it will be created with the given prefix. vol.Optional( @@ -608,6 +615,8 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: def _merge_config(entry, conf): """Merge configuration.yaml config with config entry.""" + # Base config on default values + conf = {**DEFAULT_VALUES, **conf} return {**conf, **entry.data} @@ -627,6 +636,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: override, ) + # Merge the configuration values from configuration.yaml conf = _merge_config(entry, conf) hass.data[DATA_MQTT] = MQTT(