Browse Source

Add support for zemismart curtains.

Issue #249
Jason Rumney 3 years ago
parent
commit
fe9fb56632
3 changed files with 41 additions and 1 deletions
  1. 1 1
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 39 0
      custom_components/tuya_local/devices/zemismart_curtain.yaml

+ 1 - 1
ACKNOWLEDGEMENTS.md

@@ -28,7 +28,7 @@ Further device support has been made with the assistance of users.  Please consi
  - [b3nnyk22](https://github.com/b3nnyk22) for assistance in supporting Kogan Dehumidifiers.
  - [rodrigoGA](https://github.com/rodrigoGA) for assistance in supporting Greenwind dehumidifiers.
  - [jorgenDK](https://github.com/jorgenDK) for assistance in supporting TroniTechnik Air Conditioner, and thanks for the coffee!
- - [Fannangir](https://github.com/Fannangir) for assistance in supporting Tadiran Wind Air Conditioner.
+ - [Fannangir](https://github.com/Fannangir) for assistance in supporting Tadiran Wind Air Conditioner and Zemismart curtain rail.
  - [marrold](https://github.com/marrold) for contributing support for ElectriQ CD20PRO dehumidifiers.
  - [Uaeguy](https://github.com/Uaeguy) for assistance in supporting Beca BHP-6000, Saswell T29UTK and Owon PCT513 thermostats, and thanks for the coffee!
  - [Johnnybyzhang](https://github.com/Johnnybyzhang) for assistance in supporting Lexy F501 fans.

+ 1 - 0
DEVICES.md

@@ -176,6 +176,7 @@ Other brands may work with the above configurations
 - M027 curtain module (sold under several brands, including zemismart, meterk and others)
 - Avatto roller blinds controller
 - Wistar roller blinds controller
+- Zemismart curtain rail
 
 ### Vacuum Cleaners
 

+ 39 - 0
custom_components/tuya_local/devices/zemismart_curtain.yaml

@@ -0,0 +1,39 @@
+name: Zemismart curtain rail
+primary_entity:
+  entity: cover
+  class: blind
+  dps:
+    - id: 1
+      name: control
+      type: string
+      mapping:
+        - dps_val: open
+          value: open
+        - dps_val: close
+          value: close
+        - dps_val: stop
+          value: stop
+    - id: 2
+      name: position
+      type: integer
+      range:
+        min: 0
+        max: 100
+      mapping:
+        - invert: true
+    - id: 3
+      name: current_position
+      type: integer
+      range:
+        min: 0
+        max: 100
+      mapping:
+        - invert: true
+    - id: 5
+      name: control_back_mode
+      type: boolean
+    - id: 7
+      name: work_state
+      type: string
+      # seems intended to match action, but doesn't change in observation
+