Răsfoiți Sursa

Add support for Zigbee ZM85EL-1x roller blind motor

Issue #3133
Jason Rumney 8 luni în urmă
părinte
comite
dedf9c3293

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -928,3 +928,4 @@ Further device support has been made with the assistance of users. Please consid
 - [arni077r](https://github.com/arni077r) for contributing support for Euroster 4040 Smart thermostat.
 - [maksim-petukhov](https://github.com/maksim-petukhov) for assisting with support for Fral Super Cool FSC14.2 DH portable air conditioner.
 - [MchlLyn](https://github.com/MchlLyn) for assisting with support for dé Wall Charger (3-phase 22Kw).
+- [diegoschefer](https://github.com/diegoschefer) for assisting with support for Zemismart ZM85EL-1x roller blind motor.

+ 1 - 0
DEVICES.md

@@ -1046,6 +1046,7 @@ entity types as sub devices.
 - WL-898WZ water leak sensor
 - WL-RTCZ-05Z human presence sensor
 - Zemismart SPM01 energy meter
+- Zemismart ZM85EL-1x roller blind motor
 - ZPmeter 214C-Z water meter (with and without valve control)
 
 - ZTH08ZTU temperature and humidity sensor

+ 1 - 1
custom_components/tuya_local/devices/zemismart_curtain.yaml

@@ -47,7 +47,7 @@ entities:
     category: diagnostic
     dps:
       - id: 12
-        type: boolean
+        type: bitfield
         name: sensor
         optional: true
         persist: false

+ 154 - 0
custom_components/tuya_local/devices/zemismart_zm85el1x_rollershade.yaml

@@ -0,0 +1,154 @@
+name: Roller blinds
+products:
+  - id: nwxr8qcu4seltoro
+    manufacturer: Zemismart
+    model: ZM85EL-1x
+entities:
+  - entity: cover
+    class: blind
+    dps:
+      - id: 1
+        name: control
+        type: string
+        optional: true
+        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: 7
+        # seems intended to match action, but doesn't change in observation
+        name: work_state
+        type: string
+        optional: true
+      - id: 11
+        name: action
+        type: string
+        optional: true
+        persist: false
+        mapping:
+          - dps_val: fully_open
+            value: opened
+          - dps_val: fully_close
+            value: closed
+  - entity: select
+    name: Mode
+    icon: "mdi:theme-light-dark"
+    category: config
+    dps:
+      - id: 4
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: morning
+            value: morning
+          - dps_val: night
+            value: night
+  - entity: switch
+    name: Reverse
+    category: config
+    icon: "mdi:arrow-u-down-left"
+    dps:
+      - id: 5
+        type: boolean
+        optional: true
+        name: switch
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 12
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 12
+        name: fault_code
+        type: bitfield
+  - entity: sensor
+    class: battery
+    category: diagnostic
+    dps:
+      - id: 13
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+  - entity: select
+    name: Border setting
+    icon: "mdi:arrow-expand-vertical"
+    category: config
+    dps:
+      - id: 16
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: up
+            value: Set top
+          - dps_val: down
+            value: Set bottom
+          - dps_val: up_delete
+            value: Clear top
+          - dps_val: down_delete
+            value: Clear bottom
+          - dps_val: remove_top_bottom
+            value: Clear all
+  - entity: number
+    name: Saved position
+    category: config
+    icon: "mdi:blinds-horizontal"
+    dps:
+      - id: 19
+        type: integer
+        optional: true
+        name: value
+        unit: "%"
+        range:
+          min: 0
+          max: 100
+  - entity: button
+    name: Up
+    icon: "mdi:arrow-up-bold-circle"
+    hidden: true
+    dps:
+      - id: 20
+        type: string
+        optional: true
+        name: button
+        mapping:
+          - dps_val: up
+            value: true
+  - entity: button
+    name: Down
+    icon: "mdi:arrow-down-bold-circle"
+    hidden: true
+    dps:
+      - id: 20
+        type: string
+        optional: true
+        name: button
+        mapping:
+          - dps_val: down
+            value: true