1 """The Snooz component."""
3 from __future__
import annotations
7 from pysnooz.device
import SnoozDevice
15 from .const
import DOMAIN, PLATFORMS
16 from .models
import SnoozConfigurationData
20 """Set up Snooz device from a config entry."""
21 address: str = entry.data[CONF_ADDRESS]
22 token: str = entry.data[CONF_TOKEN]
25 logging.getLogger(
"transitions.core").setLevel(logging.WARNING)
29 f
"Could not find Snooz with address {address}. Try power cycling the device"
32 device = SnoozDevice(ble_device, token)
35 ble_device, device, entry.title
38 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
39 entry.async_on_unload(entry.add_update_listener(_async_update_listener))
44 """Handle options update."""
45 data: SnoozConfigurationData = hass.data[DOMAIN][entry.entry_id]
46 if entry.title != data.title:
47 await hass.config_entries.async_reload(entry.entry_id)
51 """Unload a config entry."""
52 if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
53 data: SnoozConfigurationData = hass.data[DOMAIN][entry.entry_id]
56 await data.device.async_disconnect()
58 hass.data[DOMAIN].pop(entry.entry_id)
60 if not hass.config_entries.async_entries(DOMAIN):
BLEDevice|None async_ble_device_from_address(HomeAssistant hass, str address, bool connectable=True)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
None _async_update_listener(HomeAssistant hass, ConfigEntry entry)