1 """Support for Tractive binary sensors."""
3 from __future__
import annotations
8 BinarySensorDeviceClass,
10 BinarySensorEntityDescription,
16 from .
import Trackables, TractiveClient, TractiveConfigEntry
17 from .const
import TRACKER_HARDWARE_STATUS_UPDATED
18 from .entity
import TractiveEntity
22 """Tractive sensor."""
26 client: TractiveClient,
28 description: BinarySensorEntityDescription,
30 """Initialize sensor entity."""
35 f
"{TRACKER_HARDWARE_STATUS_UPDATED}-{item.tracker_details['_id']}",
38 self.
_attr_unique_id_attr_unique_id = f
"{item.trackable['_id']}_{description.key}"
44 """Handle status update."""
51 key=ATTR_BATTERY_CHARGING,
52 translation_key=
"tracker_battery_charging",
53 device_class=BinarySensorDeviceClass.BATTERY_CHARGING,
54 entity_category=EntityCategory.DIAGNOSTIC,
60 entry: TractiveConfigEntry,
61 async_add_entities: AddEntitiesCallback,
63 """Set up Tractive device trackers."""
64 client = entry.runtime_data.client
65 trackables = entry.runtime_data.trackables
69 for item
in trackables
70 if item.tracker_details.get(
"charging_state")
is not None
None __init__(self, TractiveClient client, Trackables item, BinarySensorEntityDescription description)
None handle_status_update(self, dict[str, Any] event)
None async_setup_entry(HomeAssistant hass, TractiveConfigEntry entry, AddEntitiesCallback async_add_entities)