From d206de10571a89587265ac6f9b080e89bd4e6828 Mon Sep 17 00:00:00 2001 From: myTselection Date: Sat, 7 Oct 2023 11:46:31 +0200 Subject: [PATCH] v2.2.0, fix device info and sensor naming, fixing #8 --- custom_components/myenergy/manifest.json | 2 +- custom_components/myenergy/sensor.py | 28 ++++++++++++++---------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/custom_components/myenergy/manifest.json b/custom_components/myenergy/manifest.json index 9a012eb..95eebf3 100644 --- a/custom_components/myenergy/manifest.json +++ b/custom_components/myenergy/manifest.json @@ -9,5 +9,5 @@ "iot_class": "cloud_polling", "issue_tracker": "https://github.com/myTselection/MyEnergy/issues", "requirements": ["bs4","requests"], - "version": "2.1.0" + "version": "2.2.0" } diff --git a/custom_components/myenergy/sensor.py b/custom_components/myenergy/sensor.py index ade8504..aabcb28 100644 --- a/custom_components/myenergy/sensor.py +++ b/custom_components/myenergy/sensor.py @@ -8,7 +8,7 @@ from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity, SensorDeviceClass from homeassistant.const import ATTR_ATTRIBUTION from homeassistant.helpers.aiohttp_client import async_get_clientsession -from homeassistant.helpers.entity import Entity +from homeassistant.helpers.entity import Entity, DeviceInfo from homeassistant.util import Throttle from homeassistant.const import ( CONF_NAME, @@ -150,11 +150,11 @@ def __init__(self, config, hass): @property def unique_id(self): - return f"{DOMAIN}-{self._postalcode}" + return f"{NAME} {self._postalcode}" @property def name(self) -> str: """Return the name of the sensor.""" - return f"{DOMAIN}-{self._postalcode}" + return self.unique_id # same as update, but without throttle to make sure init is always executed async def _forced_update(self): @@ -265,12 +265,12 @@ def icon(self) -> str: @property def unique_id(self) -> str: """Return the unique ID of the sensor.""" - return f"{self._data.unique_id}-{self._fuel_type.fullnameEN}-{self._contract_type.fullname}" + return f"{self._data.unique_id} {self._fuel_type.fullnameEN} {self._contract_type.fullname}" @property def name(self) -> str: """Return the name of the sensor.""" - return self._name + return self.unique_id @property def extra_state_attributes(self) -> dict: @@ -291,14 +291,18 @@ def extra_state_attributes(self) -> dict: "total kWh per year": self._kWhyear } + @property - def device_info(self) -> dict: - """Device info dictionary.""" - return { - "identifiers": {(DOMAIN, self._data.unique_id)}, - "name": self.name, - "manufacturer": DOMAIN, - } + def device_info(self) -> DeviceInfo: + """Return the device info.""" + return DeviceInfo( + identifiers={ + # Serial numbers are unique identifiers within a specific domain + (NAME, self._data.unique_id) + }, + name=self._data.name, + manufacturer= NAME + ) @property def unit(self) -> int: