Browse Source

Add support for Evotherm ETI series pool heatpumps

Issue #1357
Jason Rumney 2 years ago
parent
commit
269da4a556
3 changed files with 239 additions and 0 deletions
  1. 1 0
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 237 0
      custom_components/tuya_local/devices/evotherm_eti_heatpump.yaml

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -446,3 +446,4 @@ Further device support has been made with the assistance of users. Please consid
 - [Balya](https://github.com/Balya) for contributing support for Smartmi E1 air purifiers and improvments to Russian translations.
 - [convicte](https://github.com/convicte) for assisting with support for Inna 7 channel underfloor heating controllers.
 - [mrtn1988](https://github.com/mrtn1988) for assisting with support for QH-GD Elegant IR heaters.
+- [uandco](https://github.com/uandco) for assisting with support for Evotherm ETI pool heatpumps.

+ 1 - 0
DEVICES.md

@@ -83,6 +83,7 @@
 ### Pool heaters / heatpumps
 
 - BWT FI 45 heatpump
+- Evotherm ETI series heeatpump
 - Fairland IPHCR15 pool heatpump (matches others above, but allows control of heat/cool modes while others seem to be fixed to auto only)
 - Garden PAC pool heatpump (also works with Summerwave Si Series)
 - IPS Pro pool-systems heatpump (seems to match Fairland Inver-X as well)

+ 237 - 0
custom_components/tuya_local/devices/evotherm_eti_heatpump.yaml

@@ -0,0 +1,237 @@
+name: Pool heat pump
+products:
+  - id: k5vqutj2llzox1gg
+    name: Evotherm ETI series
+primary_entity:
+  entity: climate
+  translation_key: pool_heatpump
+  dps:
+    - id: 1
+      name: hvac_mode
+      type: boolean
+      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: heat_cool
+              hidden: true
+    - id: 2
+      name: preset_mode
+      type: string
+      mapping:
+        - dps_val: Auto
+          value: auto
+        - dps_val: Heating_Powerful
+          value: quick_heat
+        - dps_val: Heating_Smart
+          value: smart_heat
+        - dps_val: Heating_Silent
+          value: quiet_heat
+        - dps_val: Cooling_Powerful
+          value: quick_cool
+        - dps_val: Cooling_Smart
+          value: smart_cool
+        - dps_val: Cooling_Silent
+          value: quiet_cool
+    - id: 5
+      name: work_mode
+      type: string
+      optional: true
+      hidden: true
+    - id: 15
+      name: fault_code
+      type: bitfield
+    - id: 16
+      name: current_temperature
+      type: integer
+      mapping:
+        - scale: 10
+    - id: 17
+      name: hvac_action
+      type: string
+      mapping:
+        - dps_val: Running
+          constraint: work_mode
+          conditions:
+            - dps_val: Cool_mode
+              value: cooling
+            - value: heating
+        - dps_val: Defrosting
+          value: preheating
+        - constraint: hvac_mode
+          conditions:
+            - dps_val: false
+              value: "off"
+            - value: idle
+    - id: 101
+      name: temperature
+      type: integer
+      unit: C
+      range:
+        min: 50
+        max: 550
+      mapping:
+        - scale: 10
+          constraint: work_mode
+          conditions:
+            - dps_val: Cool_mode
+              value_redirect: cold_temp
+            - dps_val: Auto_mode
+              value_redirect: auto_temp
+    - id: 102
+      name: cold_temp
+      type: integer
+      unit: C
+      range:
+        min: 50
+        max: 350
+      hidden: true
+    - id: 103
+      name: new_fault_1
+      type: bitfield
+    - id: 104
+      name: auto_temp
+      type: integer
+      unit: C
+      range:
+        min: 50
+        max: 400
+      hidden: true
+    - id: 107
+      name: new_fault_2
+      type: bitfield
+    - id: 109
+      name: unit_type
+      type: bitfield
+    - id: 110
+      name: new_driver_fault_1
+      type: bitfield
+    - id: 111
+      name: new_driver_fault_2
+      type: bitfield
+    - id: 117
+      name: frequency
+      type: string
+    - id: 118
+      name: fault_2
+      type: bitfield
+    - id: 119
+      name: fault_3
+      type: bitfield
+    - id: 120
+      name: driver_fault_1
+      type: bitfield
+secondary_entities:
+  - entity: select
+    name: Temperature unit
+    icon: "mdi:temperature-celsius"
+    category: config
+    dps:
+      - id: 6
+        type: string
+        name: option
+        mapping:
+          - dps_val: c
+            value: Celsius
+          - dps_val: f
+            value: Fahrenheit
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 17
+        type: string
+        name: sensor
+        mapping:
+          - dps_val: Fault
+            value: true
+          - value: false
+  - entity: sensor
+    name: Heating coil temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 23
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Exhaust temperature
+    class: temperaturee
+    category: diagnostic
+    dps:
+      - id: 24
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Water discharge temperature
+    class: 
+    category: diagnostic
+    dps:
+      - id: 25
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+  - entity: sensor
+    class: temperature
+    dps:
+      - id: 26
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Return temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 121
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        optional: true
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: Cooling coil temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 123
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+  - entity: sensor
+    name: EEV opening
+    category: diagnostic
+    dps:
+      - id: 125
+        type: integer
+        name: sensor
+        unit: P