1 """A entity class for Tractive integration."""
3 from __future__
import annotations
12 from .
import TractiveClient
13 from .const
import DOMAIN, SERVER_UNAVAILABLE
17 """Tractive entity class."""
19 _attr_has_entity_name =
True
23 client: TractiveClient,
24 trackable: dict[str, Any],
25 tracker_details: dict[str, Any],
26 dispatcher_signal: str,
28 """Initialize tracker entity."""
30 configuration_url=
"https://my.tractive.com/",
31 identifiers={(DOMAIN, tracker_details[
"_id"])},
32 name=trackable[
"details"][
"name"],
33 manufacturer=
"Tractive GmbH",
34 sw_version=tracker_details[
"fw_version"],
35 model=tracker_details[
"model_number"],
43 """Handle entity which will be added."""
44 if not self.
_client_client.subscribed:
58 f
"{SERVER_UNAVAILABLE}-{self._user_id}",
65 """Handle status update."""
66 self.
_attr_available_attr_available = event[self.entity_description.key]
is not None
71 """Handle server unavailable."""
None __init__(self, TractiveClient client, dict[str, Any] trackable, dict[str, Any] tracker_details, str dispatcher_signal)
None async_added_to_hass(self)
None handle_status_update(self, dict[str, Any] event)
None handle_server_unavailable(self)
None async_write_ha_state(self)
None async_on_remove(self, CALLBACK_TYPE func)
Callable[[], None] subscribe(HomeAssistant hass, str topic, MessageCallbackType msg_callback, int qos=DEFAULT_QOS, str encoding="utf-8")
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)