From 294c7b75327529c9a7c02228b9f713c76683f66a Mon Sep 17 00:00:00 2001 From: Gustavo Lima <141639311+guslma@users.noreply.github.com> Date: Mon, 24 Mar 2025 13:02:13 -0300 Subject: [PATCH 1/7] Update ts0601_cover.py --- zhaquirks/tuya/ts0601_cover.py | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/zhaquirks/tuya/ts0601_cover.py b/zhaquirks/tuya/ts0601_cover.py index 6bf8e2ac2d..e6d47df8c1 100644 --- a/zhaquirks/tuya/ts0601_cover.py +++ b/zhaquirks/tuya/ts0601_cover.py @@ -620,3 +620,41 @@ class TuyaCloneCover0601(TuyaWindowCover): } } } + +class NovaDigitalSmartCoverTS0105(TuyaWindowCover): + """Nova Digital motor Tuya TS0105 (_TZE600_ogyg1y6b_).""" + + signature = { + MODELS_INFO: [ + ("_TZE600_ogyg1y6b", "TS0105"), + ], + ENDPOINTS: { + 1: { + PROFILE_ID: zha.PROFILE_ID, + DEVICE_TYPE: 0x0051, + INPUT_CLUSTERS: [ + Basic.cluster_id, + Identify.cluster_id, + Time.cluster_id, + TuyaManufCluster.cluster_id, + ], + OUTPUT_CLUSTERS: [Ota.cluster_id], + }, + }, + } + replacement = { + ENDPOINTS: { + 1: { + DEVICE_TYPE: zha.DeviceType.WINDOW_COVERING_DEVICE, + INPUT_CLUSTERS: [ + Basic.cluster_id, + Groups.cluster_id, + Scenes.cluster_id, + Time.cluster_id, + TuyaManufacturerWindowCover, + TuyaWindowCoverControl, + ], + OUTPUT_CLUSTERS: [Ota.cluster_id], + }, + }, + } From 83c9050336a1f7971d73123f426ac96bafeb9ca7 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 16:03:18 +0000 Subject: [PATCH 2/7] Apply pre-commit auto fixes --- zhaquirks/tuya/ts0601_cover.py | 1 + 1 file changed, 1 insertion(+) diff --git a/zhaquirks/tuya/ts0601_cover.py b/zhaquirks/tuya/ts0601_cover.py index e6d47df8c1..8a6963f5cc 100644 --- a/zhaquirks/tuya/ts0601_cover.py +++ b/zhaquirks/tuya/ts0601_cover.py @@ -621,6 +621,7 @@ class TuyaCloneCover0601(TuyaWindowCover): } } + class NovaDigitalSmartCoverTS0105(TuyaWindowCover): """Nova Digital motor Tuya TS0105 (_TZE600_ogyg1y6b_).""" From 42efb98f83e697752a63a343e56e350907b005d7 Mon Sep 17 00:00:00 2001 From: Gustavo Lima <141639311+guslma@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:13:35 -0300 Subject: [PATCH 3/7] Create TS0105_cover.py --- zhaquirks/tuya/TS0105_cover.py | 56 ++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 zhaquirks/tuya/TS0105_cover.py diff --git a/zhaquirks/tuya/TS0105_cover.py b/zhaquirks/tuya/TS0105_cover.py new file mode 100644 index 0000000000..8e6e3a8fad --- /dev/null +++ b/zhaquirks/tuya/TS0105_cover.py @@ -0,0 +1,56 @@ +"""Tuya based cover and blinds.""" + +from zigpy.profiles import zha +from zigpy.zcl.clusters.general import Basic, Groups, Identify, OnOff, Ota, Scenes, Time + +from zhaquirks.const import ( + DEVICE_TYPE, + ENDPOINTS, + INPUT_CLUSTERS, + MODELS_INFO, + OUTPUT_CLUSTERS, + PROFILE_ID, +) +from zhaquirks.tuya import ( + TuyaManufacturerWindowCover, + TuyaManufCluster, + TuyaWindowCover, + TuyaWindowCoverControl, +) + +class NovaDigitalSmartCoverTS0105(TuyaWindowCover): + """Nova Digital motor Tuya TS0105 (_TZE600_ogyg1y6b_).""" + + signature = { + MODELS_INFO: [ + ("_TZE600_ogyg1y6b", "TS0105"), + ], + ENDPOINTS: { + 1: { + PROFILE_ID: zha.PROFILE_ID, + DEVICE_TYPE: zha.DeviceType.SMART_PLUG, + INPUT_CLUSTERS: [ + Basic.cluster_id, + Identify.cluster_id, + Time.cluster_id, + TuyaManufCluster.cluster_id, + ], + OUTPUT_CLUSTERS: [Ota.cluster_id], + }, + }, + } + replacement = { + ENDPOINTS: { + 1: { + DEVICE_TYPE: zha.DeviceType.WINDOW_COVERING_DEVICE, + INPUT_CLUSTERS: [ + Basic.cluster_id, + Identify.cluster_id, + Time.cluster_id, + TuyaManufacturerWindowCover, + TuyaWindowCoverControl, + ], + OUTPUT_CLUSTERS: [Ota.cluster_id], + }, + }, + } From d2d6bda88fd46df1ef14d42e050a1877ee3ab4d6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 22:13:41 +0000 Subject: [PATCH 4/7] Apply pre-commit auto fixes --- zhaquirks/tuya/TS0105_cover.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zhaquirks/tuya/TS0105_cover.py b/zhaquirks/tuya/TS0105_cover.py index 8e6e3a8fad..19156567b0 100644 --- a/zhaquirks/tuya/TS0105_cover.py +++ b/zhaquirks/tuya/TS0105_cover.py @@ -1,7 +1,7 @@ """Tuya based cover and blinds.""" from zigpy.profiles import zha -from zigpy.zcl.clusters.general import Basic, Groups, Identify, OnOff, Ota, Scenes, Time +from zigpy.zcl.clusters.general import Basic, Identify, Ota, Time from zhaquirks.const import ( DEVICE_TYPE, @@ -18,6 +18,7 @@ TuyaWindowCoverControl, ) + class NovaDigitalSmartCoverTS0105(TuyaWindowCover): """Nova Digital motor Tuya TS0105 (_TZE600_ogyg1y6b_).""" From b68530e5b680fd3294abad5244f81a14085de12c Mon Sep 17 00:00:00 2001 From: Gustavo Lima <141639311+guslma@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:14:19 -0300 Subject: [PATCH 5/7] Update ts0601_cover.py --- zhaquirks/tuya/ts0601_cover.py | 39 ---------------------------------- 1 file changed, 39 deletions(-) diff --git a/zhaquirks/tuya/ts0601_cover.py b/zhaquirks/tuya/ts0601_cover.py index 8a6963f5cc..6bf8e2ac2d 100644 --- a/zhaquirks/tuya/ts0601_cover.py +++ b/zhaquirks/tuya/ts0601_cover.py @@ -620,42 +620,3 @@ class TuyaCloneCover0601(TuyaWindowCover): } } } - - -class NovaDigitalSmartCoverTS0105(TuyaWindowCover): - """Nova Digital motor Tuya TS0105 (_TZE600_ogyg1y6b_).""" - - signature = { - MODELS_INFO: [ - ("_TZE600_ogyg1y6b", "TS0105"), - ], - ENDPOINTS: { - 1: { - PROFILE_ID: zha.PROFILE_ID, - DEVICE_TYPE: 0x0051, - INPUT_CLUSTERS: [ - Basic.cluster_id, - Identify.cluster_id, - Time.cluster_id, - TuyaManufCluster.cluster_id, - ], - OUTPUT_CLUSTERS: [Ota.cluster_id], - }, - }, - } - replacement = { - ENDPOINTS: { - 1: { - DEVICE_TYPE: zha.DeviceType.WINDOW_COVERING_DEVICE, - INPUT_CLUSTERS: [ - Basic.cluster_id, - Groups.cluster_id, - Scenes.cluster_id, - Time.cluster_id, - TuyaManufacturerWindowCover, - TuyaWindowCoverControl, - ], - OUTPUT_CLUSTERS: [Ota.cluster_id], - }, - }, - } From fb47e8bb3f3f9d9624c22fc04b405fd93d9f6c62 Mon Sep 17 00:00:00 2001 From: Gustavo Lima <141639311+guslma@users.noreply.github.com> Date: Sun, 30 Mar 2025 10:02:47 -0300 Subject: [PATCH 6/7] Rename TS0105_cover.py to ts0105_cover.py --- zhaquirks/tuya/{TS0105_cover.py => ts0105_cover.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename zhaquirks/tuya/{TS0105_cover.py => ts0105_cover.py} (100%) diff --git a/zhaquirks/tuya/TS0105_cover.py b/zhaquirks/tuya/ts0105_cover.py similarity index 100% rename from zhaquirks/tuya/TS0105_cover.py rename to zhaquirks/tuya/ts0105_cover.py From 526d9aab28d8ce681be64e3cccdaa2b689b59c4a Mon Sep 17 00:00:00 2001 From: Gustavo Lima <141639311+guslma@users.noreply.github.com> Date: Sun, 30 Mar 2025 10:04:32 -0300 Subject: [PATCH 7/7] Update ts0105_cover.py --- zhaquirks/tuya/ts0105_cover.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhaquirks/tuya/ts0105_cover.py b/zhaquirks/tuya/ts0105_cover.py index 19156567b0..bd087d87ed 100644 --- a/zhaquirks/tuya/ts0105_cover.py +++ b/zhaquirks/tuya/ts0105_cover.py @@ -20,7 +20,7 @@ class NovaDigitalSmartCoverTS0105(TuyaWindowCover): - """Nova Digital motor Tuya TS0105 (_TZE600_ogyg1y6b_).""" + """Tuya Nova Digital motor TS0105 (_TZE600_ogyg1y6b_).""" signature = { MODELS_INFO: [