diff --git a/homeassistant/components/mqtt/__init__.py b/homeassistant/components/mqtt/__init__.py index 6c70b39c964..2123625bffb 100644 --- a/homeassistant/components/mqtt/__init__.py +++ b/homeassistant/components/mqtt/__init__.py @@ -241,6 +241,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: websocket_api.async_register_command(hass, websocket_subscribe) websocket_api.async_register_command(hass, websocket_mqtt_info) hass.data[DATA_MQTT] = mqtt_data = MqttData(config=mqtt_yaml, client=client) + get_mqtt_data.cache_clear() client.start(mqtt_data) # Restore saved subscriptions diff --git a/homeassistant/components/mqtt/util.py b/homeassistant/components/mqtt/util.py index 6f8392c5cf1..6f9fb8316bb 100644 --- a/homeassistant/components/mqtt/util.py +++ b/homeassistant/components/mqtt/util.py @@ -3,6 +3,7 @@ from __future__ import annotations import asyncio +from functools import lru_cache import os from pathlib import Path import tempfile @@ -216,6 +217,7 @@ def valid_birth_will(config: ConfigType) -> ConfigType: return config +@lru_cache(maxsize=1) def get_mqtt_data(hass: HomeAssistant) -> MqttData: """Return typed MqttData from hass.data[DATA_MQTT].""" mqtt_data: MqttData = hass.data[DATA_MQTT]