1 """Support for Huawei LTE routers."""
3 from __future__
import annotations
5 from collections.abc
import Callable
6 from datetime
import timedelta
13 from .const
import UPDATE_SIGNAL
19 """Huawei LTE entity base class."""
22 _attr_has_entity_name =
True
23 _attr_should_poll =
False
28 self._unsub_handlers: list[Callable] = []
32 """Return unique ID for entity within a router."""
33 raise NotImplementedError
37 """Return unique ID for entity."""
38 return f
"{self.router.config_entry.unique_id}-{self._device_unique_id}"
42 """Return whether the entity is available."""
47 raise NotImplementedError
50 """Connect to update signals."""
51 self._unsub_handlers.append(
56 """Update state if the update signal comes from our router."""
57 if config_entry_unique_id == self.
routerrouter.config_entry.unique_id:
61 """Invoke unsubscription handlers."""
62 for unsub
in self._unsub_handlers:
64 self._unsub_handlers.clear()
68 """Base entity with device info."""
72 """Get info for matching with parent router."""
74 connections=self.
routerrouter.device_connections,
75 identifiers=self.
routerrouter.device_identifiers,
DeviceInfo device_info(self)
None _async_maybe_update(self, str config_entry_unique_id)
None __init__(self, Router router)
None async_will_remove_from_hass(self)
str _device_unique_id(self)
None async_added_to_hass(self)
None async_schedule_update_ha_state(self, bool force_refresh=False)
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)