Procházet zdrojové kódy

Add support for Powerworld PW58410 heat pump

Issue #1530

- added based on the QueryThingsDataModel info in the comments, as the
original submitted config was missing crucial data points for making
useful climate and water_heater entities, and seemed to be a
copy/paste from some other swimming pool heat pumps.
Jason Rumney před 1 rokem
rodič
revize
33ae4b6943

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -710,3 +710,4 @@ Further device support has been made with the assistance of users. Please consid
 - [sragas](https://github.com/sragas) for contributing support for Noeifevo Q21W EV charger.
 - [beyondgrave](https://github.com/beyondgrave) for assisting with support for Inkbird IPT-2CH v2.0 thermostat.
 - [Tallyessin](https://github.com/Tallyessin) for contributing support for Calibo Cloudfan DC with light.
+- [nankoboerma](https://github.com/nankoboerma) for assisting with support for PowerWorld PW58410 water and climate heat pump.

+ 1 - 0
DEVICES.md

@@ -151,6 +151,7 @@
 - Hydrotherm Dynamic/X8 heat pump hot water systems (Gen 5 and 6)
 - ITS-4.5HD super water heat pump
 - Koi Duo HTW-TD-080KOID
+- Powerworld PW58410 hot water and climate heat pump
 - Sanden GAU-A45HPD WiFi heat pump controller
 - Thermex IF series V pro hot water systems
 - Thermex Lima 80V

+ 175 - 0
custom_components/tuya_local/devices/powerworld_pw58410_waterheater.yaml

@@ -0,0 +1,175 @@
+name: Water heat pump
+products:
+  - id: 74jzzoqr2ghxyu1p
+    name: Powerworld PW58410
+primary_entity:
+  entity: water_heater
+  dps:
+    - id: 1
+      type: boolean
+      name: operation_mode
+      mapping:
+        - dps_val: false
+          value: "off"
+        - dps_val: true
+          constraint: work_mode
+          conditions:
+            - dps_val: wth
+              value: Hot water
+            - dps_val: heat
+              value: Heating
+            - dps_val: cool
+              value: Cooling
+            - dps_val: wth_heat
+              value: Hot water + heating
+            - dps_val: wth_cool
+              value: Hot water + cooling
+    - id: 5
+      type: string
+      name: work_mode
+      hidden: true
+    - id: 6
+      type: string
+      name: temperature_unit
+      mapping:
+        - dps_val: f
+          value: F
+        - value: C
+    - id: 110
+      type: integer
+      name: temperature
+      range:
+        min: 0
+        max: 99
+    - id: 118
+      type: string
+      optional: true
+      name: parameter_group_1
+    - id: 119
+      type: string
+      optional: true
+      name: parameter_group_2
+    - id: 120
+      type: string
+      optional: true
+      name: parameter_group_3
+    - id: 121
+      type: string
+      optional: true
+      name: parameter_group_4
+    - id: 122
+      type: string
+      optional: true
+      name: parameter_group_5
+    - id: 123
+      type: string
+      optional: true
+      name: parameter_group_6
+    - id: 124
+      type: string
+      optional: true
+      name: parameter_group_7
+    - id: 126
+      type: string
+      optional: true
+      name: parameter_group_8
+    - id: 140
+      type: string
+      optional: true
+      name: power_statistics
+secondary_entities:
+  - entity: climate
+    translation_key: heater
+    dps:
+      - id: 2
+        type: string
+        name: preset_mode
+        mapping:
+          - dps_val: smart
+            value: comfort
+          - dps_val: strong
+            value: boost
+          - dps_val: mute
+            value: sleep
+      - id: 5
+        type: string
+        name: hvac_mode
+        mapping:
+          - dps_val: wth
+            value: "off"
+          - dps_val: heat
+            value: heat
+            hidden: true
+          - dps_val: cool
+            value: cool
+            hidden: true
+          - dps_val: wth_heat
+            value: heat
+          - dps_val: wth_cool
+            value: cool
+      - id: 6
+        type: string
+        name: temperature_unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+      - id: 111
+        type: integer
+        optional: true
+        name: temperature
+        range:
+          min: 0
+          max: 99
+        mapping:
+          - constraint: hvac_mode
+            conditions:
+              - dps_val: [cool, wth_cool]
+                value_redirect: cool_temp
+      - id: 112
+        type: integer
+        name: cool_temp
+        optional: true
+        hidden: true
+        range:
+          min: 0
+          max: 99
+  - 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: 199
+        type: integer
+        optional: true
+        name: custom_fault_bit
+  - entity: button
+    name: Factory reset
+    class: restart
+    category: config
+    dps:
+      - id: 125
+        type: boolean
+        optional: true
+        name: button