فهرست منبع

Add support for Sygonix Smarter dehumidifier

Issue #2340

- clean up some obsolete icon overriding of almost compatible models
Jason Rumney 1 سال پیش
والد
کامیت
d24f657ded

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -692,3 +692,4 @@ Further device support has been made with the assistance of users. Please consid
 - [79chrisone](https://github.com/79chrisone) for contributing basic support for EARU DPN circuit breaker.
 - [79chrisone](https://github.com/79chrisone) for contributing basic support for EARU DPN circuit breaker.
 - [sorrison](https://github.com/sorrison) for contributing improvements to Sanden heat pump.
 - [sorrison](https://github.com/sorrison) for contributing improvements to Sanden heat pump.
 - [OsaedYahya](https://github.com/OsaedYahya) for contributing support for MyQ TD8 vide doorbell.
 - [OsaedYahya](https://github.com/OsaedYahya) for contributing support for MyQ TD8 vide doorbell.
+- [holgergrote](https://github.com/holgergrote) for contributing support for Sygonix Smarter dehumidifier.

+ 1 - 0
DEVICES.md

@@ -324,6 +324,7 @@
 - MeacoDry Arete Two 10L dehumidifier
 - MeacoDry Arete Two 10L dehumidifier
 - Pro Breeze 30L dehumidifier
 - Pro Breeze 30L dehumidifier
 - Shinco 30D dehumidifier (also matches Klarstein DryFy Connect)
 - Shinco 30D dehumidifier (also matches Klarstein DryFy Connect)
+- Sygonix Smarter dehumidifier
 - Tesla Smart XL dehumidifier
 - Tesla Smart XL dehumidifier
 - VacPlus dehumidifier
 - VacPlus dehumidifier
 - Vivosun DE0003 dehumidifier
 - Vivosun DE0003 dehumidifier

+ 15 - 21
custom_components/tuya_local/devices/eeese_anna_dehumidifier.yaml

@@ -6,13 +6,6 @@ primary_entity:
     - id: 1
     - id: 1
       name: switch
       name: switch
       type: boolean
       type: boolean
-      mapping:
-        - dps_val: false
-          icon: "mdi:air-humidifier-off"
-          icon_priority: 2
-        - dps_val: true
-          icon: "mdi:air-humidifier"
-          icon_priority: 4
     - id: 2
     - id: 2
       name: humidity
       name: humidity
       type: integer
       type: integer
@@ -31,27 +24,13 @@ primary_entity:
           value: auto
           value: auto
         - dps_val: Laundrydrying
         - dps_val: Laundrydrying
           value: laundry
           value: laundry
-          icon: "mdi:tshirt-crew"
-          icon_priority: 3
         - dps_val: Sleeping
         - dps_val: Sleeping
           value: sleep
           value: sleep
-          icon: "mdi:sleep"
-          icon_priority: 3
         - dps_val: Purifying
         - dps_val: Purifying
           value: purify
           value: purify
-          icon: "mdi:air-purifier"
-          icon_priority: 3
     - id: 6
     - id: 6
       name: current_humidity
       name: current_humidity
       type: integer
       type: integer
-    - id: 19
-      type: bitfield
-      name: fault_code
-      optional: true
-      mapping:
-        - dps_val: 4
-          icon: "mdi:cup-water"
-          icon_priority: 1
 secondary_entities:
 secondary_entities:
   - entity: binary_sensor
   - entity: binary_sensor
     translation_key: tank_full
     translation_key: tank_full
@@ -95,6 +74,21 @@ secondary_entities:
           - dps_val: 8
           - dps_val: 8
             value: false
             value: false
           - value: true
           - value: true
+      - id: 19
+        type: bitfield
+        optional: true
+        name: fault_code
+      - id: 19
+        type: bitfield
+        optional: true
+        name: description
+        mapping:
+          - dps_val: 0
+            value: OK
+          - dps_val: 4
+            value: Tank full or missing
+          - dps_val: 8
+            value: Defrosting
   - entity: switch
   - entity: switch
     translation_key: ionizer
     translation_key: ionizer
     category: config
     category: config

+ 254 - 0
custom_components/tuya_local/devices/sygonix_smarter_dehumidifier.yaml

@@ -0,0 +1,254 @@
+name: Dehumidifier
+products:
+  - id: 4xcjyqplnfenhplh
+    name: Sygonix Smarter
+primary_entity:
+  entity: humidifier
+  class: dehumidifier
+  dps:
+    - id: 1
+      name: switch
+      type: boolean
+    - id: 2
+      type: integer
+      name: humidity
+      range:
+        min: 30
+        max: 80
+      mapping:
+        - step: 5
+    - id: 5
+      name: mode
+      type: string
+      mapping:
+        - dps_val: Continuities
+          value: boost
+        - dps_val: Auto
+          value: auto
+        - dps_val: Sleep
+          value: sleep
+    - id: 6
+      type: integer
+      name: current_humidity
+    # This doesn't actually have an ionizer, but having the dp
+    # will aid in detection
+    - id: 10
+      type: boolean
+      name: ionizer
+    - id: 19
+      name: error
+      type: bitfield
+      # E2 might be a compressor fault.
+      mapping:
+        - dps_val: 0
+          value: OK
+        - dps_val: 1
+          value: "Water Tank Full or Removed"
+          icon: "mdi:cup-water"
+          icon_priority: 1
+        - dps_val: 2
+          value: "E2 Compressor Fault"
+          icon: "mdi:engine-off-outline"
+          icon_priority: 1
+    - id: 102
+      type: integer
+      name: model_code
+    - id: 104
+      type: integer
+      name: equipment_code
+secondary_entities:
+  - entity: fan
+    dps:
+      - id: 1
+        type: boolean
+        name: switch
+      - id: 4
+        type: string
+        name: speed
+        mapping:
+          - dps_val: "low"
+            value: 50
+          - dps_val: "high"
+            value: 100
+  - entity: sensor
+    class: temperature
+    dps:
+      - id: 7
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 24
+        type: string
+        name: unit
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 16
+        type: boolean
+        name: lock
+  - entity: select
+    translation_key: timer
+    category: config
+    dps:
+      - id: 17
+        type: string
+        name: option
+        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
+  - entity: binary_sensor
+    translation_key: tank_full
+    category: diagnostic
+    dps:
+      - id: 19
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 1
+            value: true
+          - value: false
+  - entity: binary_sensor
+    name: Filter
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 19
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 2
+            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
+          - dps_val: 2
+            value: false
+          - dps_val: null
+            value: false
+          - value: true
+      - id: 19
+        type: bitfield
+        name: fault_code
+      - id: 19
+        type: bitfield
+        name: description
+        mapping:
+          - dps_val: 0
+            value: OK
+          - dps_val: 1
+            value: Tank full or missing
+          - dps_val: 2
+            value: Clean filter
+          - dps_val: 4
+            value: "E1: temperature sensor failure"
+          - dps_val: 8
+            value: "CL: temperature too low"
+          - dps_val: 16
+            value: "CH: temperature too high"
+          - dps_val: 32
+            value: "LO: humidity too low"
+          - dps_val: 64
+            value: "COIL: coil failure"
+          - dps_val: 128
+            value: "MOTOR: fan failure"
+  - entity: button
+    name: Filter reset
+    class: restart
+    category: config
+    dps:
+      - id: 20
+        type: boolean
+        name: button
+  - entity: sensor
+    category: diagnostic
+    name: Filter Lifetime
+    dps:
+      - id: 23
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+  - entity: select
+    translation_key: temperature_unit
+    category: config
+    dps:
+      - id: 24
+        type: string
+        name: option
+        mapping:
+          - dps_val: c
+            value: celsius
+          - dps_val: f
+            value: fahrenheit
+  - entity: button
+    name: Runtime reset
+    class: restart
+    category: config
+    dps:
+      - id: 28
+        type: boolean
+        name: button

+ 13 - 28
custom_components/tuya_local/devices/vivosun_de0003_dehumidifier.yaml

@@ -9,13 +9,6 @@ primary_entity:
     - id: 1
     - id: 1
       name: switch
       name: switch
       type: boolean
       type: boolean
-      mapping:
-        - dps_val: false
-          icon: "mdi:air-humidifier-off"
-          icon_priority: 3
-        - dps_val: true
-          icon: "mdi:air-humidifier"
-          icon_priority: 5
     - id: 2
     - id: 2
       type: integer
       type: integer
       name: humidity
       name: humidity
@@ -30,16 +23,10 @@ primary_entity:
       mapping:
       mapping:
         - dps_val: Continuities
         - dps_val: Continuities
           value: boost
           value: boost
-          icon: "mdi:tshirt-crew-outline"
-          icon_priority: 4
         - dps_val: Auto
         - dps_val: Auto
           value: auto
           value: auto
-          icon: "mdi:water-outline"
-          icon_priority: 4
         - dps_val: Sleep
         - dps_val: Sleep
           value: sleep
           value: sleep
-          icon: "mdi:weather-night"
-          icon_priority: 4
     - id: 6
     - id: 6
       type: integer
       type: integer
       name: current_humidity
       name: current_humidity
@@ -48,21 +35,6 @@ primary_entity:
     - id: 10
     - id: 10
       type: boolean
       type: boolean
       name: ionizer
       name: ionizer
-    - id: 19
-      name: error
-      type: bitfield
-      # E2 might be a compressor fault.
-      mapping:
-        - dps_val: 0
-          value: OK
-        - dps_val: 1
-          value: "Water Tank Full or Removed"
-          icon: "mdi:cup-water"
-          icon_priority: 1
-        - dps_val: 2
-          value: "E2 Compressor Fault"
-          icon: "mdi:engine-off-outline"
-          icon_priority: 1
 secondary_entities:
 secondary_entities:
   - entity: fan
   - entity: fan
     dps:
     dps:
@@ -176,3 +148,16 @@ secondary_entities:
           - dps_val: null
           - dps_val: null
             value: false
             value: false
           - value: true
           - value: true
+      - id: 19
+        type: bitfield
+        name: fault_code
+      - id: 19
+        type: bitfield
+        name: desciption
+        mapping:
+          - dps_val: 0
+            value: OK
+          - dps_val: 1
+            value: Tank full or missing
+          - dps_val: 2
+            value: "E2: Compressor fault"