1 """Entity for UPnP/IGD."""
3 from __future__
import annotations
5 from dataclasses
import dataclass
11 from .coordinator
import UpnpDataUpdateCoordinator
14 @dataclass(frozen=True)
16 """UPnP entity description."""
18 unique_id: str |
None =
None
19 value_key: str |
None =
None
22 """Post initialize."""
23 object.__setattr__(self,
"value_key", self.value_key
or self.key)
27 """Base class for UPnP/IGD entities."""
29 entity_description: UpnpEntityDescription
30 _attr_has_entity_name =
True
34 coordinator: UpnpDataUpdateCoordinator,
35 entity_description: UpnpEntityDescription,
37 """Initialize the base entities."""
41 self.
_attr_unique_id_attr_unique_id = f
"{coordinator.device.original_udn}_{entity_description.unique_id or entity_description.key}"
43 connections=coordinator.device_entry.connections,
44 name=coordinator.device_entry.name,
45 manufacturer=coordinator.device_entry.manufacturer,
46 model=coordinator.device_entry.model,
47 configuration_url=coordinator.device_entry.configuration_url,
52 """Return if entity is available."""
53 return super().available
and (
None __init__(self, UpnpDataUpdateCoordinator coordinator, UpnpEntityDescription entity_description)