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

Starlight/Daizuke heatpumps: identified unknown dps

Based on Pioneer WYT Diamante, issue #820.
Logs for the Pioneer match the original reports for these heatpumps,
so assume the mappings are almost identical between the 3.
Jason Rumney 2 лет назад
Родитель
Сommit
576cd529b6

+ 62 - 19
custom_components/tuya_local/devices/daizuki_heatpump.yaml

@@ -57,12 +57,8 @@ primary_entity:
         - dps_val: strong
           value: strong
     - id: 20
-      type: integer
-      name: unknown_20
-    - id: 101
-      type: integer
-      name: unknown_101
-      optional: true
+      type: bitfield
+      name: fault_code
     - id: 105
       type: string
       name: sleep_mode
@@ -100,38 +96,35 @@ primary_entity:
       hidden: true
     - id: 119
       type: string
-      name: unknown_119
+      name: electricity_management
     - id: 120
       type: string
-      name: unknown_120
+      name: gen_mode
     - id: 123
-      type: string
+      type: hex
       name: flags_2
     - id: 125
       type: string
-      name: unknown_125
+      name: air_quality
       optional: true
     - id: 128
       type: string
-      name: unknown_128
+      name: model_code
     - id: 129
       type: string
-      name: unknown_129
+      name: energy
     - id: 130
       type: integer
-      name: maybe_eco_temp
-    - id: 131
-      type: boolean
-      name: unknown_131
+      name: eco_temp
     - id: 132
       type: boolean
-      name: unknown_132
+      name: hot_cool
     - id: 133
       type: string
-      name: unknown_133
+      name: swing_action
     - id: 134
       type: json
-      name: unknown_134
+      name: statistics
 secondary_entities:
   - entity: sensor
     class: temperature
@@ -228,3 +221,53 @@ secondary_entities:
             value: Slight Right
           - dps_val: "5"
             value: Rightmost
+  - entity: light
+    name: Display
+    category: config
+    icon: "mdi:television-ambient-light"
+    dps:
+      - id: 123
+        type: hex
+        name: switch
+        mapping:
+          - mask: "0008"
+  - entity: switch
+    name: Beep
+    category: config
+    dps:
+      - id: 123
+        type: hex
+        name: switch
+        mapping:
+          - mask: "0010"
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 20
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+  - entity: sensor
+    name: 
+    class: pm25
+    category: diagnostic
+    dps:
+      - id: 101
+        type: integer
+        name: sensor
+        unit: ugm3
+        optional: true
+        class: measurement
+  - entity: binary_sensor
+    name: Filter
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 131
+        type: boolean
+        name: sensor

+ 33 - 16
custom_components/tuya_local/devices/starlight_heatpump.yaml

@@ -71,14 +71,14 @@ primary_entity:
         - dps_val: strong
           value: strong
     - id: 20
-      name: unknown_20
-      type: integer
+      name: fault_code
+      type: bitfield
     - id: 105
       name: sleep_mode
       type: string
     - id: 110
-      name: unknown_110
-      type: integer
+      name: flags
+      type: bitfield
     - id: 113
       name: swing_mode
       type: string
@@ -119,11 +119,11 @@ primary_entity:
       name: electricity_management
       type: string
     - id: 120
-      name: unknown_120
+      name: gen_mode
       type: string
     - id: 123
-      name: flags
-      type: string
+      name: flags_2
+      type: hex
     - id: 126
       name: vertical_flow_position
       type: string
@@ -131,25 +131,22 @@ primary_entity:
       name: horizontal_flow_position
       type: string
     - id: 128
-      name: unknown_128
+      name: model_code
       type: string
     - id: 129
-      name: unknown_129
+      name: energy
       type: string
     - id: 130
-      name: maybe_eco_temp
+      name: eco_temp
       type: integer
-    - id: 131
-      name: unknown_131
-      type: boolean
     - id: 132
-      name: unknown_132
+      name: hot_cool
       type: boolean
     - id: 133
-      name: unknown_133
+      name: swing_action
       type: string
     - id: 134
-      name: unknown_134
+      name: statistics
       type: json
 secondary_entities:
   - entity: sensor
@@ -333,3 +330,23 @@ secondary_entities:
         mapping:
           - scale: 1
             mask: "0001"
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 20
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+  - entity: binary_sensor
+    name: Filter
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 131
+        type: boolean
+        name: sensor

+ 2 - 0
tests/devices/test_starlight_heatpump.py

@@ -31,6 +31,8 @@ class TestStarLightHeatpump(
         )
         self.mark_secondary(
             [
+                "binary_sensor_fault",
+                "binary_sensor_filter",
                 "sensor_humidity",
                 "select_vertical_swing",
                 "select_vertical_position",