Преглед изворни кода

feat(devices): add Turbro pool heat pump

Issue #4744
Jason Rumney пре 2 дана
родитељ
комит
45600fc7cd
2 измењених фајлова са 429 додато и 0 уклоњено
  1. 1 0
      DEVICES.md
  2. 428 0
      custom_components/tuya_local/devices/turbro_75000btu_poolheatpump.yaml

+ 1 - 0
DEVICES.md

@@ -186,6 +186,7 @@
 - Sibrape CBC-Pool BP heat pump
 - Steinbach Solid 4.3 and Silent Mini pool heat pumps
 - Swim & Fun InverBoost pool heat pump
+- Turbro 75000 btu pool heat pump
 - Waterco Electroheat ECO-V pool heat pump
 - W'eau pool heat pump (simple model and a more complex 13kW model)
 

+ 428 - 0
custom_components/tuya_local/devices/turbro_75000btu_poolheatpump.yaml

@@ -0,0 +1,428 @@
+name: Pool heat pump
+products:
+  - id: cbnlx1l9nyal6vk4
+    manufacturer: Turbro
+    model: "75000 btu"
+entities:
+  - entity: climate
+    translation_key: pool_heatpump
+    dps:
+      - id: 1
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            constraint: work_mode
+            conditions:
+              - dps_val: Cool_mode
+                value: cool
+              - dps_val: Heat_mode
+                value: heat
+              - dps_val: Auto_mode
+                value: heat_cool
+              - dps_val: null
+                value_redirect: mode_as_hvac
+                hidden: true
+      - id: 2
+        type: string
+        name: preset_mode
+        mapping:
+          - dps_val: Auto
+            value: auto
+          - dps_val: Heating_Smart
+            value: smart_heat
+          - dps_val: Heating_Powerful
+            value: quick_heat
+          - dps_val: Heating_Silent
+            value: quiet_heat
+          - dps_val: Cooling_Smart
+            value: smart_cool
+          - dps_val: Cooling_Powerful
+            value: quick_cool
+          - dps_val: Cooling_Silent
+            value: quiet_cool
+      - id: 2
+        type: string
+        name: mode_as_hvac
+        mapping:
+          - dps_val: Auto
+            value: heat_cool
+          - dps_val: Heating_Smart
+            value: heat
+          - dps_val: Heating_Powerful
+            value: heat
+            hidden: true
+          - dps_val: Heating_Silent
+            value: heat
+            hidden: true
+          - dps_val: Cooling_Smart
+            value: cool
+          - dps_val: Cooling_Powerful
+            value: cool
+            hidden: true
+          - dps_val: Cooling_Silent
+            value: cool
+            hidden: true
+      - id: 5
+        type: string
+        optional: true
+        name: work_mode
+        hidden: true
+      - id: 6
+        type: string
+        name: temperature_unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+      - id: 16
+        type: integer
+        optional: true
+        name: current_temperature
+        mapping:
+          - scale: 10
+            constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: temp_current_f
+      - id: 17
+        type: string
+        name: hvac_action
+        mapping:
+          - dps_val: Running
+            value: heating
+            constraint: preset_mode
+            conditions:
+              - dps_val: [Cooling_Powerful, Cooling_Smart, Cooling_Silent]
+                value: cooling
+              # Unfortunately we cannot tell what Auto is doing
+              - dps_val: Auto
+                value: null
+          - dps_val: Defrosting
+            value: defrosting
+          - dps_val: Standby
+            value: idle
+          - value: null
+      - id: 35
+        type: integer
+        optional: true
+        name: temp_current_f
+        hidden: true
+        mapping:
+          - scale: 10
+      - id: 101
+        type: integer
+        optional: true
+        name: temperature
+        range:
+          min: 46
+          max: 400
+        mapping:
+          - constraint: preset_mode
+            conditions:
+              - dps_val: [Heating_Powerful, Heating_Smart, Heating_Silent]
+                value_redirect: set_heating_temp
+              - dps_val: [Cooling_Powerful, Cooling_Smart, Cooling_Silent]
+                value_redirect: set_cold_temp
+              - dps_val: Auto
+                value_redirect: set_auto_temp
+      - id: 101
+        type: integer
+        optional: true
+        name: set_heating_temp
+        mapping:
+          - constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: set_heating_temp_f
+              - dps_val: c
+                scale: 10
+                step: 10
+      - id: 102
+        type: integer
+        optional: true
+        name: set_cold_temp
+        mapping:
+          - constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: set_cold_temp_f
+              - dps_val: c
+                scale: 10
+                step: 10
+      - id: 104
+        type: integer
+        optional: true
+        name: set_auto_temp
+        mapping:
+          - constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: set_auto_temp_f
+              - dps_val: c
+                scale: 10
+                step: 10
+      - id: 105
+        type: integer
+        optional: true
+        name: set_heating_temp_f
+      - id: 106
+        type: integer
+        optional: true
+        name: set_cold_temp_f
+      - id: 108
+        type: integer
+        optional: true
+        name: set_auto_temp_f
+      - id: 109
+        type: integer
+        name: unit_type
+  - entity: select
+    translation_key: temperature_unit
+    category: config
+    dps:
+      - id: 6
+        type: string
+        name: option
+        mapping:
+          - dps_val: c
+            value: celsius
+          - dps_val: f
+            value: fahrenheit
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 15
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 15
+        type: bitfield
+        name: fault_code
+      - id: 103
+        type: bitfield
+        name: new_fault_01
+      - id: 107
+        type: bitfield
+        name: new_fault_02
+      - id: 110
+        type: bitfield
+        name: new_driver_fault_01
+      - id: 111
+        type: bitfield
+        name: new_driver_fault_02
+      - id: 118
+        type: bitfield
+        name: fault_code_2
+      - id: 119
+        type: bitfield
+        name: fault_code_3
+      - id: 120
+        type: bitfield
+        name: driver_fault
+  - entity: sensor
+    name: Coil temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 23
+        type: integer
+        optional: true
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 10
+            constraint: unit
+            conditions:
+              - dps_val: f
+                value_redirect: sensor_f
+      - id: 6
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+      - id: 41
+        type: integer
+        optional: true
+        hidden: true
+        name: sensor_f
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Exhaust temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 24
+        type: integer
+        optional: true
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 10
+            constraint: unit
+            conditions:
+              - dps_val: f
+                value_redirect: sensor_f
+      - id: 6
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+      - id: 39
+        type: integer
+        optional: true
+        hidden: true
+        name: sensor_f
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Outlet temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 25
+        type: integer
+        optional: true
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 10
+            constraint: unit
+            conditions:
+              - dps_val: f
+                value_redirect: sensor_f
+      - id: 6
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+      - id: 40
+        type: integer
+        optional: true
+        hidden: true
+        name: sensor_f
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Ambient temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 26
+        type: integer
+        optional: true
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 10
+            constraint: unit
+            conditions:
+              - dps_val: f
+                value_redirect: sensor_f
+      - id: 6
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+      - id: 38
+        type: integer
+        optional: true
+        hidden: true
+        name: sensor_f
+        mapping:
+          - scale: 10
+  - entity: select
+    translation_key: mode
+    category: config
+    dps:
+      - id: 117
+        type: string
+        name: option
+        mapping:
+          - dps_val: Silent
+            value: Silent
+          - dps_val: Smart
+            value: Smart
+          - dps_val: Powerful
+            value: Powerful
+  - entity: sensor
+    name: Return temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 121
+        type: integer
+        optional: true
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 10
+            constraint: unit
+            conditions:
+              - dps_val: f
+                value_redirect: sensor_f
+      - id: 122
+        type: integer
+        optional: true
+        name: sensor_f
+        mapping:
+          - scale: 10
+      - id: 6
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+  - entity: sensor
+    name: Colling coil temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 123
+        type: integer
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 10
+            constraint: unit
+            conditions:
+              - dps_val: f
+                value_redirect: sensor_f
+      - id: 124
+        type: integer
+        optional: true
+        name: sensor_f
+        mapping:
+          - scale: 10
+      - id: 6
+        type: string
+        name: unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+  - entity: sensor
+    name: EEV
+    category: diagnostic
+    dps:
+      - id: 125
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement