From 822ed8df1426e435f57e1b4313b3a513ce08f100 Mon Sep 17 00:00:00 2001 From: avollkopf <43980694+avollkopf@users.noreply.github.com> Date: Sat, 27 Apr 2024 17:15:06 +0200 Subject: [PATCH] compatibility test to support compressoractor plugin --- cbpi/__init__.py | 2 +- cbpi/api/actor.py | 1 + cbpi/api/dataclasses.py | 5 +++-- cbpi/controller/actor_controller.py | 10 ++++++++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/cbpi/__init__.py b/cbpi/__init__.py index 77ce4f9..04681be 100644 --- a/cbpi/__init__.py +++ b/cbpi/__init__.py @@ -1,3 +1,3 @@ -__version__ = "4.4.1.a1" +__version__ = "4.4.1.a2" __codename__ = "Yeast Starter" diff --git a/cbpi/api/actor.py b/cbpi/api/actor.py index ecf4a26..53d8855 100644 --- a/cbpi/api/actor.py +++ b/cbpi/api/actor.py @@ -21,6 +21,7 @@ class CBPiActor(metaclass=ABCMeta): self.state = False self.running = False self.power = 100 + self.timer = 0 def init(self): pass diff --git a/cbpi/api/dataclasses.py b/cbpi/api/dataclasses.py index eb545db..bd9f411 100644 --- a/cbpi/api/dataclasses.py +++ b/cbpi/api/dataclasses.py @@ -56,13 +56,14 @@ class Actor: props: Props = Props() state: bool = False power: int = 100 + timer: int = 0 type: str = None instance: str = None def __str__(self): - return "name={} props={}, state={}, type={}, power={}".format(self.name, self.props, self.state, self.type, self.power) + return "name={} props={}, state={}, type={}, power={}, timer={}".format(self.name, self.props, self.state, self.type, self.power, self.timer) def to_dict(self): - return dict(id=self.id, name=self.name, type=self.type, props=self.props.to_dict(), state=self.instance.get_state(), power=self.power) + return dict(id=self.id, name=self.name, type=self.type, props=self.props.to_dict(), state=self.instance.get_state(), power=self.power, timer=self.timer) class DataType(Enum): VALUE="value" diff --git a/cbpi/controller/actor_controller.py b/cbpi/controller/actor_controller.py index ae9ba9d..118d031 100644 --- a/cbpi/controller/actor_controller.py +++ b/cbpi/controller/actor_controller.py @@ -67,6 +67,16 @@ class ActorController(BasicController): except Exception as e: logging.error("Failed to update Actor {} {}".format(id, e)) + async def timeractor_update(self, id, timer): + try: + item = self.find_by_id(id) + item.timer = round(timer) + #await self.push_udpate() + self.cbpi.ws.send(dict(topic=self.update_key, data=list(map(lambda item: item.to_dict(), self.data)))) + self.cbpi.push_update("cbpi/actorupdate/{}".format(id), item.to_dict()) + except Exception as e: + logging.error("Failed to update Actor {} {}".format(id, e)) + async def ws_actor_update(self): try: #await self.push_udpate()