Ver Fonte

Siguro dehumidifier: add compatible ProBreeze OmniDry 12L

Model is compatible down to the mis-spellings in the mode names.
Seems to report temperature unit and filter reset, but no sign in the
manual that they are actually supported.

Added hidden entities for all the unsupported features except runtime reset,
which makes no sense as there is no runtime and has never been observed.

Issue #2868
Jason Rumney há 1 ano atrás
pai
commit
95018d0bdf

+ 98 - 56
custom_components/tuya_local/devices/siguro_sgrhdf300w_dehumidifier.yaml

@@ -3,6 +3,10 @@ products:
   - id: p3fnrnlcjm2yxeks
   - id: p3fnrnlcjm2yxeks
     manufacturer: Siguro
     manufacturer: Siguro
     model: DH-F300W
     model: DH-F300W
+  - id: nkxacpp51xgudnjq
+    manufacturer: ProBreeze
+    model: OmniDry 12L
+    model_id: PB-D-18W-WF
 entities:
 entities:
   - entity: humidifier
   - entity: humidifier
     class: dehumidifier
     class: dehumidifier
@@ -31,20 +35,14 @@ entities:
       - id: 6
       - id: 6
         type: integer
         type: integer
         name: current_humidity
         name: current_humidity
-      # This doesn't actually have an ionizer, but having the dp
-      # will aid in detection
-      - id: 10
-        type: boolean
-        name: ionizer
-        # Missing from log:
-        # 20 = filter_reset (bool), 23 = filter_life (ro int 0-100 %)
-        # 24 = temp unit (c/f), 28 = runtime_total_reset (bool)
       - id: 102
       - id: 102
         type: integer
         type: integer
         name: client_id
         name: client_id
       - id: 104
       - id: 104
         type: integer
         type: integer
         name: equipment_type
         name: equipment_type
+        # Listed, but no log. Pointless, as there is no runtime indicator:
+        # 28 = runtime_total_reset (bool)
   - entity: fan
   - entity: fan
     dps:
     dps:
       - id: 1
       - id: 1
@@ -83,54 +81,54 @@ entities:
         mapping:
         mapping:
           - dps_val: cancel
           - dps_val: cancel
             value: 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
+          - 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
   - entity: binary_sensor
     translation_key: tank_full
     translation_key: tank_full
     category: diagnostic
     category: diagnostic
@@ -170,3 +168,47 @@ entities:
             value: Tank full or missing
             value: Tank full or missing
           - dps_val: 2
           - dps_val: 2
             value: Clean filter
             value: Clean filter
+  # The following do not seem to be supported by the devices encountered
+  # so far, so are hidden by default
+  - entity: switch
+    translation_key: ionizer
+    hidden: true
+    category: config
+    dps:
+      - id: 10
+        type: boolean
+        name: switch
+  - entity: button
+    translation_key: filter_reset
+    hidden: true
+    category: config
+    dps:
+      - id: 20
+        type: boolean
+        optional: true
+        name: button
+  - entity: sensor
+    name: Filter
+    hidden: true
+    category: diagnostic
+    dps:
+      - id: 23
+        type: integer
+        optional: true
+        name: sensor
+        unit: "%"
+  - entity: select
+    translation_key: temperature_unit
+    hidden: true
+    # uncertain if this will affect temperature entity or only display
+    category: config
+    dps:
+      - id: 24
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: c
+            value: celsius
+          - dps_val: f
+            value: fahrenheit