diff --git a/homeassistant/components/esphome/const.py b/homeassistant/components/esphome/const.py index 32ba27ded8e1..a2cb2177bd81 100644 --- a/homeassistant/components/esphome/const.py +++ b/homeassistant/components/esphome/const.py @@ -1,11 +1,20 @@ """ESPHome constants.""" -from typing import Final +from __future__ import annotations + +from typing import TYPE_CHECKING, Final from awesomeversion import AwesomeVersion +from homeassistant.util.hass_dict import HassKey + +if TYPE_CHECKING: + from .domain_data import DomainData + DOMAIN = "esphome" +ESPHOME_DATA: HassKey[DomainData] = HassKey(DOMAIN) + CONF_ALLOW_SERVICE_CALLS = "allow_service_calls" CONF_SUBSCRIBE_LOGS = "subscribe_logs" CONF_DEVICE_NAME = "device_name" diff --git a/homeassistant/components/esphome/domain_data.py b/homeassistant/components/esphome/domain_data.py index c7cec236cc75..5aa2d8f3e5a6 100644 --- a/homeassistant/components/esphome/domain_data.py +++ b/homeassistant/components/esphome/domain_data.py @@ -4,12 +4,11 @@ from __future__ import annotations from dataclasses import dataclass, field from functools import cache -from typing import Self from homeassistant.core import HomeAssistant from homeassistant.helpers.json import JSONEncoder -from .const import DOMAIN +from .const import ESPHOME_DATA from .entry_data import ESPHomeConfigEntry, ESPHomeStorage, RuntimeEntryData STORAGE_VERSION = 1 @@ -36,11 +35,9 @@ class DomainData: ), ) - @classmethod + @staticmethod @cache - def get(cls, hass: HomeAssistant) -> Self: + def get(hass: HomeAssistant) -> DomainData: """Get the global DomainData instance stored in hass.data.""" - # Uses legacy hass.data[DOMAIN] pattern - # pylint: disable-next=hass-use-runtime-data - ret = hass.data[DOMAIN] = cls() + ret = hass.data[ESPHOME_DATA] = DomainData() return ret