From 0f2b8570d269b4fc713cdd66ce760f4aea51107a Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Tue, 22 Aug 2023 09:20:30 +0200 Subject: [PATCH] Add device to Dexcom (#98574) --- homeassistant/components/dexcom/sensor.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/dexcom/sensor.py b/homeassistant/components/dexcom/sensor.py index cbe24088378..1a3c2a21011 100644 --- a/homeassistant/components/dexcom/sensor.py +++ b/homeassistant/components/dexcom/sensor.py @@ -5,6 +5,7 @@ from homeassistant.components.sensor import SensorEntity from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_UNIT_OF_MEASUREMENT, CONF_USERNAME from homeassistant.core import HomeAssistant +from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import ( CoordinatorEntity, @@ -25,8 +26,10 @@ async def async_setup_entry( unit_of_measurement = config_entry.options[CONF_UNIT_OF_MEASUREMENT] async_add_entities( [ - DexcomGlucoseTrendSensor(coordinator, username), - DexcomGlucoseValueSensor(coordinator, username, unit_of_measurement), + DexcomGlucoseTrendSensor(coordinator, username, config_entry.entry_id), + DexcomGlucoseValueSensor( + coordinator, username, config_entry.entry_id, unit_of_measurement + ), ], False, ) @@ -36,11 +39,15 @@ class DexcomSensorEntity(CoordinatorEntity, SensorEntity): """Base Dexcom sensor entity.""" def __init__( - self, coordinator: DataUpdateCoordinator, username: str, key: str + self, coordinator: DataUpdateCoordinator, username: str, entry_id: str, key: str ) -> None: """Initialize the sensor.""" super().__init__(coordinator) self._attr_unique_id = f"{username}-{key}" + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, entry_id)}, + name=username, + ) class DexcomGlucoseValueSensor(DexcomSensorEntity): @@ -52,10 +59,11 @@ class DexcomGlucoseValueSensor(DexcomSensorEntity): self, coordinator: DataUpdateCoordinator, username: str, + entry_id: str, unit_of_measurement: str, ) -> None: """Initialize the sensor.""" - super().__init__(coordinator, username, "value") + super().__init__(coordinator, username, entry_id, "value") self._attr_native_unit_of_measurement = unit_of_measurement self._key = "mg_dl" if unit_of_measurement == MG_DL else "mmol_l" self._attr_name = f"{DOMAIN}_{username}_glucose_value" @@ -71,9 +79,11 @@ class DexcomGlucoseValueSensor(DexcomSensorEntity): class DexcomGlucoseTrendSensor(DexcomSensorEntity): """Representation of a Dexcom glucose trend sensor.""" - def __init__(self, coordinator: DataUpdateCoordinator, username: str) -> None: + def __init__( + self, coordinator: DataUpdateCoordinator, username: str, entry_id: str + ) -> None: """Initialize the sensor.""" - super().__init__(coordinator, username, "trend") + super().__init__(coordinator, username, entry_id, "trend") self._attr_name = f"{DOMAIN}_{username}_glucose_trend" @property