From 0de28bee4f34907ca39eb671dc8d1921f07eb4d5 Mon Sep 17 00:00:00 2001 From: Strauman Date: Thu, 17 Oct 2024 20:46:34 +0200 Subject: [PATCH 1/5] Add Tuya TS0042LightController ZHA --- apps/controllerx/cx_devices/tuya.py | 21 +++++++++++++++++++++ docs/docs/assets/controllers/TS0042.png | Bin 0 -> 35144 bytes 2 files changed, 21 insertions(+) create mode 100644 docs/docs/assets/controllers/TS0042.png diff --git a/apps/controllerx/cx_devices/tuya.py b/apps/controllerx/cx_devices/tuya.py index 37a09c18..158b6ccd 100644 --- a/apps/controllerx/cx_devices/tuya.py +++ b/apps/controllerx/cx_devices/tuya.py @@ -117,3 +117,24 @@ def get_z2m_actions_mapping(self) -> DefaultActionsMapping: "double": MediaPlayer.NEXT_TRACK, "hold": MediaPlayer.PREVIOUS_TRACK, } + + +class TS0042LightController(LightController): + def get_zha_actions_mapping(self) -> DefaultActionsMapping: + return { + "1_remote_button_short_press": [Light.ON, Light.CLICK_BRIGHTNESS_UP], + "1_remote_button_long_press": Light.ON_FULL_BRIGHTNESS, + "2_remote_button_short_press": Light.CLICK_BRIGHTNESS_DOWN, + "2_remote_button_double_press": Light.OFF + } + + def get_zha_action(self, data: EventData) -> str: + args: str = "" + # Command is {endpoint_id}_{command} + if len(data["args"]) > 0: + if isinstance(data["args"], list): + args = "_" + "_".join([str(d) for d in data["args"]]) + else: + args = args + f"{data['args']}" + command: str = f"{data['endpoint_id']}_{data['command']}{args}" + return command \ No newline at end of file diff --git a/docs/docs/assets/controllers/TS0042.png b/docs/docs/assets/controllers/TS0042.png new file mode 100644 index 0000000000000000000000000000000000000000..3eea84551b0dda37d8a39e7ef5ee59398c87ca77 GIT binary patch literal 35144 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 Date: Thu, 17 Oct 2024 18:47:21 +0000 Subject: [PATCH 2/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- apps/controllerx/cx_devices/tuya.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/controllerx/cx_devices/tuya.py b/apps/controllerx/cx_devices/tuya.py index 158b6ccd..7aeee48f 100644 --- a/apps/controllerx/cx_devices/tuya.py +++ b/apps/controllerx/cx_devices/tuya.py @@ -125,7 +125,7 @@ def get_zha_actions_mapping(self) -> DefaultActionsMapping: "1_remote_button_short_press": [Light.ON, Light.CLICK_BRIGHTNESS_UP], "1_remote_button_long_press": Light.ON_FULL_BRIGHTNESS, "2_remote_button_short_press": Light.CLICK_BRIGHTNESS_DOWN, - "2_remote_button_double_press": Light.OFF + "2_remote_button_double_press": Light.OFF, } def get_zha_action(self, data: EventData) -> str: @@ -137,4 +137,4 @@ def get_zha_action(self, data: EventData) -> str: else: args = args + f"{data['args']}" command: str = f"{data['endpoint_id']}_{data['command']}{args}" - return command \ No newline at end of file + return command From 57a75fe2af5a4f9f68c4b5697707b920b340ad4d Mon Sep 17 00:00:00 2001 From: Strauman Date: Thu, 17 Oct 2024 20:51:34 +0200 Subject: [PATCH 3/5] Corrects type --- apps/controllerx/cx_devices/tuya.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/controllerx/cx_devices/tuya.py b/apps/controllerx/cx_devices/tuya.py index 158b6ccd..a7fe87e9 100644 --- a/apps/controllerx/cx_devices/tuya.py +++ b/apps/controllerx/cx_devices/tuya.py @@ -122,10 +122,11 @@ def get_z2m_actions_mapping(self) -> DefaultActionsMapping: class TS0042LightController(LightController): def get_zha_actions_mapping(self) -> DefaultActionsMapping: return { - "1_remote_button_short_press": [Light.ON, Light.CLICK_BRIGHTNESS_UP], + "1_remote_button_short_press": Light.ON, + "1_remote_button_double_press": Light.CLICK_BRIGHTNESS_UP, "1_remote_button_long_press": Light.ON_FULL_BRIGHTNESS, - "2_remote_button_short_press": Light.CLICK_BRIGHTNESS_DOWN, - "2_remote_button_double_press": Light.OFF + "2_remote_button_short_press": Light.OFF, + "2_remote_button_double_press": Light.ON_MIN_BRIGHTNESS } def get_zha_action(self, data: EventData) -> str: From f2827be8a8d0277dc98243d124ffaf801b600e47 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:52:58 +0000 Subject: [PATCH 4/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- apps/controllerx/cx_devices/tuya.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/controllerx/cx_devices/tuya.py b/apps/controllerx/cx_devices/tuya.py index e4bf5cd0..62403066 100644 --- a/apps/controllerx/cx_devices/tuya.py +++ b/apps/controllerx/cx_devices/tuya.py @@ -126,7 +126,7 @@ def get_zha_actions_mapping(self) -> DefaultActionsMapping: "1_remote_button_double_press": Light.CLICK_BRIGHTNESS_UP, "1_remote_button_long_press": Light.ON_FULL_BRIGHTNESS, "2_remote_button_short_press": Light.OFF, - "2_remote_button_double_press": Light.ON_MIN_BRIGHTNESS + "2_remote_button_double_press": Light.ON_MIN_BRIGHTNESS, } def get_zha_action(self, data: EventData) -> str: From b8ca23b978065bd99258abf213c28e4cdbc3640c Mon Sep 17 00:00:00 2001 From: Xavi Date: Fri, 8 Nov 2024 16:24:10 +0100 Subject: [PATCH 5/5] feat(device): fix image and add release note related to #1065 --- RELEASE_NOTES.md | 4 +--- docs/docs/assets/controllers/TS0042.jpeg | Bin 0 -> 6326 bytes docs/docs/assets/controllers/TS0042.png | Bin 35144 -> 0 bytes 3 files changed, 1 insertion(+), 3 deletions(-) create mode 100644 docs/docs/assets/controllers/TS0042.jpeg delete mode 100644 docs/docs/assets/controllers/TS0042.png diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index c00f347e..22fc78fb 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -10,11 +10,9 @@ _This minor change does not contain any breaking changes._ ## :pencil2: Features --> - +- [TS0042](https://BASE_URL/controllerx/controllers/TS0042) - add device with ZHA support. [ #1065 ]