From 5c2bd8b74378cd32549dc25a3a65d189687f23e2 Mon Sep 17 00:00:00 2001 From: Maciej Bieniek <bieniu@users.noreply.github.com> Date: Mon, 23 Mar 2020 22:16:17 +0100 Subject: [PATCH] Add unique ID propery to braviatv entity (#33037) * Add unique_id property * Use cid to generate unique_id * Remove debug file * Add _unique_id declaration * Suggested change * Remove unused self._id --- .../components/braviatv/media_player.py | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/braviatv/media_player.py b/homeassistant/components/braviatv/media_player.py index 2916bb319f8..6dd431aac69 100644 --- a/homeassistant/components/braviatv/media_player.py +++ b/homeassistant/components/braviatv/media_player.py @@ -75,7 +75,11 @@ def setup_platform(hass, config, add_entities, discovery_info=None): pin = host_config["pin"] mac = host_config["mac"] name = config.get(CONF_NAME) - add_entities([BraviaTVDevice(host, mac, name, pin)]) + braviarc = BraviaRC(host, mac) + braviarc.connect(pin, CLIENTID_PREFIX, NICKNAME) + unique_id = braviarc.get_system_info()["cid"].lower() + + add_entities([BraviaTVDevice(braviarc, name, pin, unique_id)]) return setup_bravia(config, pin, hass, add_entities) @@ -111,8 +115,11 @@ def setup_bravia(config, pin, hass, add_entities): hass.config.path(BRAVIA_CONFIG_FILE), {host: {"pin": pin, "host": host, "mac": mac}}, ) + braviarc = BraviaRC(host, mac) + braviarc.connect(pin, CLIENTID_PREFIX, NICKNAME) + unique_id = braviarc.get_system_info()["cid"].lower() - add_entities([BraviaTVDevice(host, mac, name, pin)]) + add_entities([BraviaTVDevice(braviarc, name, pin, unique_id)]) def request_configuration(config, hass, add_entities): @@ -154,11 +161,11 @@ def request_configuration(config, hass, add_entities): class BraviaTVDevice(MediaPlayerDevice): """Representation of a Sony Bravia TV.""" - def __init__(self, host, mac, name, pin): + def __init__(self, client, name, pin, unique_id): """Initialize the Sony Bravia device.""" self._pin = pin - self._braviarc = BraviaRC(host, mac) + self._braviarc = client self._name = name self._state = STATE_OFF self._muted = False @@ -171,15 +178,14 @@ class BraviaTVDevice(MediaPlayerDevice): self._content_mapping = {} self._duration = None self._content_uri = None - self._id = None self._playing = False self._start_date_time = None self._program_media_type = None self._min_volume = None self._max_volume = None self._volume = None + self._unique_id = unique_id - self._braviarc.connect(pin, CLIENTID_PREFIX, NICKNAME) if self._braviarc.is_connected(): self.update() else: @@ -254,6 +260,11 @@ class BraviaTVDevice(MediaPlayerDevice): """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 state(self): """Return the state of the device.""" -- GitLab