Răsfoiți Sursa

feat(devices): add support for EG4 solar heat pump

Issue #3439
Jason Rumney 7 luni în urmă
părinte
comite
f67619c275

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -996,3 +996,4 @@ Further device support has been made with the assistance of users. Please consid
 - [happy-daisy](https://github.com/happy-daisy) for assisting with support for Beca BHT-12 thermostat smartplug.
 - [nhadpck](https://github.com/nhadpck) for assisting with support for Moes human presence sensor.
 - [demartinoaj](https://github.com/demartinoaj) for contributing support for Holmes tower fan.
+- [larduino](https://github.com/larduino) for assisting with support for EG4 solar heat pump.

+ 1 - 0
DEVICES.md

@@ -85,6 +85,7 @@
 - Duux Blizzard portable air conditioner
 - Eberg Cooly C35HD
 - Eberg Qubo Q40HD
+- EG4 solar heat pump
 - ElectriQ 12WMINV
 - ElectriQ Airflex, EcoSilent models
 - ElectriQ SupremeCool SC16HPW

+ 192 - 0
custom_components/tuya_local/devices/ed4_solar_heatpump.yaml

@@ -0,0 +1,192 @@
+name: Heat pump
+products:
+  - id: gpjca2vt
+    manufacturer: EG4
+    model: DWA4-ACDC1-12K
+entities:
+  - entity: climate
+    translation_key: aircon_extra
+    dps:
+      - id: 1
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            constraint: mode
+            conditions:
+              - dps_val: auto
+                value: heat_cool
+              - dps_val: cold
+                value: cool
+              - dps_val: hot
+                value: heat
+              - dps_val: wind
+                value: fan_only
+      - id: 2
+        type: integer
+        name: temperature
+        range:
+          min: 16
+          max: 90
+        mapping:
+          - constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: temp_set_f
+                range:
+                  min: 61
+                  max: 90
+              - dps_val: c
+                range:
+                  min: 16
+                  max: 32
+      - id: 3
+        type: integer
+        name: current_temperature
+        mapping:
+          - constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: temp_cur_f
+      - id: 4
+        type: string
+        name: mode
+        hidden: true
+      - id: 6
+        type: boolean
+        name: preset_mode
+        mapping:
+          - dps_val: true
+            value: eco
+          - dps_val: false
+            value: comfort
+      - id: 19
+        type: integer
+        name: temp_set_f
+        hidden: true
+        range:
+          min: 61
+          max: 90
+      - id: 20
+        type: integer
+        name: temp_cur_f
+        hidden: true
+      - id: 21
+        type: string
+        name: temperature_unit
+        mapping:
+          - dps_val: c
+            value: celsius
+          - dps_val: f
+            value: fahrenheit
+      - id: 22
+        type: string
+        name: hvac_action
+        mapping:
+          - dps_val: "off"
+            value: idle
+          - dps_val: cooling
+            value: cooling
+          - dps_val: heating
+            value: heating
+          - dps_val: ventilation
+            value: fan
+      - id: 23
+        type: string
+        name: fan_mode
+        mapping:
+          - dps_val: auto
+            value: auto
+          - dps_val: low
+            value: low
+          - dps_val: high
+            value: high
+          - dps_val: strong
+            value: strong
+      - id: 104
+        type: boolean
+        name: unknown_104
+      - id: 105
+        type: boolean
+        name: unknown_105
+      - id: 106
+        type: integer
+        name: unknown_106
+      - id: 107
+        type: integer
+        name: unknown_107
+      - id: 108
+        type: integer
+        name: unknown_108
+      - id: 109
+        type: integer
+        name: unknown_109
+      - id: 110
+        type: integer
+        name: unknown_110
+      - id: 111
+        type: integer
+        name: unknown_111
+      - id: 112
+        type: boolean
+        name: unknown_112
+      - id: 119
+        type: integer
+        name: unknown_119
+  - entity: switch
+    translation_key: ioniser
+    category: config
+    dps:
+      - id: 9
+        type: boolean
+        name: switch
+  - entity: switch
+    name: Emergency heat
+    icon: "mdi:fire-alert"
+    category: config
+    dps:
+      - id: 10
+        type: boolean
+        name: switch
+  - entity: light
+    translation_key: display
+    category: config
+    dps:
+      - id: 11
+        type: boolean
+        name: switch
+  - entity: select
+    translation_key: temperature_unit
+    category: config
+    dps:
+      - id: 21
+        type: string
+        name: option
+        mapping:
+          - dps_val: c
+            value: celsius
+          - dps_val: f
+            value: fahrenheit
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 24
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 24
+        type: bitfield
+        name: fault_code
+  - entity: switch
+    translation_key: sleep
+    category: config
+    dps:
+      - id: 101
+        type: boolean
+        name: switch