diff --git a/custom_components/mega/__init__.py b/custom_components/mega/__init__.py index 33f5b0c..6d79d2b 100644 --- a/custom_components/mega/__init__.py +++ b/custom_components/mega/__init__.py @@ -174,10 +174,9 @@ async def updater(hass: HomeAssistant, entry: ConfigEntry): :param entry: :return: """ - hub: MegaD = hass.data[DOMAIN][entry.data[CONF_ID]] - hub.poll_interval = entry.options[CONF_SCAN_INTERVAL] - hub.port_to_scan = entry.options.get(CONF_PORT_TO_SCAN, 0) - entry.data = entry.options + # hub: MegaD = hass.data[DOMAIN][entry.data[CONF_ID]] + # hub.poll_interval = entry.options[CONF_SCAN_INTERVAL] + # hub.port_to_scan = entry.options.get(CONF_PORT_TO_SCAN, 0) await hass.config_entries.async_reload(entry.entry_id) return True diff --git a/custom_components/mega/config_flow.py b/custom_components/mega/config_flow.py index a7e5a31..64812da 100644 --- a/custom_components/mega/config_flow.py +++ b/custom_components/mega/config_flow.py @@ -117,24 +117,19 @@ class OptionsFlowHandler(config_entries.OptionsFlow): async def async_step_init(self, user_input=None): """Manage the options.""" new_naming = self.config_entry.data.get('new_naming', False) - hub = await get_hub(self.hass, self.config_entry.data) if user_input is not None: reload = user_input.pop(CONF_RELOAD) cfg = dict(self.config_entry.data) cfg.update(user_input) - hub = await get_hub(self.hass, cfg) - if reload: - await hub.start() - new = await hub.get_config(nports=user_input.get(CONF_NPORTS, 37)) - await hub.stop() - - _LOGGER.debug(f'new config: %s', new) - cfg = dict(self.config_entry.data) - for x in REMOVE_CONFIG: - cfg.pop(x, None) - cfg.update(new) - cfg['new_naming'] = new_naming + self.config_entry.data = cfg + await get_hub(self.hass, cfg) + + if reload: + id = self.config_entry.data.get('id', self.config_entry.entry_id) + hub: MegaD = self.hass.data[DOMAIN].get(id) + await hub.reload(reload_entry=False) + return self.async_create_entry( title='', data=cfg, diff --git a/custom_components/mega/hub.py b/custom_components/mega/hub.py index 25ae7e4..a2a2930 100644 --- a/custom_components/mega/hub.py +++ b/custom_components/mega/hub.py @@ -65,13 +65,13 @@ class MegaD: def __init__( self, hass: HomeAssistant, - config: ConfigEntry, loop: asyncio.AbstractEventLoop, host: str, password: str, mqtt: mqtt.MQTT, lg: logging.Logger, id: str, + config: ConfigEntry = None, mqtt_inputs: bool = True, mqtt_id: str = None, scan_interval=60, @@ -625,7 +625,7 @@ class MegaD: stime=datetime.now().strftime('%H:%M:%S') ) - async def reload(self): + async def reload(self, reload_entry=True): new = await self.get_config(nports=self.nports) self.lg.debug(f'new config: %s', new) cfg = dict(self.config.data) @@ -633,4 +633,5 @@ class MegaD: cfg.pop(x, None) cfg.update(new) self.config.data = cfg - await self.hass.config_entries.async_reload(self.config.entry_id) + if reload_entry: + await self.hass.config_entries.async_reload(self.config.entry_id)