From 29b812b94243822506c3717c49bb2bcddcd62958 Mon Sep 17 00:00:00 2001 From: kaffetorsk Date: Mon, 30 Dec 2024 15:22:01 +0100 Subject: [PATCH 1/3] initial --- camera.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/camera.py b/camera.py index 24fdd2e..a062b3c 100644 --- a/camera.py +++ b/camera.py @@ -339,14 +339,19 @@ async def mqtt_control(self, payload): """ Handles incoming MQTT commands """ - match payload.upper(): - case 'START': + match payload.strip().upper().split(): + case ['START']: await self.set_state('streaming') - case 'STOP': + case ['STOP']: await self.set_state('idle') - case 'SNAPSHOT': + case ['SNAPSHOT']: await self.event_loop.run_in_executor( - None, self._arlo.request_snapshot) + None, self._arlo.request_snapshot + ) + case ['BRIGHTNESS', value]: + await self.event_loop.run_in_executor( + None, lambda: setattr(self._arlo, 'brightness', value) + ) async def _create_idle_video(self, image_path): """ From fddb3094bf886f95a840dcd80014fe9f02383db7 Mon Sep 17 00:00:00 2001 From: kaffetorsk Date: Mon, 30 Dec 2024 17:21:54 +0100 Subject: [PATCH 2/3] add input check --- camera.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/camera.py b/camera.py index a062b3c..c98a101 100644 --- a/camera.py +++ b/camera.py @@ -349,9 +349,18 @@ async def mqtt_control(self, payload): None, self._arlo.request_snapshot ) case ['BRIGHTNESS', value]: - await self.event_loop.run_in_executor( - None, lambda: setattr(self._arlo, 'brightness', value) - ) + try: + value = int(value) + if not (-2 <= value <= 2): + raise ValueError + await self.event_loop.run_in_executor( + None, lambda: setattr( + self._arlo, 'brightness', int(value) + ) + ) + logging.info(f"{self.name} brightness set to: {value}") + except ValueError: + logging.warning(f"Invalid value for brigthness: {value}") async def _create_idle_video(self, image_path): """ From 81811c3ad86db3c1f046306f1b081af4725be42d Mon Sep 17 00:00:00 2001 From: kaffetorsk Date: Mon, 30 Dec 2024 17:22:04 +0100 Subject: [PATCH 3/3] update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4a354a0..9aa81f2 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ Payload in a simple string. ``` "START" and "STOP": Starts and stops active stream "SNAPSHOT": Requests snapshot to be taken +"BRIGHTNESS X": Set video brightness to X (integer from -2 to 2) ``` ##### Base Stations JSON payload, all keys are optional.