From 8358ab56ea3ce210e837c2bca977b3335191f025 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 16 Dec 2016 17:36:50 +0100 Subject: [PATCH] Bugfix asyncio wait (#4946) --- homeassistant/components/input_boolean.py | 3 ++- homeassistant/components/input_select.py | 9 ++++++--- homeassistant/components/input_slider.py | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/input_boolean.py b/homeassistant/components/input_boolean.py index 579e6bade3e..16b2d365976 100644 --- a/homeassistant/components/input_boolean.py +++ b/homeassistant/components/input_boolean.py @@ -95,7 +95,8 @@ def async_setup(hass, config): attr = 'async_toggle' tasks = [getattr(input_b, attr)() for input_b in target_inputs] - yield from asyncio.wait(tasks, loop=hass.loop) + if tasks: + yield from asyncio.wait(tasks, loop=hass.loop) hass.services.async_register( DOMAIN, SERVICE_TURN_OFF, async_handler_service, schema=SERVICE_SCHEMA) diff --git a/homeassistant/components/input_select.py b/homeassistant/components/input_select.py index 9b563d271f5..bd25a74ae3f 100644 --- a/homeassistant/components/input_select.py +++ b/homeassistant/components/input_select.py @@ -113,7 +113,8 @@ def async_setup(hass, config): tasks = [input_select.async_select_option(call.data[ATTR_OPTION]) for input_select in target_inputs] - yield from asyncio.wait(tasks, loop=hass.loop) + if tasks: + yield from asyncio.wait(tasks, loop=hass.loop) hass.services.async_register( DOMAIN, SERVICE_SELECT_OPTION, async_select_option_service, @@ -126,7 +127,8 @@ def async_setup(hass, config): tasks = [input_select.async_offset_index(1) for input_select in target_inputs] - yield from asyncio.wait(tasks, loop=hass.loop) + if tasks: + yield from asyncio.wait(tasks, loop=hass.loop) hass.services.async_register( DOMAIN, SERVICE_SELECT_NEXT, async_select_next_service, @@ -139,7 +141,8 @@ def async_setup(hass, config): tasks = [input_select.async_offset_index(-1) for input_select in target_inputs] - yield from asyncio.wait(tasks, loop=hass.loop) + if tasks: + yield from asyncio.wait(tasks, loop=hass.loop) hass.services.async_register( DOMAIN, SERVICE_SELECT_PREVIOUS, async_select_previous_service, diff --git a/homeassistant/components/input_slider.py b/homeassistant/components/input_slider.py index eccffb5ae29..d2453a97d14 100644 --- a/homeassistant/components/input_slider.py +++ b/homeassistant/components/input_slider.py @@ -105,7 +105,8 @@ def async_setup(hass, config): tasks = [input_slider.async_select_value(call.data[ATTR_VALUE]) for input_slider in target_inputs] - yield from asyncio.wait(tasks, loop=hass.loop) + if tasks: + yield from asyncio.wait(tasks, loop=hass.loop) hass.services.async_register( DOMAIN, SERVICE_SELECT_VALUE, async_select_value_service,