1 """Component for the Somfy MyLink device supporting the Synergy API."""
5 from somfy_mylink_synergy
import SomfyMyLinkSynergy
12 from .const
import CONF_SYSTEM_ID, DATA_SOMFY_MYLINK, DOMAIN, MYLINK_STATUS, PLATFORMS
14 UNDO_UPDATE_LISTENER =
"undo_update_listener"
16 _LOGGER = logging.getLogger(__name__)
20 """Set up Somfy MyLink from a config entry."""
21 hass.data.setdefault(DOMAIN, {})
24 somfy_mylink = SomfyMyLinkSynergy(
25 config[CONF_SYSTEM_ID], config[CONF_HOST], config[CONF_PORT]
29 mylink_status = await somfy_mylink.status_info()
30 except TimeoutError
as ex:
32 "Unable to connect to the Somfy MyLink device, please check your settings"
35 if not mylink_status
or "error" in mylink_status:
37 "Somfy Mylink failed to setup because of an error: %s",
38 mylink_status.get(
"error", {}).
get(
39 "message",
"Empty response from mylink device"
44 if "result" not in mylink_status:
47 undo_listener = entry.add_update_listener(_async_update_listener)
49 hass.data[DOMAIN][entry.entry_id] = {
50 DATA_SOMFY_MYLINK: somfy_mylink,
51 MYLINK_STATUS: mylink_status,
52 UNDO_UPDATE_LISTENER: undo_listener,
55 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
61 """Handle options update."""
62 await hass.config_entries.async_reload(entry.entry_id)
66 """Unload a config entry."""
67 unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
69 hass.data[DOMAIN][entry.entry_id][UNDO_UPDATE_LISTENER]()
72 hass.data[DOMAIN].pop(entry.entry_id)
web.Response get(self, web.Request request, str config_key)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
None _async_update_listener(HomeAssistant hass, ConfigEntry entry)