1 """Support for AVM FRITZ!SmartHome devices."""
3 from __future__
import annotations
5 from abc
import ABC, abstractmethod
7 from pyfritzhome
import FritzhomeDevice
8 from pyfritzhome.devicetypes.fritzhomeentitybase
import FritzhomeEntityBase
14 from .const
import DOMAIN
15 from .coordinator
import FritzboxDataUpdateCoordinator
19 """Basis FritzBox entity."""
23 coordinator: FritzboxDataUpdateCoordinator,
25 entity_description: EntityDescription |
None =
None,
27 """Initialize the FritzBox entity."""
31 if entity_description
is not None:
41 def data(self) -> FritzhomeEntityBase:
42 """Return data object from coordinator."""
46 """Reflects FritzhomeDevice and uses its attributes to construct FritzBoxDeviceEntity."""
50 """Return if entity is available."""
54 def data(self) -> FritzhomeDevice:
55 """Return device data object from coordinator."""
56 return self.coordinator.data.devices[self.
ainain]
60 """Return device specific attributes."""
63 identifiers={(DOMAIN, self.
ainain)},
67 configuration_url=self.coordinator.configuration_url,
DeviceInfo device_info(self)
FritzhomeDevice data(self)
None __init__(self, FritzboxDataUpdateCoordinator coordinator, str ain, EntityDescription|None entity_description=None)
FritzhomeEntityBase data(self)