From 410ef8ce1447f91c87fc0404b92d35cfebf60f6e Mon Sep 17 00:00:00 2001
From: Robert Hillis <tkdrob4390@yahoo.com>
Date: Sat, 15 Jun 2024 12:14:34 -0400
Subject: [PATCH] Store runtime data inside the config entry in Efergy
 (#119551)

* Store runtime data inside the config entry in Efergy

* store later
---
 homeassistant/components/efergy/__init__.py | 12 ++++++------
 homeassistant/components/efergy/sensor.py   | 11 ++++++-----
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/homeassistant/components/efergy/__init__.py b/homeassistant/components/efergy/__init__.py
index 3bfd37392ad..52979e50552 100644
--- a/homeassistant/components/efergy/__init__.py
+++ b/homeassistant/components/efergy/__init__.py
@@ -16,9 +16,10 @@ from homeassistant.helpers.entity import Entity
 from .const import DEFAULT_NAME, DOMAIN
 
 PLATFORMS = [Platform.SENSOR]
+type EfergyConfigEntry = ConfigEntry[Efergy]
 
 
-async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
+async def async_setup_entry(hass: HomeAssistant, entry: EfergyConfigEntry) -> bool:
     """Set up Efergy from a config entry."""
     api = Efergy(
         entry.data[CONF_API_KEY],
@@ -36,17 +37,16 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
             "API Key is no longer valid. Please reauthenticate"
         ) from ex
 
-    hass.data.setdefault(DOMAIN, {})[entry.entry_id] = api
+    entry.runtime_data = api
+
     await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
 
     return True
 
 
-async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
+async def async_unload_entry(hass: HomeAssistant, entry: EfergyConfigEntry) -> bool:
     """Unload a config entry."""
-    if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
-        hass.data[DOMAIN].pop(entry.entry_id)
-    return unload_ok
+    return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
 
 
 class EfergyEntity(Entity):
diff --git a/homeassistant/components/efergy/sensor.py b/homeassistant/components/efergy/sensor.py
index 59b2799d37b..a03f8f7d012 100644
--- a/homeassistant/components/efergy/sensor.py
+++ b/homeassistant/components/efergy/sensor.py
@@ -15,14 +15,13 @@ from homeassistant.components.sensor import (
     SensorEntityDescription,
     SensorStateClass,
 )
-from homeassistant.config_entries import ConfigEntry
 from homeassistant.const import UnitOfEnergy, UnitOfPower
 from homeassistant.core import HomeAssistant
 from homeassistant.helpers.entity_platform import AddEntitiesCallback
 from homeassistant.helpers.typing import StateType
 
-from . import EfergyEntity
-from .const import CONF_CURRENT_VALUES, DOMAIN, LOGGER
+from . import EfergyConfigEntry, EfergyEntity
+from .const import CONF_CURRENT_VALUES, LOGGER
 
 SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
     SensorEntityDescription(
@@ -106,10 +105,12 @@ SENSOR_TYPES: tuple[SensorEntityDescription, ...] = (
 
 
 async def async_setup_entry(
-    hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
+    hass: HomeAssistant,
+    entry: EfergyConfigEntry,
+    async_add_entities: AddEntitiesCallback,
 ) -> None:
     """Set up Efergy sensors."""
-    api: Efergy = hass.data[DOMAIN][entry.entry_id]
+    api = entry.runtime_data
     sensors = []
     for description in SENSOR_TYPES:
         if description.key != CONF_CURRENT_VALUES: