1 """The Mopeka integration."""
3 from __future__
import annotations
7 from mopeka_iot_ble
import MediumType, MopekaIOTBluetoothDeviceData
11 PassiveBluetoothProcessorCoordinator,
17 from .const
import CONF_MEDIUM_TYPE, DEFAULT_MEDIUM_TYPE
19 PLATFORMS: list[Platform] = [Platform.SENSOR]
21 _LOGGER = logging.getLogger(__name__)
24 type MopekaConfigEntry = ConfigEntry[PassiveBluetoothProcessorCoordinator]
28 """Set up Mopeka BLE device from a config entry."""
29 address = entry.unique_id
30 assert address
is not None
33 medium_type_str = entry.data.get(CONF_MEDIUM_TYPE, DEFAULT_MEDIUM_TYPE)
34 data = MopekaIOTBluetoothDeviceData(MediumType(medium_type_str))
39 mode=BluetoothScanningMode.PASSIVE,
40 update_method=data.update,
42 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
44 entry.async_on_unload(coordinator.async_start())
45 entry.async_on_unload(entry.add_update_listener(update_listener))
50 """Handle options update."""
51 await hass.config_entries.async_reload(entry.entry_id)
55 """Unload a config entry."""
56 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
bool async_setup_entry(HomeAssistant hass, MopekaConfigEntry entry)
None update_listener(HomeAssistant hass, MopekaConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, MopekaConfigEntry entry)