Просмотр исходного кода

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 1 год назад
Родитель
Сommit
95018d0bdf

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

@@ -3,6 +3,10 @@ products:
   - id: p3fnrnlcjm2yxeks
     manufacturer: Siguro
     model: DH-F300W
+  - id: nkxacpp51xgudnjq
+    manufacturer: ProBreeze
+    model: OmniDry 12L
+    model_id: PB-D-18W-WF
 entities:
   - entity: humidifier
     class: dehumidifier
@@ -31,20 +35,14 @@ entities:
       - 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
-        # 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
         type: integer
         name: client_id
       - id: 104
         type: integer
         name: equipment_type
+        # Listed, but no log. Pointless, as there is no runtime indicator:
+        # 28 = runtime_total_reset (bool)
   - entity: fan
     dps:
       - id: 1
@@ -83,54 +81,54 @@ entities:
         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
+          - 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
@@ -170,3 +168,47 @@ entities:
             value: Tank full or missing
           - dps_val: 2
             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