From 6f77d9bc34501510abe657a0b3aa54afa18e8fa5 Mon Sep 17 00:00:00 2001 From: Julius Mittenzwei Date: Sun, 10 Mar 2019 11:47:22 +0100 Subject: [PATCH] Don't wait until final position of Velux cover is reached (#21558) ## Description: * Bump version to latest version of pyvlx: 0.2.10. Library more failure tolerant, when detecting an unsupported device. * When calling API (e.g. run scene, change position) don't wait until device has reached target position (This caused HASS to be flaky while the device was moving) * Support for vertical and horizontal awnings. --- homeassistant/components/velux/__init__.py | 2 +- homeassistant/components/velux/cover.py | 9 +++++---- homeassistant/components/velux/scene.py | 2 +- requirements_all.txt | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/velux/__init__.py b/homeassistant/components/velux/__init__.py index 6ea50ae6c0d..a46f62dbd5f 100644 --- a/homeassistant/components/velux/__init__.py +++ b/homeassistant/components/velux/__init__.py @@ -12,7 +12,7 @@ DATA_VELUX = "data_velux" SUPPORTED_DOMAINS = ['cover', 'scene'] _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['pyvlx==0.2.9'] +REQUIREMENTS = ['pyvlx==0.2.10'] CONFIG_SCHEMA = vol.Schema({ DOMAIN: vol.Schema({ diff --git a/homeassistant/components/velux/cover.py b/homeassistant/components/velux/cover.py index 1c3192961af..6abaa42bb9d 100644 --- a/homeassistant/components/velux/cover.py +++ b/homeassistant/components/velux/cover.py @@ -71,11 +71,11 @@ class VeluxCover(CoverDevice): async def async_close_cover(self, **kwargs): """Close the cover.""" - await self.node.close() + await self.node.close(wait_for_completion=False) async def async_open_cover(self, **kwargs): """Open the cover.""" - await self.node.open() + await self.node.open(wait_for_completion=False) async def async_set_cover_position(self, **kwargs): """Move the cover to a specific position.""" @@ -83,8 +83,9 @@ class VeluxCover(CoverDevice): position_percent = 100 - kwargs[ATTR_POSITION] from pyvlx import Position await self.node.set_position( - Position(position_percent=position_percent)) + Position(position_percent=position_percent), + wait_for_completion=False) async def async_stop_cover(self, **kwargs): """Stop the cover.""" - await self.node.stop() + await self.node.stop(wait_for_completion=False) diff --git a/homeassistant/components/velux/scene.py b/homeassistant/components/velux/scene.py index db1e9450daf..b0716dc2cb8 100644 --- a/homeassistant/components/velux/scene.py +++ b/homeassistant/components/velux/scene.py @@ -29,4 +29,4 @@ class VeluxScene(Scene): async def async_activate(self): """Activate the scene.""" - await self.scene.run() + await self.scene.run(wait_for_completion=False) diff --git a/requirements_all.txt b/requirements_all.txt index cf60d0cc3a7..1888bd72ae5 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1457,7 +1457,7 @@ pyvesync_v2==0.9.6 pyvizio==0.0.4 # homeassistant.components.velux -pyvlx==0.2.9 +pyvlx==0.2.10 # homeassistant.components.notify.html5 pywebpush==1.6.0