1 """Support for iBeacon device sensors."""
3 from __future__
import annotations
5 from abc
import abstractmethod
7 from ibeacon_ble
import iBeaconAdvertisement
14 from .const
import ATTR_MAJOR, ATTR_MINOR, ATTR_SOURCE, ATTR_UUID, DOMAIN
15 from .coordinator
import IBeaconCoordinator, signal_seen, signal_unavailable
19 """An iBeacon entity."""
21 _attr_should_poll =
False
22 _attr_has_entity_name =
True
26 coordinator: IBeaconCoordinator,
28 device_unique_id: str,
29 ibeacon_advertisement: iBeaconAdvertisement,
31 """Initialize an iBeacon sensor entity."""
37 identifiers={(DOMAIN, device_unique_id)},
43 ) -> dict[str, str | int]:
44 """Return the device state attributes."""
47 ATTR_UUID:
str(ibeacon_advertisement.uuid),
48 ATTR_MAJOR: ibeacon_advertisement.major,
49 ATTR_MINOR: ibeacon_advertisement.minor,
50 ATTR_SOURCE: ibeacon_advertisement.source,
57 ibeacon_advertisement: iBeaconAdvertisement,
64 """Set unavailable."""
67 """Register state update callbacks."""
80 self._async_unavailable,
dict[str, str|int] extra_state_attributes(self)
None _async_unavailable(self)
None async_added_to_hass(self)
None _async_seen(self, iBeaconAdvertisement ibeacon_advertisement)
None __init__(self, IBeaconCoordinator coordinator, str identifier, str device_unique_id, iBeaconAdvertisement ibeacon_advertisement)
str signal_unavailable(str unique_id)
str signal_seen(str unique_id)
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)