From 7ac6b97d398ff1709eefa0b3f6a263ff3c78071f Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Wed, 6 Feb 2019 20:09:58 -0700 Subject: [PATCH 1/4] Make monitored_conditions more specific in Ambient PWS --- homeassistant/components/ambient_station/__init__.py | 7 ++++++- homeassistant/components/ambient_station/config_flow.py | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/ambient_station/__init__.py b/homeassistant/components/ambient_station/__init__.py index 4aa19dbc69ea65..d33a4a9a02630f 100644 --- a/homeassistant/components/ambient_station/__init__.py +++ b/homeassistant/components/ambient_station/__init__.py @@ -28,6 +28,8 @@ REQUIREMENTS = ['aioambient==0.1.0'] _LOGGER = logging.getLogger(__name__) +DATA_CONFIG = 'config' + DEFAULT_SOCKET_MIN_RETRY = 15 TYPE_24HOURRAININ = '24hourrainin' @@ -121,6 +123,9 @@ async def async_setup(hass, config): hass.config_entries.flow.async_init( DOMAIN, context={'source': SOURCE_IMPORT}, data=conf)) + # Store config for entry setup: + hass.data[DOMAIN][DATA_CONFIG] = conf.get(CONF_MONITORED_CONDITIONS) + return True @@ -137,7 +142,7 @@ async def async_setup_entry(hass, config_entry): Client( config_entry.data[CONF_API_KEY], config_entry.data[CONF_APP_KEY], session), - config_entry.data.get(CONF_MONITORED_CONDITIONS, [])) + hass.data[DOMAIN].get(DATA_CONFIG, [])) hass.loop.create_task(ambient.ws_connect()) hass.data[DOMAIN][DATA_CLIENT][config_entry.entry_id] = ambient except WebsocketConnectionError as err: diff --git a/homeassistant/components/ambient_station/config_flow.py b/homeassistant/components/ambient_station/config_flow.py index 56e747ce5e096d..b682f540408f17 100644 --- a/homeassistant/components/ambient_station/config_flow.py +++ b/homeassistant/components/ambient_station/config_flow.py @@ -69,4 +69,8 @@ async def async_step_user(self, user_input=None): # to show nicely in the UI, so we take the first 12 characters (similar # to how GitHub does it): return self.async_create_entry( - title=user_input[CONF_APP_KEY][:12], data=user_input) + title=user_input[CONF_APP_KEY][:12], + data={ + CONF_API_KEY: user_input[CONF_API_KEY], + CONF_APP_KEY: user_input[CONF_APP_KEY], + }) From 65849c765debda0582dedae595277d42bdbd43e5 Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Wed, 6 Feb 2019 20:38:41 -0700 Subject: [PATCH 2/4] Revert messing around with storing monitored_conditions elsewhere --- homeassistant/components/ambient_station/__init__.py | 8 ++------ homeassistant/components/ambient_station/config_flow.py | 6 +----- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/ambient_station/__init__.py b/homeassistant/components/ambient_station/__init__.py index d33a4a9a02630f..d79be697728f16 100644 --- a/homeassistant/components/ambient_station/__init__.py +++ b/homeassistant/components/ambient_station/__init__.py @@ -28,8 +28,6 @@ REQUIREMENTS = ['aioambient==0.1.0'] _LOGGER = logging.getLogger(__name__) -DATA_CONFIG = 'config' - DEFAULT_SOCKET_MIN_RETRY = 15 TYPE_24HOURRAININ = '24hourrainin' @@ -123,9 +121,6 @@ async def async_setup(hass, config): hass.config_entries.flow.async_init( DOMAIN, context={'source': SOURCE_IMPORT}, data=conf)) - # Store config for entry setup: - hass.data[DOMAIN][DATA_CONFIG] = conf.get(CONF_MONITORED_CONDITIONS) - return True @@ -142,7 +137,8 @@ async def async_setup_entry(hass, config_entry): Client( config_entry.data[CONF_API_KEY], config_entry.data[CONF_APP_KEY], session), - hass.data[DOMAIN].get(DATA_CONFIG, [])) + config_entry.data.get( + CONF_MONITORED_CONDITIONS, list(SENSOR_TYPES))) hass.loop.create_task(ambient.ws_connect()) hass.data[DOMAIN][DATA_CLIENT][config_entry.entry_id] = ambient except WebsocketConnectionError as err: diff --git a/homeassistant/components/ambient_station/config_flow.py b/homeassistant/components/ambient_station/config_flow.py index b682f540408f17..56e747ce5e096d 100644 --- a/homeassistant/components/ambient_station/config_flow.py +++ b/homeassistant/components/ambient_station/config_flow.py @@ -69,8 +69,4 @@ async def async_step_user(self, user_input=None): # to show nicely in the UI, so we take the first 12 characters (similar # to how GitHub does it): return self.async_create_entry( - title=user_input[CONF_APP_KEY][:12], - data={ - CONF_API_KEY: user_input[CONF_API_KEY], - CONF_APP_KEY: user_input[CONF_APP_KEY], - }) + title=user_input[CONF_APP_KEY][:12], data=user_input) From 8e7b0cef47d59b2a2640ef5c9c8078d3dc3a9a39 Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Wed, 6 Feb 2019 20:41:23 -0700 Subject: [PATCH 3/4] Come on, Aaron --- homeassistant/components/ambient_station/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/homeassistant/components/ambient_station/__init__.py b/homeassistant/components/ambient_station/__init__.py index d79be697728f16..4aa19dbc69ea65 100644 --- a/homeassistant/components/ambient_station/__init__.py +++ b/homeassistant/components/ambient_station/__init__.py @@ -137,8 +137,7 @@ async def async_setup_entry(hass, config_entry): Client( config_entry.data[CONF_API_KEY], config_entry.data[CONF_APP_KEY], session), - config_entry.data.get( - CONF_MONITORED_CONDITIONS, list(SENSOR_TYPES))) + config_entry.data.get(CONF_MONITORED_CONDITIONS, [])) hass.loop.create_task(ambient.ws_connect()) hass.data[DOMAIN][DATA_CLIENT][config_entry.entry_id] = ambient except WebsocketConnectionError as err: From 33dddf82c185b96a81d6ff73918c7110c1944305 Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Thu, 7 Feb 2019 13:53:16 -0700 Subject: [PATCH 4/4] Fix bug with monitored_conditions in Ambient PWS --- .../components/ambient_station/__init__.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/ambient_station/__init__.py b/homeassistant/components/ambient_station/__init__.py index 4aa19dbc69ea65..9325d4a8eab039 100644 --- a/homeassistant/components/ambient_station/__init__.py +++ b/homeassistant/components/ambient_station/__init__.py @@ -28,6 +28,8 @@ REQUIREMENTS = ['aioambient==0.1.0'] _LOGGER = logging.getLogger(__name__) +DATA_CONFIG = 'config' + DEFAULT_SOCKET_MIN_RETRY = 15 TYPE_24HOURRAININ = '24hourrainin' @@ -114,12 +116,20 @@ async def async_setup(hass, config): conf = config[DOMAIN] + # Store config for use during entry setup: + hass.data[DOMAIN][DATA_CONFIG] = conf + if conf[CONF_APP_KEY] in configured_instances(hass): return True hass.async_create_task( hass.config_entries.flow.async_init( - DOMAIN, context={'source': SOURCE_IMPORT}, data=conf)) + DOMAIN, + context={'source': SOURCE_IMPORT}, + data={ + CONF_API_KEY: conf[CONF_API_KEY], + CONF_APP_KEY: conf[CONF_APP_KEY] + })) return True @@ -137,7 +147,7 @@ async def async_setup_entry(hass, config_entry): Client( config_entry.data[CONF_API_KEY], config_entry.data[CONF_APP_KEY], session), - config_entry.data.get(CONF_MONITORED_CONDITIONS, [])) + hass.data[DOMAIN][DATA_CONFIG].get(CONF_MONITORED_CONDITIONS, [])) hass.loop.create_task(ambient.ws_connect()) hass.data[DOMAIN][DATA_CLIENT][config_entry.entry_id] = ambient except WebsocketConnectionError as err: