Ver código fonte

Add support for Meaco DD8L Pro dehumidifier (#4249)

* Add support for Meaco DD8L Pro dehumidifier

* Update meaco_dd8l_pro_dehumidifier.yaml

Fixed the Tank Full DPS

* Update meaco_dd8l_pro_dehumidifier.yaml

Updates to reflect all of the feedback from the Tuya Local maintainer.

* Fixed Tank Full DPS for Meaco DD8L Pro

Fixed Tank Full Logic after getting new DPS values for On/Off state when tank not full.

* Fixed Timer and re-added Time Remaining

Removed Timer previously be mistake. Fixed it and re-added Time Remaining information, which is reported by the device.

* Removing unneeded mappings from modes

Will later investigate where to place these errors that are in the manual.

* feat (meaco_dd8l_pro_dehumidifier): fix issues, expand translation use

- add mapping for step
- use mode translation key for selects that can reuse existing translated modes
- shorten comment lines

PR #4249

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
anthonws 1 mês atrás
pai
commit
6a86518d9a

+ 178 - 0
custom_components/tuya_local/devices/meaco_dd8l_pro_dehumidifier.yaml

@@ -0,0 +1,178 @@
+name: Dehumidifier
+products:
+  - id: vvsrpq0oavmf2vou
+    manufacturer: Meaco
+    model: DD8L Pro
+
+entities:
+  - entity: humidifier
+    class: dehumidifier
+    dps:
+      - id: 1
+        name: switch
+        type: boolean
+      - id: 2
+        name: humidity
+        type: integer
+        range:
+          min: 35
+          max: 80
+        mapping:
+          - step: 5
+      - id: 6
+        name: current_humidity
+        type: integer
+      - id: 5
+        name: mode
+        type: string
+        mapping:
+          - dps_val: dehumidify
+            value: normal
+          - dps_val: drying
+            value: laundry
+          - dps_val: Sleep
+            value: sleep
+
+  - entity: select
+    translation_key: timer
+    category: config
+    dps:
+      - id: 17
+        name: option
+        type: string
+        mapping:
+          - dps_val: cancel
+            value: cancel
+          - dps_val: 1h
+            value: 1h
+          - dps_val: 2h
+            value: 2h
+          - dps_val: 3h
+            value: 3h
+          - dps_val: 4h
+            value: 4h
+          - dps_val: 5h
+            value: 5h
+          - dps_val: 6h
+            value: 6h
+          - dps_val: 7h
+            value: 7h
+          - dps_val: 8h
+            value: 8h
+          - dps_val: 9h
+            value: 9h
+          - dps_val: 10h
+            value: 10h
+          - dps_val: 11h
+            value: 11h
+          - dps_val: 12h
+            value: 12h
+          - dps_val: 13h
+            value: 13h
+          - dps_val: 14h
+            value: 14h
+          - dps_val: 15h
+            value: 15h
+          - dps_val: 16h
+            value: 16h
+          - dps_val: 17h
+            value: 17h
+          - dps_val: 18h
+            value: 18h
+          - dps_val: 19h
+            value: 19h
+          - dps_val: 20h
+            value: 20h
+          - dps_val: 21h
+            value: 21h
+          - dps_val: 22h
+            value: 22h
+          - dps_val: 23h
+            value: 23h
+          - dps_val: 24h
+            value: 24h
+        # Added as an attribute instead of sensor since it is a string.
+      - id: 102
+        name: timer_remaining
+        type: string
+
+  - entity: select
+    name: Fan mode
+    translation_key: mode
+    icon: "mdi:fan"
+    category: config
+    dps:
+      - id: 101
+        name: option
+        type: string
+        mapping:
+          - dps_val: 200w
+            value: low
+          - dps_val: 400w
+            value: medium
+          - dps_val: 600w
+            value: high
+          - dps_val: auto
+            value: auto
+
+  - entity: select
+    name: Swing mode
+    translation_key: mode
+    icon: "mdi:swap-vertical"
+    category: config
+    dps:
+      - id: 105
+        name: option
+        type: string
+        mapping:
+          - dps_val: b_swing
+            value: high
+          - dps_val: m_swing
+            value: medium
+          - dps_val: s_swing
+            value: low
+          - dps_val: n_swing
+            value: "off"
+
+  - entity: binary_sensor
+    translation_key: tank_full
+    dps:
+      - id: 19
+        name: sensor
+        type: bitfield
+        mapping:
+          # Captured when tank was full
+          - dps_val: 1
+            value: true
+          - value: false
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 19
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - dps_val: 1
+            value: false
+          - value: true
+      - id: 19
+        type: bitfield
+        name: fault_code
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 16
+        name: lock
+        type: boolean
+
+  - entity: switch
+    translation_key: ionizer
+    category: config
+    dps:
+      - id: 10
+        name: switch
+        type: boolean