From 55aa341daba2bac150e8e4924c5b5c8fdd94c4e5 Mon Sep 17 00:00:00 2001 From: Arjan van Balken Date: Sun, 2 Feb 2020 15:45:05 +0100 Subject: [PATCH] Add unique_id to essent sensors (#31408) * Fix mix-up of sensor entities and their values * Prevent multiple calls for the same meter --- homeassistant/components/essent/sensor.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/essent/sensor.py b/homeassistant/components/essent/sensor.py index b106d9d2ae66..e3ce1ccaafa5 100644 --- a/homeassistant/components/essent/sensor.py +++ b/homeassistant/components/essent/sensor.py @@ -1,5 +1,6 @@ """Support for Essent API.""" from datetime import timedelta +from typing import Optional from pyessent import PyEssent import voluptuous as vol @@ -73,7 +74,7 @@ class EssentBase: def update(self): """Retrieve the latest meter data from Essent.""" essent = PyEssent(self._username, self._password) - eans = essent.get_EANs() + eans = set(essent.get_EANs()) for possible_meter in eans: meter_data = essent.read_meter(possible_meter, only_last_meter_reading=True) if meter_data: @@ -92,6 +93,11 @@ class EssentMeter(Entity): self._tariff = tariff self._unit = unit + @property + def unique_id(self) -> Optional[str]: + """Return a unique ID.""" + return f"{self._meter}-{self._type}-{self._tariff}" + @property def name(self): """Return the name of the sensor."""