Skip to content

Commit 3bc0082

Browse files
authored
Use runtime_data in mystrom (home-assistant#148020)
1 parent 7d36a2e commit 3bc0082

File tree

5 files changed

+20
-21
lines changed

5 files changed

+20
-21
lines changed

homeassistant/components/mystrom/__init__.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,11 @@
99
from pymystrom.exceptions import MyStromConnectionError
1010
from pymystrom.switch import MyStromSwitch
1111

12-
from homeassistant.config_entries import ConfigEntry
1312
from homeassistant.const import CONF_HOST, Platform
1413
from homeassistant.core import HomeAssistant
1514
from homeassistant.exceptions import ConfigEntryNotReady
1615

17-
from .const import DOMAIN
18-
from .models import MyStromData
16+
from .models import MyStromConfigEntry, MyStromData
1917

2018
PLATFORMS_PLUGS = [Platform.SENSOR, Platform.SWITCH]
2119
PLATFORMS_BULB = [Platform.LIGHT]
@@ -41,7 +39,7 @@ def _get_mystrom_switch(host: str) -> MyStromSwitch:
4139
return MyStromSwitch(host)
4240

4341

44-
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
42+
async def async_setup_entry(hass: HomeAssistant, entry: MyStromConfigEntry) -> bool:
4543
"""Set up myStrom from a config entry."""
4644
host = entry.data[CONF_HOST]
4745
try:
@@ -73,7 +71,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
7371
_LOGGER.error("Unsupported myStrom device type: %s", device_type)
7472
return False
7573

76-
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = MyStromData(
74+
entry.runtime_data = MyStromData(
7775
device=device,
7876
info=info,
7977
)
@@ -82,15 +80,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
8280
return True
8381

8482

85-
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
83+
async def async_unload_entry(hass: HomeAssistant, entry: MyStromConfigEntry) -> bool:
8684
"""Unload a config entry."""
87-
device_type = hass.data[DOMAIN][entry.entry_id].info["type"]
85+
device_type = entry.runtime_data.info["type"]
8886
platforms = []
8987
if device_type in [101, 106, 107, 120]:
9088
platforms.extend(PLATFORMS_PLUGS)
9189
elif device_type in [102, 105]:
9290
platforms.extend(PLATFORMS_BULB)
93-
if unload_ok := await hass.config_entries.async_unload_platforms(entry, platforms):
94-
hass.data[DOMAIN].pop(entry.entry_id)
95-
96-
return unload_ok
91+
return await hass.config_entries.async_unload_platforms(entry, platforms)

homeassistant/components/mystrom/light.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
LightEntity,
1616
LightEntityFeature,
1717
)
18-
from homeassistant.config_entries import ConfigEntry
1918
from homeassistant.core import HomeAssistant
2019
from homeassistant.helpers.device_registry import DeviceInfo
2120
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
2221

2322
from .const import DOMAIN, MANUFACTURER
23+
from .models import MyStromConfigEntry
2424

2525
_LOGGER = logging.getLogger(__name__)
2626

@@ -32,12 +32,12 @@
3232

3333
async def async_setup_entry(
3434
hass: HomeAssistant,
35-
entry: ConfigEntry,
35+
entry: MyStromConfigEntry,
3636
async_add_entities: AddConfigEntryEntitiesCallback,
3737
) -> None:
3838
"""Set up the myStrom entities."""
39-
info = hass.data[DOMAIN][entry.entry_id].info
40-
device = hass.data[DOMAIN][entry.entry_id].device
39+
info = entry.runtime_data.info
40+
device = entry.runtime_data.device
4141
async_add_entities([MyStromLight(device, entry.title, info["mac"])])
4242

4343

homeassistant/components/mystrom/models.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
from pymystrom.bulb import MyStromBulb
77
from pymystrom.switch import MyStromSwitch
88

9+
from homeassistant.config_entries import ConfigEntry
10+
11+
type MyStromConfigEntry = ConfigEntry[MyStromData]
12+
913

1014
@dataclass
1115
class MyStromData:

homeassistant/components/mystrom/sensor.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313
SensorEntityDescription,
1414
SensorStateClass,
1515
)
16-
from homeassistant.config_entries import ConfigEntry
1716
from homeassistant.const import UnitOfPower, UnitOfTemperature
1817
from homeassistant.core import HomeAssistant
1918
from homeassistant.helpers.device_registry import DeviceInfo
2019
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
2120

2221
from .const import DOMAIN, MANUFACTURER
22+
from .models import MyStromConfigEntry
2323

2424

2525
@dataclass(frozen=True)
@@ -56,11 +56,11 @@ class MyStromSwitchSensorEntityDescription(SensorEntityDescription):
5656

5757
async def async_setup_entry(
5858
hass: HomeAssistant,
59-
entry: ConfigEntry,
59+
entry: MyStromConfigEntry,
6060
async_add_entities: AddConfigEntryEntitiesCallback,
6161
) -> None:
6262
"""Set up the myStrom entities."""
63-
device: MyStromSwitch = hass.data[DOMAIN][entry.entry_id].device
63+
device: MyStromSwitch = entry.runtime_data.device
6464

6565
async_add_entities(
6666
MyStromSwitchSensor(device, entry.title, description)

homeassistant/components/mystrom/switch.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
from pymystrom.exceptions import MyStromConnectionError
99

1010
from homeassistant.components.switch import SwitchEntity
11-
from homeassistant.config_entries import ConfigEntry
1211
from homeassistant.core import HomeAssistant
1312
from homeassistant.helpers.device_registry import DeviceInfo, format_mac
1413
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
1514

1615
from .const import DOMAIN, MANUFACTURER
16+
from .models import MyStromConfigEntry
1717

1818
DEFAULT_NAME = "myStrom Switch"
1919

@@ -22,11 +22,11 @@
2222

2323
async def async_setup_entry(
2424
hass: HomeAssistant,
25-
entry: ConfigEntry,
25+
entry: MyStromConfigEntry,
2626
async_add_entities: AddConfigEntryEntitiesCallback,
2727
) -> None:
2828
"""Set up the myStrom entities."""
29-
device = hass.data[DOMAIN][entry.entry_id].device
29+
device = entry.runtime_data.device
3030
async_add_entities([MyStromSwitch(device, entry.title)])
3131

3232

0 commit comments

Comments
 (0)