From 31a2aa67e2a673a9222f689c8bb4a6d572a5cc9a Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Sat, 16 Jun 2018 04:20:13 +0200 Subject: [PATCH] Always stop any running animation before resetting the lights to a static configuration --- platypush/plugins/light/hue/__init__.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/platypush/plugins/light/hue/__init__.py b/platypush/plugins/light/hue/__init__.py index 4ebe0cb5..e44ac1e1 100644 --- a/platypush/plugins/light/hue/__init__.py +++ b/platypush/plugins/light/hue/__init__.py @@ -97,6 +97,7 @@ class LightHuePlugin(LightPlugin): def _exec(self, attr, *args, **kwargs): try: self.connect() + self.stop_animation() except Exception as e: # Reset bridge connection self.bridge = None @@ -159,11 +160,8 @@ class LightHuePlugin(LightPlugin): return self._exec('scene', name=name, lights=lights, groups=groups) def stop_animation(self): - if not self.redis: - self.logger.info('No animation is currently running') - return - - self.redis.rpush(self.ANIMATION_CTRL_QUEUE_NAME, 'STOP') + if self.animation_thread and self.animation_thread.is_alive(): + self.redis.rpush(self.ANIMATION_CTRL_QUEUE_NAME, 'STOP') def animate(self, animation, duration=None, hue_range=[0, MAX_HUE], sat_range=[0, MAX_SAT], @@ -266,9 +264,7 @@ class LightHuePlugin(LightPlugin): elif not lights: lights = self.lights - if self.animation_thread and self.animation_thread.is_alive(): - self.stop_animation() - + self.stop_animation() self.animation_thread = Thread(target=_animate_thread, args=(lights,)) self.animation_thread.start() return Response(output='ok')