1 """Network client device class."""
3 from __future__
import annotations
5 from datetime
import datetime
11 from .const
import ATTR_DEVICE_TRACKER
15 """Represents a network device."""
17 def __init__(self, mac: str, params: dict[str, Any]) ->
None:
18 """Initialize the network device."""
21 self.
_last_seen_last_seen: datetime |
None =
None
22 self._attrs: dict[str, Any] = {}
27 """Return device name."""
32 """Return device primary ip address."""
37 """Return device mac."""
42 """Return device last seen."""
46 def attrs(self) -> dict[str, Any]:
47 """Return device attributes."""
49 for attr
in ATTR_DEVICE_TRACKER:
51 self._attrs[
slugify(attr)] = attr_data[attr]
56 wireless_params: dict[str, Any] |
None =
None,
57 params: dict[str, Any] |
None =
None,
60 """Update Device params."""
datetime|None last_seen(self)
None __init__(self, str mac, dict[str, Any] params)
dict[str, Any] attrs(self)
str|None ip_address(self)
None update(self, dict[str, Any]|None wireless_params=None, dict[str, Any]|None params=None, bool active=False)
web.Response get(self, web.Request request, str config_key)