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
This commit is contained in:
Maciej Bieniek 2020-03-23 22:16:17 +01:00 committed by GitHub
parent 513abcb7e5
commit 5c2bd8b743
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -75,7 +75,11 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
pin = host_config["pin"] pin = host_config["pin"]
mac = host_config["mac"] mac = host_config["mac"]
name = config.get(CONF_NAME) 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 return
setup_bravia(config, pin, hass, add_entities) 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), hass.config.path(BRAVIA_CONFIG_FILE),
{host: {"pin": pin, "host": host, "mac": mac}}, {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): def request_configuration(config, hass, add_entities):
@ -154,11 +161,11 @@ def request_configuration(config, hass, add_entities):
class BraviaTVDevice(MediaPlayerDevice): class BraviaTVDevice(MediaPlayerDevice):
"""Representation of a Sony Bravia TV.""" """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.""" """Initialize the Sony Bravia device."""
self._pin = pin self._pin = pin
self._braviarc = BraviaRC(host, mac) self._braviarc = client
self._name = name self._name = name
self._state = STATE_OFF self._state = STATE_OFF
self._muted = False self._muted = False
@ -171,15 +178,14 @@ class BraviaTVDevice(MediaPlayerDevice):
self._content_mapping = {} self._content_mapping = {}
self._duration = None self._duration = None
self._content_uri = None self._content_uri = None
self._id = None
self._playing = False self._playing = False
self._start_date_time = None self._start_date_time = None
self._program_media_type = None self._program_media_type = None
self._min_volume = None self._min_volume = None
self._max_volume = None self._max_volume = None
self._volume = None self._volume = None
self._unique_id = unique_id
self._braviarc.connect(pin, CLIENTID_PREFIX, NICKNAME)
if self._braviarc.is_connected(): if self._braviarc.is_connected():
self.update() self.update()
else: else:
@ -254,6 +260,11 @@ class BraviaTVDevice(MediaPlayerDevice):
"""Return the name of the device.""" """Return the name of the device."""
return self._name return self._name
@property
def unique_id(self):
"""Return a unique_id for this entity."""
return self._unique_id
@property @property
def state(self): def state(self):
"""Return the state of the device.""" """Return the state of the device."""