1 """Base entity for Withings."""
3 from __future__
import annotations
7 from aiowithings
import Device
12 from .const
import DOMAIN
13 from .coordinator
import (
14 WithingsDataUpdateCoordinator,
15 WithingsDeviceDataUpdateCoordinator,
19 class WithingsEntity[_T: WithingsDataUpdateCoordinator[Any]](CoordinatorEntity[_T]):
20 """Base class for withings entities."""
22 _attr_has_entity_name =
True
29 """Initialize the Withings entity."""
31 self._attr_unique_id = f
"withings_{coordinator.config_entry.unique_id}_{key}"
33 identifiers={(DOMAIN,
str(coordinator.config_entry.unique_id))},
34 manufacturer=
"Withings",
39 """Base class for withings device entities."""
43 coordinator: WithingsDeviceDataUpdateCoordinator,
47 """Initialize the Withings entity."""
52 identifiers={(DOMAIN, device_id)},
53 manufacturer=
"Withings",
54 name=self.
devicedevice.raw_model,
55 model=self.
devicedevice.raw_model,
56 via_device=(DOMAIN,
str(coordinator.config_entry.unique_id)),
61 """Return True if entity is available."""
62 return super().available
and self.
device_iddevice_id
in self.coordinator.data
66 """Return the Withings device."""
67 return self.coordinator.data[self.
device_iddevice_id]
None __init__(self, WithingsDeviceDataUpdateCoordinator coordinator, str device_id, str key)
None __init__(self, _T coordinator, str key)