1 """Support for tracking iBeacon devices."""
3 from __future__
import annotations
5 from ibeacon_ble
import iBeaconAdvertisement
14 from .
import IBeaconConfigEntry
15 from .const
import SIGNAL_IBEACON_DEVICE_NEW
16 from .coordinator
import IBeaconCoordinator
17 from .entity
import IBeaconEntity
22 entry: IBeaconConfigEntry,
23 async_add_entities: AddEntitiesCallback,
25 """Set up device tracker for iBeacon Tracker component."""
26 coordinator = entry.runtime_data
29 def _async_device_new(
32 ibeacon_advertisement: iBeaconAdvertisement,
34 """Signal a new device."""
41 ibeacon_advertisement,
46 entry.async_on_unload(
52 """An iBeacon Tracker entity."""
55 _attr_translation_key =
"device_tracker"
59 coordinator: IBeaconCoordinator,
61 device_unique_id: str,
62 ibeacon_advertisement: iBeaconAdvertisement,
64 """Initialize an iBeacon tracker entity."""
66 coordinator, identifier, device_unique_id, ibeacon_advertisement
73 """Return the state of the device."""
74 return STATE_HOME
if self.
_active_active
else STATE_NOT_HOME
78 """Return tracker source type."""
79 return SourceType.BLUETOOTH_LE
84 ibeacon_advertisement: iBeaconAdvertisement,
93 """Set unavailable."""
None _async_seen(self, iBeaconAdvertisement ibeacon_advertisement)
None _async_unavailable(self)
None __init__(self, IBeaconCoordinator coordinator, str identifier, str device_unique_id, iBeaconAdvertisement ibeacon_advertisement)
SourceType source_type(self)
None async_write_ha_state(self)
None async_setup_entry(HomeAssistant hass, IBeaconConfigEntry entry, AddEntitiesCallback async_add_entities)
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)