1 """The QNAP QSW integration."""
3 from __future__
import annotations
7 from aioqsw.localapi
import ConnectionOptions, QnapQswApi
15 from .const
import DOMAIN, QSW_COORD_DATA, QSW_COORD_FW
16 from .coordinator
import QswDataCoordinator, QswFirmwareCoordinator
18 _LOGGER = logging.getLogger(__name__)
20 PLATFORMS: list[Platform] = [
21 Platform.BINARY_SENSOR,
29 """Set up QNAP QSW from a config entry."""
30 options = ConnectionOptions(
32 entry.data[CONF_USERNAME],
33 entry.data[CONF_PASSWORD],
36 qsw = QnapQswApi(aiohttp_client.async_get_clientsession(hass), options)
39 await coord_data.async_config_entry_first_refresh()
43 await coord_fw.async_config_entry_first_refresh()
44 except ConfigEntryNotReady
as error:
45 _LOGGER.warning(error)
47 hass.data.setdefault(DOMAIN, {})[entry.entry_id] = {
48 QSW_COORD_DATA: coord_data,
49 QSW_COORD_FW: coord_fw,
52 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
58 """Unload a config entry."""
59 if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
60 hass.data[DOMAIN].pop(entry.entry_id)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)