Use DeviceInfo in xbox (#58640)
This commit is contained in:
parent
42a2aed8af
commit
638bd743a5
3 changed files with 25 additions and 24 deletions
|
@ -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",
|
||||||
}
|
)
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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,
|
||||||
}
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue