diff --git a/homeassistant/components/discovery/__init__.py b/homeassistant/components/discovery/__init__.py
index 3a925fb0579..bade569bb46 100644
--- a/homeassistant/components/discovery/__init__.py
+++ b/homeassistant/components/discovery/__init__.py
@@ -4,6 +4,7 @@ from __future__ import annotations
 from datetime import timedelta
 import json
 import logging
+from typing import NamedTuple
 
 from netdisco.discovery import NetworkDiscovery
 import voluptuous as vol
@@ -46,16 +47,24 @@ CONFIG_ENTRY_HANDLERS = {
     "logitech_mediaserver": "squeezebox",
 }
 
+
+class ServiceDetails(NamedTuple):
+    """Store service details."""
+
+    component: str
+    platform: str | None
+
+
 # These have no config flows
 SERVICE_HANDLERS = {
-    SERVICE_ENIGMA2: ("media_player", "enigma2"),
-    SERVICE_SABNZBD: ("sabnzbd", None),
-    "yamaha": ("media_player", "yamaha"),
-    "frontier_silicon": ("media_player", "frontier_silicon"),
-    "openhome": ("media_player", "openhome"),
-    "bose_soundtouch": ("media_player", "soundtouch"),
-    "bluesound": ("media_player", "bluesound"),
-    "lg_smart_device": ("media_player", "lg_soundbar"),
+    SERVICE_ENIGMA2: ServiceDetails("media_player", "enigma2"),
+    SERVICE_SABNZBD: ServiceDetails("sabnzbd", None),
+    "yamaha": ServiceDetails("media_player", "yamaha"),
+    "frontier_silicon": ServiceDetails("media_player", "frontier_silicon"),
+    "openhome": ServiceDetails("media_player", "openhome"),
+    "bose_soundtouch": ServiceDetails("media_player", "soundtouch"),
+    "bluesound": ServiceDetails("media_player", "bluesound"),
+    "lg_smart_device": ServiceDetails("media_player", "lg_soundbar"),
 }
 
 OPTIONAL_SERVICE_HANDLERS: dict[str, tuple[str, str | None]] = {}
@@ -172,24 +181,24 @@ async def async_setup(hass, config):
             )
             return
 
-        comp_plat = SERVICE_HANDLERS.get(service)
+        service_details = SERVICE_HANDLERS.get(service)
 
-        if not comp_plat and service in enabled_platforms:
-            comp_plat = OPTIONAL_SERVICE_HANDLERS[service]
+        if not service_details and service in enabled_platforms:
+            service_details = OPTIONAL_SERVICE_HANDLERS[service]
 
         # We do not know how to handle this service.
-        if not comp_plat:
+        if not service_details:
             logger.debug("Unknown service discovered: %s %s", service, info)
             return
 
         logger.info("Found new service: %s %s", service, info)
 
-        component, platform = comp_plat
-
-        if platform is None:
-            await async_discover(hass, service, info, component, config)
+        if service_details.platform is None:
+            await async_discover(hass, service, info, service_details.component, config)
         else:
-            await async_load_platform(hass, component, platform, info, config)
+            await async_load_platform(
+                hass, service_details.component, service_details.platform, info, config
+            )
 
     async def scan_devices(now):
         """Scan for devices."""