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

fix(eberg_qubo_q40hd_heatpump): fix historical mistaken assumptions

 - add product details for Warmtec Morso+

Initially reported as a new device on #5868, but there is actually no evidence in
previous reports #35 and subsequent PR that the assignments were correct.

Timer was an assumption, there is no evidence for the 0-24 range. Since this
was an early device, it was probably a conclusion jumped to based on limited
data from other devices. So this being a fault code makes sense there also.

dp 101, was assumed to match the work_state from device info, even though the
logged value of "heat_s" did not match any of the documented values.

Most likely that is wrong, and subsequent reports that some variants report
heat_s even when cooling match with this being a static feature flag.

dp 6, which has never been observed would be the real hvac_action in theory,
and that matches with where that appears in the docs on #35.
Jason Rumney 3 дней назад
Родитель
Сommit
4e2eebf155
1 измененных файлов с 34 добавлено и 38 удалено
  1. 34 38
      custom_components/tuya_local/devices/eberg_qubo_q40hd_heatpump.yaml

+ 34 - 38
custom_components/tuya_local/devices/eberg_qubo_q40hd_heatpump.yaml

@@ -1,5 +1,9 @@
 name: Portable heat pump
-# products: Eberg Qubo Q40HD
+products:
+  - id: 5wdhsph4zwselcvh
+    manufacturer: Warmtec
+    model: Morso+
+    model_id: KP40W
 entities:
   - entity: climate
     dps:
@@ -16,6 +20,7 @@ entities:
                 value: cool
               - dps_val: hot
                 value: heat
+                available: heating_available
               - dps_val: dehumidify
                 value: dry
       - id: 2
@@ -74,51 +79,42 @@ entities:
             value: "on"
           - dps_val: false
             value: "off"
-      - id: 101
-        name: hvac_action
+      - id: 6
         type: string
-        # mappings based on dev portal info and observed values
+        optional: true
+        name: hvac_action
         mapping:
-          - dps_val: heat_s
+          - dps_val: heating
             value: heating
-            # Some variants report heat_s for any "active" mode
-            constraint: mode
-            conditions:
-              - dps_val: cold
-                value: cooling
-              - dps_val: dehumidify
-                value: drying
-          - dps_val: cool_s
+          - dps_val: cooling
             value: cooling
           - dps_val: ventilation
             value: fan
-          - dps_val: auto
-            value: idle
-          - dps_val: anti-clockwise
-            value: fan
-          - dps_val: hot
-            value: heating
-          - dps_val: appointment
+          - dps_val: "off"
             value: idle
           - dps_val: wet
             value: drying
-          - dps_val: auto_clean
-            value: idle
-          - dps_val: wind
-            value: fan
-          - dps_val: eco
-            value: idle
-          - dps_val: "off"
-            value: idle
-  - entity: number
-    translation_key: timer
-    class: duration
-    category: config
+          - value: null
+      - id: 101
+        name: heating_available
+        type: string
+        hidden: true
+        # mappings based on dev portal info and observed values
+        mapping:
+          - dps_val: heat_s
+            value: true
+          - value: false
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
     dps:
       - id: 22
-        type: integer
-        name: value
-        unit: h
-        range:
-          min: 0
-          max: 24
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 22
+        type: bitfield
+        name: fault_code