From 75faee4f257e9f60785c735a87e3adfba091c9eb Mon Sep 17 00:00:00 2001 From: Maciej Bieniek Date: Wed, 23 Jun 2021 15:46:28 +0200 Subject: [PATCH] Use attrs instead of properties in Bravia TV integration (#52045) * Use attrs instead of properties * Revert to using properties for dynamic data * Move volume_level to coordinator * Move media_title to coordinator * Remove unused variables * Fix variable name * Revert removed variables --- homeassistant/components/braviatv/__init__.py | 15 ++++++--- .../components/braviatv/media_player.py | 32 +++---------------- homeassistant/components/braviatv/remote.py | 21 ++---------- 3 files changed, 19 insertions(+), 49 deletions(-) diff --git a/homeassistant/components/braviatv/__init__.py b/homeassistant/components/braviatv/__init__.py index a29d899cb30..eecf8533800 100644 --- a/homeassistant/components/braviatv/__init__.py +++ b/homeassistant/components/braviatv/__init__.py @@ -71,9 +71,9 @@ class BraviaTVCoordinator(DataUpdateCoordinator[None]): self.pin = pin self.ignored_sources = ignored_sources self.muted = False - self.program_name = None self.channel_name = None self.channel_number = None + self.media_title = None self.source = None self.source_list = [] self.original_content_list = [] @@ -85,7 +85,7 @@ class BraviaTVCoordinator(DataUpdateCoordinator[None]): self.audio_output = None self.min_volume = None self.max_volume = None - self.volume = None + self.volume_level = None self.is_on = False # Assume that the TV is in Play mode self.playing = True @@ -117,8 +117,9 @@ class BraviaTVCoordinator(DataUpdateCoordinator[None]): """Refresh volume information.""" volume_info = self.braviarc.get_volume_info(self.audio_output) if volume_info is not None: + volume = volume_info.get("volume") + self.volume_level = volume / 100 if volume is not None else None self.audio_output = volume_info.get("target") - self.volume = volume_info.get("volume") self.min_volume = volume_info.get("minVolume") self.max_volume = volume_info.get("maxVolume") self.muted = volume_info.get("mute") @@ -140,7 +141,7 @@ class BraviaTVCoordinator(DataUpdateCoordinator[None]): def _refresh_playing_info(self): """Refresh playing information.""" playing_info = self.braviarc.get_playing_info() - self.program_name = playing_info.get("programTitle") + program_name = playing_info.get("programTitle") self.channel_name = playing_info.get("title") self.program_media_type = playing_info.get("programMediaType") self.channel_number = playing_info.get("dispNum") @@ -150,6 +151,12 @@ class BraviaTVCoordinator(DataUpdateCoordinator[None]): self.start_date_time = playing_info.get("startDateTime") if not playing_info: self.channel_name = "App" + if self.channel_name is not None: + self.media_title = self.channel_name + if program_name is not None: + self.media_title = f"{self.media_title}: {program_name}" + else: + self.media_title = None def _update_tv_data(self): """Connect and update TV info.""" diff --git a/homeassistant/components/braviatv/media_player.py b/homeassistant/components/braviatv/media_player.py index 7009b04cba7..2773a185bb1 100644 --- a/homeassistant/components/braviatv/media_player.py +++ b/homeassistant/components/braviatv/media_player.py @@ -116,27 +116,12 @@ class BraviaTVMediaPlayer(CoordinatorEntity, MediaPlayerEntity): def __init__(self, coordinator, name, unique_id, device_info): """Initialize the entity.""" - self._name = name - self._unique_id = unique_id - self._device_info = device_info + self._attr_device_info = device_info + self._attr_name = name + self._attr_unique_id = unique_id super().__init__(coordinator) - @property - def name(self): - """Return the name of the device.""" - return self._name - - @property - def unique_id(self): - """Return a unique_id for this entity.""" - return self._unique_id - - @property - def device_info(self): - """Return the device info.""" - return self._device_info - @property def state(self): """Return the state of the device.""" @@ -157,9 +142,7 @@ class BraviaTVMediaPlayer(CoordinatorEntity, MediaPlayerEntity): @property def volume_level(self): """Volume level of the media player (0..1).""" - if self.coordinator.volume is not None: - return self.coordinator.volume / 100 - return None + return self.coordinator.volume_level @property def is_volume_muted(self): @@ -169,12 +152,7 @@ class BraviaTVMediaPlayer(CoordinatorEntity, MediaPlayerEntity): @property def media_title(self): """Title of current playing media.""" - return_value = None - if self.coordinator.channel_name is not None: - return_value = self.coordinator.channel_name - if self.coordinator.program_name is not None: - return_value = f"{return_value}: {self.coordinator.program_name}" - return return_value + return self.coordinator.media_title @property def media_content_id(self): diff --git a/homeassistant/components/braviatv/remote.py b/homeassistant/components/braviatv/remote.py index 8bd5fb09af3..613d67f0187 100644 --- a/homeassistant/components/braviatv/remote.py +++ b/homeassistant/components/braviatv/remote.py @@ -29,27 +29,12 @@ class BraviaTVRemote(CoordinatorEntity, RemoteEntity): def __init__(self, coordinator, name, unique_id, device_info): """Initialize the entity.""" - self._name = name - self._unique_id = unique_id - self._device_info = device_info + self._attr_device_info = device_info + self._attr_name = name + self._attr_unique_id = unique_id super().__init__(coordinator) - @property - def unique_id(self): - """Return the unique ID of the device.""" - return self._unique_id - - @property - def device_info(self): - """Return device specific attributes.""" - return self._device_info - - @property - def name(self): - """Return the name of the device.""" - return self._name - @property def is_on(self): """Return true if device is on."""