From f25d56d6669875d7da2f87543003a039ead3d237 Mon Sep 17 00:00:00 2001 From: Julius Mittenzwei Date: Wed, 14 Feb 2018 15:00:45 +0100 Subject: [PATCH] Code cleanup of velux scene (#12390) * Code cleanup of velux scene * fixed review comments * fixed review comments --- homeassistant/components/scene/velux.py | 33 +++++++++---------------- homeassistant/components/velux.py | 3 --- 2 files changed, 11 insertions(+), 25 deletions(-) diff --git a/homeassistant/components/scene/velux.py b/homeassistant/components/scene/velux.py index 8c87b434471..86d71153a2b 100644 --- a/homeassistant/components/scene/velux.py +++ b/homeassistant/components/scene/velux.py @@ -4,6 +4,8 @@ Support for VELUX scenes. For more details about this platform, please refer to the documentation at https://home-assistant.io/components/scene.velux/ """ +import asyncio + from homeassistant.components.scene import Scene from homeassistant.components.velux import _LOGGER, DATA_VELUX @@ -11,26 +13,22 @@ from homeassistant.components.velux import _LOGGER, DATA_VELUX DEPENDENCIES = ['velux'] -def setup_platform(hass, config, add_devices, discovery_info=None): +@asyncio.coroutine +def async_setup_platform(hass, config, async_add_devices, + discovery_info=None): """Set up the scenes for velux platform.""" - if DATA_VELUX not in hass.data \ - or not hass.data[DATA_VELUX].initialized: - return False - entities = [] for scene in hass.data[DATA_VELUX].pyvlx.scenes: - entities.append(VeluxScene(hass, scene)) - add_devices(entities) - return True + entities.append(VeluxScene(scene)) + async_add_devices(entities) class VeluxScene(Scene): """Representation of a velux scene.""" - def __init__(self, hass, scene): + def __init__(self, scene): """Init velux scene.""" _LOGGER.info("Adding VELUX scene: %s", scene) - self.hass = hass self.scene = scene @property @@ -38,16 +36,7 @@ class VeluxScene(Scene): """Return the name of the scene.""" return self.scene.name - @property - def should_poll(self): - """Return that polling is not necessary.""" - return False - - @property - def is_on(self): - """There is no way of detecting if a scene is active (yet).""" - return False - - def activate(self): + @asyncio.coroutine + def async_activate(self): """Activate the scene.""" - self.hass.async_add_job(self.scene.run()) + yield from self.scene.run() diff --git a/homeassistant/components/velux.py b/homeassistant/components/velux.py index b0c902aa83e..ad541ee9cfe 100644 --- a/homeassistant/components/velux.py +++ b/homeassistant/components/velux.py @@ -52,16 +52,13 @@ class VeluxModule: def __init__(self, hass, config): """Initialize for velux component.""" from pyvlx import PyVLX - self.initialized = False host = config[DOMAIN].get(CONF_HOST) password = config[DOMAIN].get(CONF_PASSWORD) self.pyvlx = PyVLX( host=host, password=password) - self.hass = hass @asyncio.coroutine def async_start(self): """Start velux component.""" yield from self.pyvlx.load_scenes() - self.initialized = True