From 28d73960d443f354619bf9672544015fd6694d53 Mon Sep 17 00:00:00 2001 From: Alexandre CUER Date: Wed, 22 May 2024 07:54:27 +0000 Subject: [PATCH 1/3] adding unique id to emoncms integration --- homeassistant/components/emoncms/sensor.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/emoncms/sensor.py b/homeassistant/components/emoncms/sensor.py index 746877c4e5f3f..4ca0e3a88f029 100644 --- a/homeassistant/components/emoncms/sensor.py +++ b/homeassistant/components/emoncms/sensor.py @@ -150,12 +150,13 @@ def __init__( id_for_name = "" if str(sensorid) == "1" else sensorid # Use the feed name assigned in EmonCMS or fall back to the feed ID feed_name = elem.get("name") or f"Feed {elem['id']}" - self._name = f"EmonCMS{id_for_name} {feed_name}" + self._attr_name = f"EmonCMS{id_for_name} {feed_name}" else: - self._name = name - self._identifier = get_id( + self._attr_name = name + self._attr_unique_id = get_id( sensorid, elem["tag"], elem["name"], elem["id"], elem["userid"] ) + self._attr_native_unit_of_measurement = unit_of_measurement self._hass = hass self._data = data self._value_template = value_template @@ -197,11 +198,6 @@ def __init__( else: self._state = None - @property - def name(self): - """Return the name of the sensor.""" - return self._name - @property def native_unit_of_measurement(self): """Return the unit of measurement of this entity, if any.""" @@ -243,7 +239,7 @@ def update(self) -> None: elem["id"], elem["userid"], ) - == self._identifier + == self._attr_unique_id ), None, ) From a72cc6e41848df68a29dde48a2bd1d5509e4f072 Mon Sep 17 00:00:00 2001 From: Alexandre CUER Date: Wed, 22 May 2024 12:47:53 +0000 Subject: [PATCH 2/3] remove name and tag from the unique identifier. --- homeassistant/components/emoncms/sensor.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/emoncms/sensor.py b/homeassistant/components/emoncms/sensor.py index 4ca0e3a88f029..32b118663e7cf 100644 --- a/homeassistant/components/emoncms/sensor.py +++ b/homeassistant/components/emoncms/sensor.py @@ -72,9 +72,9 @@ ) -def get_id(sensorid, feedtag, feedname, feedid, feeduserid): +def get_id(sensorid, feeduserid, feedid): """Return unique identifier for feed / sensor.""" - return f"emoncms{sensorid}_{feedtag}_{feedname}_{feedid}_{feeduserid}" + return f"emoncms{sensorid}_{feeduserid}_{feedid}" def setup_platform( @@ -153,9 +153,7 @@ def __init__( self._attr_name = f"EmonCMS{id_for_name} {feed_name}" else: self._attr_name = name - self._attr_unique_id = get_id( - sensorid, elem["tag"], elem["name"], elem["id"], elem["userid"] - ) + self._attr_unique_id = get_id(sensorid, elem["userid"], elem["id"]) self._attr_native_unit_of_measurement = unit_of_measurement self._hass = hass self._data = data @@ -234,10 +232,8 @@ def update(self) -> None: for elem in self._data.data if get_id( self._sensorid, - elem["tag"], - elem["name"], - elem["id"], elem["userid"], + elem["id"], ) == self._attr_unique_id ), From e7e941f6329c32c8e8d6175cfe6df79793e091e0 Mon Sep 17 00:00:00 2001 From: Alexandre CUER Date: Wed, 22 May 2024 17:52:30 +0000 Subject: [PATCH 3/3] type hints --- homeassistant/components/emoncms/sensor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/emoncms/sensor.py b/homeassistant/components/emoncms/sensor.py index 32b118663e7cf..588163396c82b 100644 --- a/homeassistant/components/emoncms/sensor.py +++ b/homeassistant/components/emoncms/sensor.py @@ -72,7 +72,7 @@ ) -def get_id(sensorid, feeduserid, feedid): +def get_id(sensorid: str, feeduserid: str, feedid: str) -> str: """Return unique identifier for feed / sensor.""" return f"emoncms{sensorid}_{feeduserid}_{feedid}"