1 """Support for EnOcean devices."""
3 import voluptuous
as vol
11 from .const
import DATA_ENOCEAN, DOMAIN, ENOCEAN_DONGLE
12 from .dongle
import EnOceanDongle
14 CONFIG_SCHEMA = vol.Schema(
15 {DOMAIN: vol.Schema({vol.Required(CONF_DEVICE): cv.string})}, extra=vol.ALLOW_EXTRA
19 async
def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
20 """Set up the EnOcean component."""
22 if DOMAIN
not in config:
25 if hass.config_entries.async_entries(DOMAIN):
30 hass.async_create_task(
31 hass.config_entries.flow.async_init(
32 DOMAIN, context={
"source": SOURCE_IMPORT}, data=config[DOMAIN]
40 """Set up an EnOcean dongle for the given entry."""
41 enocean_data = hass.data.setdefault(DATA_ENOCEAN, {})
42 usb_dongle =
EnOceanDongle(hass, config_entry.data[CONF_DEVICE])
43 await usb_dongle.async_setup()
44 enocean_data[ENOCEAN_DONGLE] = usb_dongle
50 """Unload ENOcean config entry."""
52 enocean_dongle = hass.data[DATA_ENOCEAN][ENOCEAN_DONGLE]
53 enocean_dongle.unload()
54 hass.data.pop(DATA_ENOCEAN)
bool async_setup(HomeAssistant hass, ConfigType config)
bool async_unload_entry(HomeAssistant hass, ConfigEntry config_entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry config_entry)