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

Add support for Madimack Eco pool heatpumps

Issue #1431
Jason Rumney пре 2 година
родитељ
комит
79ee4859aa
3 измењених фајлова са 285 додато и 0 уклоњено
  1. 1 0
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 283 0
      custom_components/tuya_local/devices/madimack_eco_heatpump.yaml

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -458,3 +458,4 @@ Further device support has been made with the assistance of users. Please consid
 - [MakeItBetterSAGL](https://github.com/MakeItBetterSAGL) for assisting with support for Sonnenkonig ECO 700 heaters.
 - [aver-ua](https://github.com/aver-ua) for assisting with support for Tongou QCB2-WB circuit breakers.
 - [Sh4r0](https://github.com/Sh4r0) for assisting with support for Tesvor S6 vacuums.
+- [wholly1971](https://github.com/wholly1971) for assisting with support for Madimack Eco pool heatpumps.

+ 1 - 0
DEVICES.md

@@ -92,6 +92,7 @@
 - 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)
+- Madimack Eco pool heatpump
 - Madimack Elite V3 pool heatpump
 - Madimack(model unknown) pool heatpump (seems to match Fairland IPH45 as well)
 - Poolex Silverline, Q-7, Q-line and Vertigo heatpumps

+ 283 - 0
custom_components/tuya_local/devices/madimack_eco_heatpump.yaml

@@ -0,0 +1,283 @@
+name: Pool heatpump
+products:
+  - id: kwrvh8zwvbbyp086
+    name: Madimack Eco 16kW
+primary_entity:
+  entity: climate
+  dps:
+    - id: 101
+      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: heating
+              value: heat
+            - dps_val: cold
+              value: cool
+    - id: 102
+      type: string
+      name: mode
+    - id: 104
+      type: integer
+      name: temperature
+      range:
+        min: -22
+        max: 104
+    - id: 105
+      type: string
+      name: preset_mode
+      mapping:
+        - dps_val: power
+          value: Power
+        - dps_val: boost
+          value: boost
+        - dps_val: silence
+          value: sleep
+        - dps_val: perfect
+          value: comfort
+    - id: 106
+      name: temperature_unit
+      type: string
+      mapping:
+        - dps_val: f
+          value: F
+        - dps_val: c
+          value: C
+    - id: 107
+      type: bitfield
+      name: fault_code
+    - id: 108
+      type: integer
+      name: current_temperature
+    - id: 110
+      type: integer
+      name: max_temperature
+    - id: 111
+      type: integer
+      name: min_temperature
+    - id: 116
+      type: bitfield
+      name: fault_2
+    - id: 122
+      type: boolean
+      name: power_display
+    - id: 123
+      type: boolean
+      name: cool_enable
+    - id: 124
+      type: string
+      name: overclock_mode
+secondary_entities:
+  - entity: lock
+    name: Child lock
+    icon: "mdi:hand-back-right-off"
+    category: config
+    dps:
+      - id: 103
+        type: boolean
+        name: lock
+        optional: true
+        mapping:
+          - dps_val: null
+            value: false
+            hidden: true
+  - entity: select
+    name: Temperature unit
+    icon: "mdi:temperature-celsius"
+    category: config
+    dps:
+      - id: 106
+        name: optiona
+        type: string
+        mapping:
+          - dps_val: f
+            value: Fahrenheit
+          - dps_val: c
+            value: Celsius
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 107
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            constraint: fault_2
+            conditions:
+              - dps_val: 0
+                value: false
+              - value: true
+          - value: true
+  - entity: sensor
+    name: Compressor strength
+    category: diagnostic
+    dps:
+      - id: 109
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+  - entity: sensor
+    name: Coil temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 112
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 106
+        name: unit
+        type: string
+        mapping:
+          - dps_val: f
+            value: F
+          - dps_val: c
+            value: C
+  - entity: sensor
+    name: Vent temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 113
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 106
+        name: unit
+        type: string
+        mapping:
+          - dps_val: f
+            value: F
+          - dps_val: c
+            value: C
+  - entity: sensor
+    name: Discharge temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 114
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 106
+        name: unit
+        type: string
+        mapping:
+          - dps_val: f
+            value: F
+          - dps_val: c
+            value: C
+  - entity: sensor
+    name: Ambient temperature
+    class: temperature
+    dps:
+      - id: 115
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 106
+        name: unit
+        type: string
+        mapping:
+          - dps_val: f
+            value: F
+          - dps_val: c
+            value: C
+  - entity: sensor
+    name: Inflow temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 117
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 106
+        name: unit
+        type: string
+        mapping:
+          - dps_val: f
+            value: F
+          - dps_val: c
+            value: C
+  - entity: sensor
+    name: Return temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 118
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 106
+        name: unit
+        type: string
+        mapping:
+          - dps_val: f
+            value: F
+          - dps_val: c
+            value: C
+  - entity: sensor
+    name: Internal coil temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 119
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 106
+        name: unit
+        type: string
+        mapping:
+          - dps_val: f
+            value: F
+          - dps_val: c
+            value: C
+  - entity: sensor
+    name: Radiator temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 120
+        type: integer
+        name: sensor
+        class: measurement
+      - id: 106
+        name: unit
+        type: string
+        mapping:
+          - dps_val: f
+            value: F
+          - dps_val: c
+            value: C
+  - entity: sensor
+    name: Expansion valve
+    category: diagnostic
+    dps:
+      - id: 121
+        type: integer
+        name: sensor
+        unit: P
+        class: measurement
+  - entity: sensor
+    class: power
+    category: diagnostic
+    dps:
+      - id: 125
+        type: integer
+        name: sensor
+        unit: kW
+        class: measurement
+        optional: true
+        mapping:
+          - scale: 1000