From f2e06f77686d338105292abe2838ec9a3b88373c Mon Sep 17 00:00:00 2001 From: ChristianGr1974 Date: Fri, 23 May 2025 17:48:07 +0200 Subject: [PATCH 01/12] Add Senoro quirks implementation --- zhaquirks/senoro/__init__.py | 1 + zhaquirks/senoro/senorowin.py | 38 +++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 zhaquirks/senoro/__init__.py create mode 100644 zhaquirks/senoro/senorowin.py diff --git a/zhaquirks/senoro/__init__.py b/zhaquirks/senoro/__init__.py new file mode 100644 index 0000000000..9e6327e19c --- /dev/null +++ b/zhaquirks/senoro/__init__.py @@ -0,0 +1 @@ +"""Module for Senoro quirks implementations.""" \ No newline at end of file diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/senoro/senorowin.py new file mode 100644 index 0000000000..6b8073a347 --- /dev/null +++ b/zhaquirks/senoro/senorowin.py @@ -0,0 +1,38 @@ +from zigpy.quirks.v2.homeassistant import EntityType, EntityPlatform +import zigpy.types as t +from zhaquirks.tuya import BatterySize +from zhaquirks.tuya.builder import TuyaQuirkBuilder + + +class OpeningStateEnum(t.enum8): + open = 0 + closed = 1 + tilted = 2 + + +( + TuyaQuirkBuilder("_TZE200_ytx9fudw", "TS0601") + .tuya_battery( + dp_id=2, + battery_type=BatterySize.CR2032, + battery_qty=3, + ) + .tuya_enum( + dp_id=101, + attribute_name="opening_state", + enum_class=OpeningStateEnum, + translation_key="opening_state", + fallback_name="Opening state", + entity_type=EntityType.STANDARD, + entity_platform=EntityPlatform.SENSOR, + ) + .tuya_switch( + dp_id=16, + attribute_name="alarm", + entity_type=EntityType.STANDARD, + translation_key="alarm", + fallback_name="Tamper Alarm", + ) + .skip_configuration() + .add_to_registry() +) From cb4f638578140540a0a06acf10fc092365d322ba Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 16:00:00 +0000 Subject: [PATCH 02/12] Apply pre-commit auto fixes --- zhaquirks/senoro/__init__.py | 2 +- zhaquirks/senoro/senorowin.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/zhaquirks/senoro/__init__.py b/zhaquirks/senoro/__init__.py index 9e6327e19c..b9ae78b425 100644 --- a/zhaquirks/senoro/__init__.py +++ b/zhaquirks/senoro/__init__.py @@ -1 +1 @@ -"""Module for Senoro quirks implementations.""" \ No newline at end of file +"""Module for Senoro quirks implementations.""" diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/senoro/senorowin.py index 6b8073a347..b581858c5e 100644 --- a/zhaquirks/senoro/senorowin.py +++ b/zhaquirks/senoro/senorowin.py @@ -1,5 +1,6 @@ -from zigpy.quirks.v2.homeassistant import EntityType, EntityPlatform +from zigpy.quirks.v2.homeassistant import EntityPlatform, EntityType import zigpy.types as t + from zhaquirks.tuya import BatterySize from zhaquirks.tuya.builder import TuyaQuirkBuilder From 22cf16aa1f8ab45870ef38f42240bd7724651315 Mon Sep 17 00:00:00 2001 From: ChristianGr1974 Date: Fri, 23 May 2025 17:48:07 +0200 Subject: [PATCH 03/12] Add Senoro quirks implementation --- zhaquirks/senoro/__init__.py | 1 + zhaquirks/senoro/senorowin.py | 38 +++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 zhaquirks/senoro/__init__.py create mode 100644 zhaquirks/senoro/senorowin.py diff --git a/zhaquirks/senoro/__init__.py b/zhaquirks/senoro/__init__.py new file mode 100644 index 0000000000..9e6327e19c --- /dev/null +++ b/zhaquirks/senoro/__init__.py @@ -0,0 +1 @@ +"""Module for Senoro quirks implementations.""" \ No newline at end of file diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/senoro/senorowin.py new file mode 100644 index 0000000000..6b8073a347 --- /dev/null +++ b/zhaquirks/senoro/senorowin.py @@ -0,0 +1,38 @@ +from zigpy.quirks.v2.homeassistant import EntityType, EntityPlatform +import zigpy.types as t +from zhaquirks.tuya import BatterySize +from zhaquirks.tuya.builder import TuyaQuirkBuilder + + +class OpeningStateEnum(t.enum8): + open = 0 + closed = 1 + tilted = 2 + + +( + TuyaQuirkBuilder("_TZE200_ytx9fudw", "TS0601") + .tuya_battery( + dp_id=2, + battery_type=BatterySize.CR2032, + battery_qty=3, + ) + .tuya_enum( + dp_id=101, + attribute_name="opening_state", + enum_class=OpeningStateEnum, + translation_key="opening_state", + fallback_name="Opening state", + entity_type=EntityType.STANDARD, + entity_platform=EntityPlatform.SENSOR, + ) + .tuya_switch( + dp_id=16, + attribute_name="alarm", + entity_type=EntityType.STANDARD, + translation_key="alarm", + fallback_name="Tamper Alarm", + ) + .skip_configuration() + .add_to_registry() +) From e9421663f55ddfe0e85ee013a0f0c617b4798f6e Mon Sep 17 00:00:00 2001 From: ChristianGr1974 Date: Fri, 23 May 2025 18:04:07 +0200 Subject: [PATCH 04/12] Add Senoro quirks implementation --- zhaquirks/senoro/senorowin.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/senoro/senorowin.py index 6b8073a347..e2c334d7c6 100644 --- a/zhaquirks/senoro/senorowin.py +++ b/zhaquirks/senoro/senorowin.py @@ -1,3 +1,4 @@ +"""Sensoro Window Sensor (TS0601)""" from zigpy.quirks.v2.homeassistant import EntityType, EntityPlatform import zigpy.types as t from zhaquirks.tuya import BatterySize @@ -5,6 +6,7 @@ class OpeningStateEnum(t.enum8): + """Enum for opening state.""" open = 0 closed = 1 tilted = 2 From 55517258d1276f0d50531ee921ec09d5d985dde0 Mon Sep 17 00:00:00 2001 From: ChristianGr1974 Date: Fri, 23 May 2025 18:06:01 +0200 Subject: [PATCH 05/12] Fix formatting by adding blank lines for improved readability in Sensoro Window Sensor code --- zhaquirks/senoro/senorowin.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/senoro/senorowin.py index e2c334d7c6..46fc237762 100644 --- a/zhaquirks/senoro/senorowin.py +++ b/zhaquirks/senoro/senorowin.py @@ -1,4 +1,5 @@ """Sensoro Window Sensor (TS0601)""" + from zigpy.quirks.v2.homeassistant import EntityType, EntityPlatform import zigpy.types as t from zhaquirks.tuya import BatterySize @@ -7,6 +8,7 @@ class OpeningStateEnum(t.enum8): """Enum for opening state.""" + open = 0 closed = 1 tilted = 2 From 8c320b1baff8029e0b2b7ec2b67c620f91fe3795 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 16:17:13 +0000 Subject: [PATCH 06/12] Apply pre-commit auto fixes --- zhaquirks/senoro/senorowin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/senoro/senorowin.py index 9a2bc67b59..71d25f11ab 100644 --- a/zhaquirks/senoro/senorowin.py +++ b/zhaquirks/senoro/senorowin.py @@ -1,7 +1,8 @@ """Sensoro Window Sensor (TS0601)""" -from zigpy.quirks.v2.homeassistant import EntityType, EntityPlatform +from zigpy.quirks.v2.homeassistant import EntityPlatform, EntityType import zigpy.types as t + from zhaquirks.tuya import BatterySize from zhaquirks.tuya.builder import TuyaQuirkBuilder From ad38153022c06f2d168622282851b5b4ffcde65f Mon Sep 17 00:00:00 2001 From: ChristianGr1974 Date: Fri, 23 May 2025 18:17:43 +0200 Subject: [PATCH 07/12] Refactor Sensoro Window Sensor code by removing redundant imports and class definitions for improved clarity --- zhaquirks/senoro/senorowin.py | 42 +---------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/senoro/senorowin.py index 9a2bc67b59..adddc5682a 100644 --- a/zhaquirks/senoro/senorowin.py +++ b/zhaquirks/senoro/senorowin.py @@ -39,44 +39,4 @@ class OpeningStateEnum(t.enum8): ) .skip_configuration() .add_to_registry() -) - -from zigpy.quirks.v2.homeassistant import EntityPlatform, EntityType -import zigpy.types as t - -from zhaquirks.tuya import BatterySize -from zhaquirks.tuya.builder import TuyaQuirkBuilder - - -class OpeningStateEnum(t.enum8): - open = 0 - closed = 1 - tilted = 2 - - -( - TuyaQuirkBuilder("_TZE200_ytx9fudw", "TS0601") - .tuya_battery( - dp_id=2, - battery_type=BatterySize.CR2032, - battery_qty=3, - ) - .tuya_enum( - dp_id=101, - attribute_name="opening_state", - enum_class=OpeningStateEnum, - translation_key="opening_state", - fallback_name="Opening state", - entity_type=EntityType.STANDARD, - entity_platform=EntityPlatform.SENSOR, - ) - .tuya_switch( - dp_id=16, - attribute_name="alarm", - entity_type=EntityType.STANDARD, - translation_key="alarm", - fallback_name="Tamper Alarm", - ) - .skip_configuration() - .add_to_registry() -) +) \ No newline at end of file From a7a36540e2355be4a45b96745dba2d686e1314cf Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 16:18:26 +0000 Subject: [PATCH 08/12] Apply pre-commit auto fixes --- zhaquirks/senoro/senorowin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/senoro/senorowin.py index 91f98b7683..5b319ce15c 100644 --- a/zhaquirks/senoro/senorowin.py +++ b/zhaquirks/senoro/senorowin.py @@ -40,4 +40,4 @@ class OpeningStateEnum(t.enum8): ) .skip_configuration() .add_to_registry() -) \ No newline at end of file +) From dc9599918a593d492f69e2c43bf51e0ce4f6fff2 Mon Sep 17 00:00:00 2001 From: ChristianGr1974 Date: Fri, 23 May 2025 18:23:12 +0200 Subject: [PATCH 09/12] Fix docstring punctuation for Sensoro Window Sensor --- zhaquirks/senoro/senorowin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/senoro/senorowin.py index 5b319ce15c..e975a82cf7 100644 --- a/zhaquirks/senoro/senorowin.py +++ b/zhaquirks/senoro/senorowin.py @@ -1,4 +1,4 @@ -"""Sensoro Window Sensor (TS0601)""" +"""Sensoro Window Sensor (TS0601).""" from zigpy.quirks.v2.homeassistant import EntityPlatform, EntityType import zigpy.types as t From b787e268a9087a43f28c49041df88a41b61ee19e Mon Sep 17 00:00:00 2001 From: ChristianGr1974 Date: Sun, 25 May 2025 00:00:50 +0200 Subject: [PATCH 10/12] Implement Senoro Window Sensor (TS0601) quirk with battery and state management --- zhaquirks/senoro/__init__.py | 1 - .../{senoro/senorowin.py => tuya/tuya_door.py} | 18 +++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) delete mode 100644 zhaquirks/senoro/__init__.py rename zhaquirks/{senoro/senorowin.py => tuya/tuya_door.py} (70%) diff --git a/zhaquirks/senoro/__init__.py b/zhaquirks/senoro/__init__.py deleted file mode 100644 index b9ae78b425..0000000000 --- a/zhaquirks/senoro/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Module for Senoro quirks implementations.""" diff --git a/zhaquirks/senoro/senorowin.py b/zhaquirks/tuya/tuya_door.py similarity index 70% rename from zhaquirks/senoro/senorowin.py rename to zhaquirks/tuya/tuya_door.py index e975a82cf7..f9e80acc9a 100644 --- a/zhaquirks/senoro/senorowin.py +++ b/zhaquirks/tuya/tuya_door.py @@ -1,6 +1,6 @@ -"""Sensoro Window Sensor (TS0601).""" +"""Senoro Window Sensor (TS0601).""" -from zigpy.quirks.v2.homeassistant import EntityPlatform, EntityType +from zigpy.quirks.v2 import EntityPlatform, EntityType import zigpy.types as t from zhaquirks.tuya import BatterySize @@ -10,9 +10,9 @@ class OpeningStateEnum(t.enum8): """Enum for opening state.""" - open = 0 - closed = 1 - tilted = 2 + Open = 0 + Closed = 1 + Tilted = 2 ( @@ -25,18 +25,18 @@ class OpeningStateEnum(t.enum8): .tuya_enum( dp_id=101, attribute_name="opening_state", - enum_class=OpeningStateEnum, - translation_key="opening_state", - fallback_name="Opening state", + enum_class=OpeningStateEnum, entity_type=EntityType.STANDARD, entity_platform=EntityPlatform.SENSOR, + translation_key="opening", + fallback_name="Opening", ) .tuya_switch( dp_id=16, attribute_name="alarm", entity_type=EntityType.STANDARD, translation_key="alarm", - fallback_name="Tamper Alarm", + fallback_name="Tamper alarm", ) .skip_configuration() .add_to_registry() From d8c0497e5c81f1bcc2eb6f8da6e4c5de6d5840d3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 24 May 2025 22:01:00 +0000 Subject: [PATCH 11/12] Apply pre-commit auto fixes --- zhaquirks/tuya/tuya_door.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhaquirks/tuya/tuya_door.py b/zhaquirks/tuya/tuya_door.py index f9e80acc9a..edf5cae61d 100644 --- a/zhaquirks/tuya/tuya_door.py +++ b/zhaquirks/tuya/tuya_door.py @@ -25,7 +25,7 @@ class OpeningStateEnum(t.enum8): .tuya_enum( dp_id=101, attribute_name="opening_state", - enum_class=OpeningStateEnum, + enum_class=OpeningStateEnum, entity_type=EntityType.STANDARD, entity_platform=EntityPlatform.SENSOR, translation_key="opening", From ab16b886180482324c019c98baebb28182a7e907 Mon Sep 17 00:00:00 2001 From: ChristianGr1974 Date: Tue, 24 Jun 2025 20:16:52 +0200 Subject: [PATCH 12/12] Remove tamper alarm --- zhaquirks/tuya/tuya_door.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/zhaquirks/tuya/tuya_door.py b/zhaquirks/tuya/tuya_door.py index f9e80acc9a..8845399a79 100644 --- a/zhaquirks/tuya/tuya_door.py +++ b/zhaquirks/tuya/tuya_door.py @@ -31,13 +31,6 @@ class OpeningStateEnum(t.enum8): translation_key="opening", fallback_name="Opening", ) - .tuya_switch( - dp_id=16, - attribute_name="alarm", - entity_type=EntityType.STANDARD, - translation_key="alarm", - fallback_name="Tamper alarm", - ) .skip_configuration() .add_to_registry() )