From ef9965891986068f1ab87d05e02b5b9b0a977a5b Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Wed, 14 May 2025 14:59:10 +0200 Subject: [PATCH] Use runtime_data in gpslogger (#144884) --- homeassistant/components/gpslogger/__init__.py | 6 ++++-- homeassistant/components/gpslogger/device_tracker.py | 12 ++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/gpslogger/__init__.py b/homeassistant/components/gpslogger/__init__.py index 46843b30f4d..37493ed24fa 100644 --- a/homeassistant/components/gpslogger/__init__.py +++ b/homeassistant/components/gpslogger/__init__.py @@ -24,6 +24,8 @@ from .const import ( DOMAIN, ) +type GPSLoggerConfigEntry = ConfigEntry[set[str]] + PLATFORMS = [Platform.DEVICE_TRACKER] TRACKER_UPDATE = f"{DOMAIN}_tracker_update" @@ -88,9 +90,9 @@ async def handle_webhook( return web.Response(text=f"Setting location for {device}") -async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_setup_entry(hass: HomeAssistant, entry: GPSLoggerConfigEntry) -> bool: """Configure based on config entry.""" - hass.data.setdefault(DOMAIN, {"devices": set()}) + entry.runtime_data = set() webhook.async_register( hass, DOMAIN, "GPSLogger", entry.data[CONF_WEBHOOK_ID], handle_webhook ) diff --git a/homeassistant/components/gpslogger/device_tracker.py b/homeassistant/components/gpslogger/device_tracker.py index 515f550e566..950aa2a2638 100644 --- a/homeassistant/components/gpslogger/device_tracker.py +++ b/homeassistant/components/gpslogger/device_tracker.py @@ -1,7 +1,6 @@ """Support for the GPSLogger device tracking.""" from homeassistant.components.device_tracker import TrackerEntity -from homeassistant.config_entries import ConfigEntry from homeassistant.const import ( ATTR_BATTERY_LEVEL, ATTR_GPS_ACCURACY, @@ -15,19 +14,20 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.restore_state import RestoreEntity -from . import DOMAIN, TRACKER_UPDATE +from . import TRACKER_UPDATE, GPSLoggerConfigEntry from .const import ( ATTR_ACTIVITY, ATTR_ALTITUDE, ATTR_DIRECTION, ATTR_PROVIDER, ATTR_SPEED, + DOMAIN, ) async def async_setup_entry( hass: HomeAssistant, - entry: ConfigEntry, + entry: GPSLoggerConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Configure a dispatcher connection based on a config entry.""" @@ -35,10 +35,10 @@ async def async_setup_entry( @callback def _receive_data(device, gps, battery, accuracy, attrs): """Receive set location.""" - if device in hass.data[DOMAIN]["devices"]: + if device in entry.runtime_data: return - hass.data[DOMAIN]["devices"].add(device) + entry.runtime_data.add(device) async_add_entities([GPSLoggerEntity(device, gps, battery, accuracy, attrs)]) @@ -56,7 +56,7 @@ async def async_setup_entry( entities = [] for dev_id in dev_ids: - hass.data[DOMAIN]["devices"].add(dev_id) + entry.runtime_data.add(dev_id) entity = GPSLoggerEntity(dev_id, None, None, None, None) entities.append(entity)