Use DeviceInfo in xbox (#58640)

This commit is contained in:
epenet 2021-10-29 00:37:20 +02:00 committed by GitHub
parent 42a2aed8af
commit 638bd743a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 24 deletions

View file

@ -3,6 +3,7 @@ from __future__ import annotations
from yarl import URL from yarl import URL
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import PresenceData, XboxUpdateCoordinator from . import PresenceData, XboxUpdateCoordinator
@ -66,12 +67,12 @@ class XboxBaseSensorEntity(CoordinatorEntity):
return self.attribute == "online" return self.attribute == "online"
@property @property
def device_info(self): def device_info(self) -> DeviceInfo:
"""Return a device description for device registry.""" """Return a device description for device registry."""
return { return DeviceInfo(
"identifiers": {(DOMAIN, "xbox_live")}, entry_type="service",
"name": "Xbox Live", identifiers={(DOMAIN, "xbox_live")},
"manufacturer": "Microsoft", manufacturer="Microsoft",
"model": "Xbox Live", model="Xbox Live",
"entry_type": "service", name="Xbox Live",
} )

View file

@ -29,6 +29,7 @@ from homeassistant.components.media_player.const import (
SUPPORT_VOLUME_STEP, SUPPORT_VOLUME_STEP,
) )
from homeassistant.const import STATE_OFF, STATE_ON, STATE_PAUSED, STATE_PLAYING from homeassistant.const import STATE_OFF, STATE_ON, STATE_PAUSED, STATE_PLAYING
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import ConsoleData, XboxUpdateCoordinator from . import ConsoleData, XboxUpdateCoordinator
@ -213,21 +214,20 @@ class XboxMediaPlayer(CoordinatorEntity, MediaPlayerEntity):
await self.client.smartglass.launch_app(self._console.id, media_id) await self.client.smartglass.launch_app(self._console.id, media_id)
@property @property
def device_info(self): def device_info(self) -> DeviceInfo:
"""Return a device description for device registry.""" """Return a device description for device registry."""
# Turns "XboxOneX" into "Xbox One X" for display # Turns "XboxOneX" into "Xbox One X" for display
matches = re.finditer( matches = re.finditer(
".+?(?:(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|$)", ".+?(?:(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|$)",
self._console.console_type, self._console.console_type,
) )
model = " ".join([m.group(0) for m in matches])
return { return DeviceInfo(
"identifiers": {(DOMAIN, self._console.id)}, identifiers={(DOMAIN, self._console.id)},
"name": self._console.name, manufacturer="Microsoft",
"manufacturer": "Microsoft", model=" ".join([m.group(0) for m in matches]),
"model": model, name=self._console.name,
} )
def _find_media_image(images: list[Image]) -> Image | None: def _find_media_image(images: list[Image]) -> Image | None:

View file

@ -20,6 +20,7 @@ from homeassistant.components.remote import (
DEFAULT_DELAY_SECS, DEFAULT_DELAY_SECS,
RemoteEntity, RemoteEntity,
) )
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import ConsoleData, XboxUpdateCoordinator from . import ConsoleData, XboxUpdateCoordinator
@ -98,18 +99,17 @@ class XboxRemote(CoordinatorEntity, RemoteEntity):
await asyncio.sleep(delay) await asyncio.sleep(delay)
@property @property
def device_info(self): def device_info(self) -> DeviceInfo:
"""Return a device description for device registry.""" """Return a device description for device registry."""
# Turns "XboxOneX" into "Xbox One X" for display # Turns "XboxOneX" into "Xbox One X" for display
matches = re.finditer( matches = re.finditer(
".+?(?:(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|$)", ".+?(?:(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|$)",
self._console.console_type, self._console.console_type,
) )
model = " ".join([m.group(0) for m in matches])
return { return DeviceInfo(
"identifiers": {(DOMAIN, self._console.id)}, identifiers={(DOMAIN, self._console.id)},
"name": self._console.name, manufacturer="Microsoft",
"manufacturer": "Microsoft", model=" ".join([m.group(0) for m in matches]),
"model": model, name=self._console.name,
} )