From 1fbe4d3dae6c0a0ffe6a740a8140138b31c8047e Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Fri, 24 Nov 2023 16:38:40 -0600 Subject: [PATCH] incorporated other logic --- apps/cubes/cube.py | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/apps/cubes/cube.py b/apps/cubes/cube.py index 98367b6..13b8e06 100644 --- a/apps/cubes/cube.py +++ b/apps/cubes/cube.py @@ -12,6 +12,9 @@ class AqaraCube(Mqtt): self.listen_event(self.handle_event, "MQTT_MESSAGE", topic=topic) self.log(f'Listening for cube events on: {topic}') + self.app = self.get_app(self.args['app']) + self.log(f'Connected to other app: {self.app.name}') + def handle_event(self, event_name, data, kwargs): topic = data['topic'] payload = json.loads(data['payload']) @@ -29,20 +32,34 @@ class AqaraCube(Mqtt): def action_handler(self, action: str , description: str): self.log(f'{self.args["cube"]}: {action}: {description}') - def handle_rotate_right(self, payload): - self.log(f'{self.args["cube"]}: Rotate right') - - def handle_rotate_left(self, payload): - self.log(f'{self.args["cube"]}: Rotate left') - - def handle_slide(self, payload): - self.log(f'{self.args["cube"]}: Slide') + if description == 'activate': + self.app.activate(cause=f'{self.args["cube"]}: {action}') - def handle_flip180(self, payload): - self.log(f'{self.args["cube"]}: Flipped 180') + elif description.startswith('scene.'): + self.call_service('scene/turn_on', entity_id=description, namespace='default') + self.log(f'Turned on {description}') + + elif description == 'toggle': + cause = f'{action} from {self.args["cube"]}' + if self.app.entity_state: + self.app.deactivate(cause=cause) + else: + self.app.activate(cause=cause) + + # def handle_rotate_right(self, payload): + # self.log(f'{self.args["cube"]}: Rotate right') - def handle_flip90(self, payload): - self.log(f'{self.args["cube"]}: Flipped 90') + # def handle_rotate_left(self, payload): + # self.log(f'{self.args["cube"]}: Rotate left') - def handle_shake(self, payload): - self.log(f'{self.args["cube"]}: Shake') + # def handle_slide(self, payload): + # self.log(f'{self.args["cube"]}: Slide') + + # def handle_flip180(self, payload): + # self.log(f'{self.args["cube"]}: Flipped 180') + + # def handle_flip90(self, payload): + # self.log(f'{self.args["cube"]}: Flipped 90') + + # def handle_shake(self, payload): + # self.log(f'{self.args["cube"]}: Shake')