1 """Support for Vodafone Station routers."""
3 from __future__
import annotations
12 from .const
import _LOGGER, DOMAIN
13 from .coordinator
import VodafoneStationDeviceInfo, VodafoneStationRouter
17 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
19 """Set up device tracker for Vodafone Station component."""
21 _LOGGER.debug(
"Start device trackers setup")
22 coordinator: VodafoneStationRouter = hass.data[DOMAIN][entry.entry_id]
27 def async_update_router() -> None:
28 """Update the values of the router."""
31 entry.async_on_unload(
33 hass, coordinator.signal_device_new, async_update_router
42 coordinator: VodafoneStationRouter,
43 async_add_entities: AddEntitiesCallback,
46 """Add new tracker entities from the router."""
49 _LOGGER.debug(
"Adding device trackers entities")
50 for mac, device_info
in coordinator.data.devices.items():
53 _LOGGER.debug(
"New device tracker: %s", device_info.device.name)
61 """Representation of a Vodafone Station device."""
63 _attr_translation_key =
"device_tracker"
67 self, coordinator: VodafoneStationRouter, device_info: VodafoneStationDeviceInfo
69 """Initialize a Vodafone Station device."""
72 mac = device_info.device.mac
75 self.
_attr_hostname_attr_hostname = device_info.device.name
or mac.replace(
":",
"_")
79 """Return fresh data for the device."""
80 return self.coordinator.data.devices[self.mac_address]
84 """Return true if the device is connected to the network."""
89 """Return the primary ip address of the device."""
VodafoneStationDeviceInfo _device_info(self)
str|None ip_address(self)
None __init__(self, VodafoneStationRouter coordinator, VodafoneStationDeviceInfo device_info)
None async_add_new_tracked_entities(VodafoneStationRouter coordinator, AddEntitiesCallback async_add_entities, set[str] tracked)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)