Skip to content

Commit 0729b3a

Browse files
authored
Change hass.data storage to runtime.data for Squeezebox (home-assistant#146482)
1 parent c935686 commit 0729b3a

File tree

3 files changed

+7
-16
lines changed

3 files changed

+7
-16
lines changed

homeassistant/components/squeezebox/__init__.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""The Squeezebox integration."""
22

33
from asyncio import timeout
4-
from dataclasses import dataclass
4+
from dataclasses import dataclass, field
55
from datetime import datetime
66
from http import HTTPStatus
77
import logging
@@ -37,8 +37,6 @@
3737
DISCOVERY_INTERVAL,
3838
DISCOVERY_TASK,
3939
DOMAIN,
40-
KNOWN_PLAYERS,
41-
KNOWN_SERVERS,
4240
SERVER_MANUFACTURER,
4341
SERVER_MODEL,
4442
SERVER_MODEL_ID,
@@ -73,6 +71,7 @@ class SqueezeboxData:
7371

7472
coordinator: LMSStatusDataUpdateCoordinator
7573
server: Server
74+
known_player_ids: set[str] = field(default_factory=set)
7675

7776

7877
type SqueezeboxConfigEntry = ConfigEntry[SqueezeboxData]
@@ -187,16 +186,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry) -
187186

188187
entry.runtime_data = SqueezeboxData(coordinator=server_coordinator, server=lms)
189188

190-
# set up player discovery
191-
known_servers = hass.data.setdefault(DOMAIN, {}).setdefault(KNOWN_SERVERS, {})
192-
known_players = known_servers.setdefault(lms.uuid, {}).setdefault(KNOWN_PLAYERS, [])
193-
194189
async def _player_discovery(now: datetime | None = None) -> None:
195190
"""Discover squeezebox players by polling server."""
196191

197192
async def _discovered_player(player: Player) -> None:
198193
"""Handle a (re)discovered player."""
199-
if player.player_id in known_players:
194+
if player.player_id in entry.runtime_data.known_player_ids:
200195
await player.async_update()
201196
async_dispatcher_send(
202197
hass, SIGNAL_PLAYER_REDISCOVERED, player.player_id, player.connected
@@ -207,7 +202,7 @@ async def _discovered_player(player: Player) -> None:
207202
hass, entry, player, lms.uuid
208203
)
209204
await player_coordinator.async_refresh()
210-
known_players.append(player.player_id)
205+
entry.runtime_data.known_player_ids.add(player.player_id)
211206
async_dispatcher_send(
212207
hass, SIGNAL_PLAYER_DISCOVERED, player_coordinator
213208
)

homeassistant/components/squeezebox/const.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
DISCOVERY_TASK = "discovery_task"
55
DOMAIN = "squeezebox"
66
DEFAULT_PORT = 9000
7-
KNOWN_PLAYERS = "known_players"
8-
KNOWN_SERVERS = "known_servers"
97
PLAYER_DISCOVERY_UNSUB = "player_discovery_unsub"
108
SENSOR_UPDATE_INTERVAL = 60
119
SERVER_MANUFACTURER = "https://lyrion.org/"

homeassistant/components/squeezebox/media_player.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@
6060
DEFAULT_VOLUME_STEP,
6161
DISCOVERY_TASK,
6262
DOMAIN,
63-
KNOWN_PLAYERS,
64-
KNOWN_SERVERS,
6563
SERVER_MANUFACTURER,
6664
SERVER_MODEL,
6765
SERVER_MODEL_ID,
@@ -316,9 +314,9 @@ def state(self) -> MediaPlayerState | None:
316314

317315
async def async_will_remove_from_hass(self) -> None:
318316
"""Remove from list of known players when removed from hass."""
319-
known_servers = self.hass.data[DOMAIN][KNOWN_SERVERS]
320-
known_players = known_servers[self.coordinator.server_uuid][KNOWN_PLAYERS]
321-
known_players.remove(self.coordinator.player.player_id)
317+
self.coordinator.config_entry.runtime_data.known_player_ids.remove(
318+
self.coordinator.player.player_id
319+
)
322320

323321
@property
324322
def volume_level(self) -> float | None:

0 commit comments

Comments
 (0)