Migrate DirecTV to has entity name (#98159)

* Migrate DirecTV to has entity name

* Migrate DirecTV to has entity name
This commit is contained in:
Joost Lekkerkerker 2023-08-11 04:10:46 +02:00 committed by GitHub
parent 2e1a5ddf2b
commit 914baaa2ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 14 deletions

View file

@ -1,8 +1,6 @@
"""Base DirecTV Entity."""
from __future__ import annotations
from typing import cast
from directv import DIRECTV
from homeassistant.helpers.device_registry import DeviceInfo
@ -14,23 +12,19 @@ from .const import DOMAIN
class DIRECTVEntity(Entity):
"""Defines a base DirecTV entity."""
def __init__(self, *, dtv: DIRECTV, address: str = "0") -> None:
_attr_has_entity_name = True
_attr_name = None
def __init__(self, *, dtv: DIRECTV, name: str, address: str = "0") -> None:
"""Initialize the DirecTV entity."""
self._address = address
self._device_id = address if address != "0" else dtv.device.info.receiver_id
self._is_client = address != "0"
self.dtv = dtv
@property
def device_info(self) -> DeviceInfo:
"""Return device information about this DirecTV receiver."""
return DeviceInfo(
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, self._device_id)},
manufacturer=self.dtv.device.info.brand,
# Instead of setting the device name to the entity name, directv
# should be updated to set has_entity_name = True, and set the entity
# name to None
name=cast(str | None, self.name),
name=name,
sw_version=self.dtv.device.info.version,
via_device=(DOMAIN, self.dtv.device.info.receiver_id),
)

View file

@ -80,11 +80,11 @@ class DIRECTVMediaPlayer(DIRECTVEntity, MediaPlayerEntity):
"""Initialize DirecTV media player."""
super().__init__(
dtv=dtv,
name=name,
address=address,
)
self._attr_unique_id = self._device_id
self._attr_name = name
self._attr_device_class = MediaPlayerDeviceClass.RECEIVER
self._attr_available = False

View file

@ -49,11 +49,11 @@ class DIRECTVRemote(DIRECTVEntity, RemoteEntity):
"""Initialize DirecTV remote."""
super().__init__(
dtv=dtv,
name=name,
address=address,
)
self._attr_unique_id = self._device_id
self._attr_name = name
self._attr_available = False
self._attr_is_on = True