Skip to content

Commit e422352

Browse files
epenetfrenckCopilot
authored
Use runtime_data in melcloud (home-assistant#148012)
Co-authored-by: Franck Nijhof <[email protected]> Co-authored-by: Copilot <[email protected]>
1 parent 04e6947 commit e422352

File tree

5 files changed

+18
-26
lines changed

5 files changed

+18
-26
lines changed

homeassistant/components/melcloud/__init__.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,11 @@
2727

2828
PLATFORMS = [Platform.CLIMATE, Platform.SENSOR, Platform.WATER_HEATER]
2929

30+
type MelCloudConfigEntry = ConfigEntry[dict[str, list[MelCloudDevice]]]
3031

31-
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
32-
"""Establish connection with MELClooud."""
32+
33+
async def async_setup_entry(hass: HomeAssistant, entry: MelCloudConfigEntry) -> bool:
34+
"""Establish connection with MELCloud."""
3335
conf = entry.data
3436
try:
3537
mel_devices = await mel_devices_setup(hass, conf[CONF_TOKEN])
@@ -40,20 +42,14 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
4042
except (TimeoutError, ClientConnectionError) as ex:
4143
raise ConfigEntryNotReady from ex
4244

43-
hass.data.setdefault(DOMAIN, {}).update({entry.entry_id: mel_devices})
45+
entry.runtime_data = mel_devices
4446
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
4547
return True
4648

4749

4850
async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool:
4951
"""Unload a config entry."""
50-
unload_ok = await hass.config_entries.async_unload_platforms(
51-
config_entry, PLATFORMS
52-
)
53-
hass.data[DOMAIN].pop(config_entry.entry_id)
54-
if not hass.data[DOMAIN]:
55-
hass.data.pop(DOMAIN)
56-
return unload_ok
52+
return await hass.config_entries.async_unload_platforms(config_entry, PLATFORMS)
5753

5854

5955
class MelCloudDevice:

homeassistant/components/melcloud/climate.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,19 @@
2424
HVACAction,
2525
HVACMode,
2626
)
27-
from homeassistant.config_entries import ConfigEntry
2827
from homeassistant.const import ATTR_TEMPERATURE, UnitOfTemperature
2928
from homeassistant.core import HomeAssistant
3029
from homeassistant.helpers import config_validation as cv, entity_platform
3130
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
3231

33-
from . import MelCloudDevice
32+
from . import MelCloudConfigEntry, MelCloudDevice
3433
from .const import (
3534
ATTR_STATUS,
3635
ATTR_VANE_HORIZONTAL,
3736
ATTR_VANE_HORIZONTAL_POSITIONS,
3837
ATTR_VANE_VERTICAL,
3938
ATTR_VANE_VERTICAL_POSITIONS,
4039
CONF_POSITION,
41-
DOMAIN,
4240
SERVICE_SET_VANE_HORIZONTAL,
4341
SERVICE_SET_VANE_VERTICAL,
4442
)
@@ -77,11 +75,11 @@
7775

7876
async def async_setup_entry(
7977
hass: HomeAssistant,
80-
entry: ConfigEntry,
78+
entry: MelCloudConfigEntry,
8179
async_add_entities: AddConfigEntryEntitiesCallback,
8280
) -> None:
8381
"""Set up MelCloud device climate based on config_entry."""
84-
mel_devices = hass.data[DOMAIN][entry.entry_id]
82+
mel_devices = entry.runtime_data
8583
entities: list[AtaDeviceClimate | AtwDeviceZoneClimate] = [
8684
AtaDeviceClimate(mel_device, mel_device.device)
8785
for mel_device in mel_devices[DEVICE_TYPE_ATA]

homeassistant/components/melcloud/diagnostics.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,20 @@
55
from typing import Any
66

77
from homeassistant.components.diagnostics import async_redact_data
8-
from homeassistant.config_entries import ConfigEntry
98
from homeassistant.const import CONF_TOKEN, CONF_USERNAME
109
from homeassistant.core import HomeAssistant
1110
from homeassistant.helpers import entity_registry as er
1211

12+
from . import MelCloudConfigEntry
13+
1314
TO_REDACT = {
1415
CONF_USERNAME,
1516
CONF_TOKEN,
1617
}
1718

1819

1920
async def async_get_config_entry_diagnostics(
20-
hass: HomeAssistant, entry: ConfigEntry
21+
hass: HomeAssistant, entry: MelCloudConfigEntry
2122
) -> dict[str, Any]:
2223
"""Return diagnostics for the config entry."""
2324
ent_reg = er.async_get(hass)

homeassistant/components/melcloud/sensor.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,11 @@
1515
SensorEntityDescription,
1616
SensorStateClass,
1717
)
18-
from homeassistant.config_entries import ConfigEntry
1918
from homeassistant.const import UnitOfEnergy, UnitOfTemperature
2019
from homeassistant.core import HomeAssistant
2120
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
2221

23-
from . import MelCloudDevice
24-
from .const import DOMAIN
22+
from . import MelCloudConfigEntry, MelCloudDevice
2523

2624

2725
@dataclasses.dataclass(frozen=True, kw_only=True)
@@ -105,11 +103,11 @@ class MelcloudSensorEntityDescription(SensorEntityDescription):
105103

106104
async def async_setup_entry(
107105
hass: HomeAssistant,
108-
entry: ConfigEntry,
106+
entry: MelCloudConfigEntry,
109107
async_add_entities: AddConfigEntryEntitiesCallback,
110108
) -> None:
111109
"""Set up MELCloud device sensors based on config_entry."""
112-
mel_devices = hass.data[DOMAIN].get(entry.entry_id)
110+
mel_devices = entry.runtime_data
113111

114112
entities: list[MelDeviceSensor] = [
115113
MelDeviceSensor(mel_device, description)

homeassistant/components/melcloud/water_heater.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,21 @@
1717
WaterHeaterEntity,
1818
WaterHeaterEntityFeature,
1919
)
20-
from homeassistant.config_entries import ConfigEntry
2120
from homeassistant.const import UnitOfTemperature
2221
from homeassistant.core import HomeAssistant
2322
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
2423

25-
from . import DOMAIN, MelCloudDevice
24+
from . import MelCloudConfigEntry, MelCloudDevice
2625
from .const import ATTR_STATUS
2726

2827

2928
async def async_setup_entry(
3029
hass: HomeAssistant,
31-
entry: ConfigEntry,
30+
entry: MelCloudConfigEntry,
3231
async_add_entities: AddConfigEntryEntitiesCallback,
3332
) -> None:
3433
"""Set up MelCloud device climate based on config_entry."""
35-
mel_devices = hass.data[DOMAIN][entry.entry_id]
34+
mel_devices = entry.runtime_data
3635
async_add_entities(
3736
[
3837
AtwWaterHeater(mel_device, mel_device.device)

0 commit comments

Comments
 (0)