1 """Support for Dexcom sensors."""
3 from __future__
import annotations
5 from pydexcom
import GlucoseReading
15 DataUpdateCoordinator,
18 from .const
import DOMAIN
25 5:
"falling_slightly",
33 config_entry: ConfigEntry,
34 async_add_entities: AddEntitiesCallback,
36 """Set up the Dexcom sensors."""
37 coordinator = hass.data[DOMAIN][config_entry.entry_id]
38 username = config_entry.data[CONF_USERNAME]
48 CoordinatorEntity[DataUpdateCoordinator[GlucoseReading]], SensorEntity
50 """Base Dexcom sensor entity."""
52 _attr_has_entity_name =
True
56 coordinator: DataUpdateCoordinator[GlucoseReading],
61 """Initialize the sensor."""
65 identifiers={(DOMAIN, entry_id)},
71 """Representation of a Dexcom glucose value sensor."""
73 _attr_device_class = SensorDeviceClass.BLOOD_GLUCOSE_CONCENTRATION
74 _attr_native_unit_of_measurement = (
75 UnitOfBloodGlucoseConcentration.MILLIGRAMS_PER_DECILITER
77 _attr_translation_key =
"glucose_value"
81 coordinator: DataUpdateCoordinator,
85 """Initialize the sensor."""
86 super().
__init__(coordinator, username, entry_id,
"value")
90 """Return the state of the sensor."""
91 if self.coordinator.data:
92 return self.coordinator.data.mg_dl
97 """Representation of a Dexcom glucose trend sensor."""
99 _attr_translation_key =
"glucose_trend"
100 _attr_device_class = SensorDeviceClass.ENUM
101 _attr_options =
list(TRENDS.values())
104 self, coordinator: DataUpdateCoordinator, username: str, entry_id: str
106 """Initialize the sensor."""
107 super().
__init__(coordinator, username, entry_id,
"trend")
111 """Return the state of the sensor."""
112 if self.coordinator.data:
113 return TRENDS.get(self.coordinator.data.trend)
118 """Return if entity is available."""
119 return super().available
and (
120 self.coordinator.data
is None or self.coordinator.data.trend != 9
str|None native_value(self)
None __init__(self, DataUpdateCoordinator coordinator, str username, str entry_id)
None __init__(self, DataUpdateCoordinator coordinator, str username, str entry_id)
None __init__(self, DataUpdateCoordinator[GlucoseReading] coordinator, str username, str entry_id, str key)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)