From 2462f9329ae7d46a14c3590d75b6c72c116dc361 Mon Sep 17 00:00:00 2001 From: avollkopf <43980694+avollkopf@users.noreply.github.com> Date: Mon, 8 Nov 2021 14:04:28 +0100 Subject: [PATCH] Update on pwm test -> set power action should now update also directly in dashboard --- cbpi/api/actor.py | 10 +++++++++- cbpi/api/base.py | 8 ++++++-- cbpi/controller/actor_controller.py | 1 + cbpi/extension/gpioactor/__init__.py | 4 +++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/cbpi/api/actor.py b/cbpi/api/actor.py index 6a8d206..099ba46 100644 --- a/cbpi/api/actor.py +++ b/cbpi/api/actor.py @@ -88,5 +88,13 @@ class CBPiActor(metaclass=ABCMeta): ''' pass - + async def set_power(self,power): + self.power=power + ''' + Code to switch the actor off + + :return: None + ''' + return dict(power=self.power) + pass diff --git a/cbpi/api/base.py b/cbpi/api/base.py index cfd9d2b..ee54ce4 100644 --- a/cbpi/api/base.py +++ b/cbpi/api/base.py @@ -44,7 +44,7 @@ class CBPiBase(metaclass=ABCMeta): actor = self.cbpi.actor.find_by_id(id) return actor.get("instance").get_state() except: - logging.error("Faild to read actor state in step - actor {}".format(id)) + logging.error("Failed to read actor state in step - actor {}".format(id)) return None async def actor_on(self,id): @@ -60,4 +60,8 @@ class CBPiBase(metaclass=ABCMeta): except Exception as e: pass - + async def actor_set_power(self,id,power): + try: + await self.cbpi.actor.set_power(id,power) + except Exception as e: + pass \ No newline at end of file diff --git a/cbpi/controller/actor_controller.py b/cbpi/controller/actor_controller.py index 0f6f8a7..a4e7c45 100644 --- a/cbpi/controller/actor_controller.py +++ b/cbpi/controller/actor_controller.py @@ -42,6 +42,7 @@ class ActorController(BasicController): try: item = self.find_by_id(id) item.power = power + await self.push_udpate() self.cbpi.push_update("cbpi/actor/"+id, item.to_dict()) except Exception as e: logging.error("Failed to set power {} {}".format(id, e)) diff --git a/cbpi/extension/gpioactor/__init__.py b/cbpi/extension/gpioactor/__init__.py index 259a7ce..9e69a0e 100644 --- a/cbpi/extension/gpioactor/__init__.py +++ b/cbpi/extension/gpioactor/__init__.py @@ -85,7 +85,6 @@ class GPIOPWMActor(CBPiActor): self.power = 100 item = self.cbpi.actor.find_by_id(self.id) item.power = self.power - self.cbpi.push_update("cbpi/actor/"+self.id, item.to_dict()) await self.set_power(self.power) async def on_start(self): @@ -100,6 +99,8 @@ class GPIOPWMActor(CBPiActor): pass async def on(self, power = None): + if power is not None: + self.power = power logger.info("PWM ACTOR %s ON - GPIO %s - Frequency %s - Power %s" % (self.id, self.gpio,self.frequency,self.power)) try: @@ -118,6 +119,7 @@ class GPIOPWMActor(CBPiActor): async def set_power(self, power): if self.p and self.state == True: self.p.ChangeDutyCycle(power) + await self.cbpi.actor.set_power(self.id,power) pass def get_state(self):