1 """Support for tracking the proximity of a device."""
3 from __future__
import annotations
11 async_track_entity_registry_updated_event,
12 async_track_state_change_event,
15 from .const
import CONF_TRACKED_ENTITIES
16 from .coordinator
import ProximityConfigEntry, ProximityDataUpdateCoordinator
18 _LOGGER = logging.getLogger(__name__)
22 """Set up Proximity from a config entry."""
23 _LOGGER.debug(
"setup %s with config:%s", entry.title, entry.data)
27 entry.async_on_unload(
30 entry.data[CONF_TRACKED_ENTITIES],
31 coordinator.async_check_proximity_state_change,
35 entry.async_on_unload(
38 entry.data[CONF_TRACKED_ENTITIES],
39 coordinator.async_check_tracked_entity_change,
43 await coordinator.async_config_entry_first_refresh()
44 entry.runtime_data = coordinator
46 await hass.config_entries.async_forward_entry_setups(entry, [Platform.SENSOR])
47 entry.async_on_unload(entry.add_update_listener(_async_update_listener))
52 """Unload a config entry."""
53 return await hass.config_entries.async_unload_platforms(entry, [Platform.SENSOR])
57 """Handle options update."""
58 await hass.config_entries.async_reload(entry.entry_id)
None _async_update_listener(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ProximityConfigEntry entry)
CALLBACK_TYPE async_track_entity_registry_updated_event(HomeAssistant hass, str|Iterable[str] entity_ids, Callable[[Event[EventEntityRegistryUpdatedData]], Any] action, HassJobType|None job_type=None)
CALLBACK_TYPE async_track_state_change_event(HomeAssistant hass, str|Iterable[str] entity_ids, Callable[[Event[EventStateChangedData]], Any] action, HassJobType|None job_type=None)