Parcourir la source

feat: add support for MeacoCool MC Series Pro air conditioners

Although user reports that swing is not supported on either the
C or CH 10k btu model, the dp is there and there is no info to
determine that, while in manuals for the non-Pro models swing is
mentioned, so leave it in for other potential models. Worst case
it is there but does nothing.

Issue: #3393
Jason Rumney il y a 7 mois
Parent
commit
27714cac31

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -988,3 +988,4 @@ Further device support has been made with the assistance of users. Please consid
 - [gaggi](https://github.com/gaggi) for contributing support for Steinbach Solid 4.3 pool heat pump.
 - [sportchucks](https://github.com/sportchucks) for contributing support for Raddy PT-5 pool thermometer.
 - [kfussmann](https://github.com/kfussmann) for assisting with support for Sundream LC-Series salt pool chlorinator.
+- - [stepheninuk](https://github.com/stepheninuk) for assisting with support for MeacoCool MC Series Pro portable air conditioners.

+ 1 - 0
DEVICES.md

@@ -102,6 +102,7 @@
 - Kogan portable air conditioners (Y09, Y12, Y16)
 - Kogan vertical window air conditioner
 - Lyfco OL-A012 air conditioner
+- MeacoCool MC Series Pro portable air conditioners
 - Medion Life P1002 portable air conditioner
 - Monzana Klimaanlage air conditioner
 - Nedis ACMB1WT12 portable air conditioner

+ 115 - 0
custom_components/tuya_local/devices/meacocool_mcseries_airconditioner.yaml

@@ -0,0 +1,115 @@
+name: Air conditioner
+products:
+  - id: uhczsyv4vdrcscwv
+    manufacturer: MeacoCool
+    model: MC Series 10000 Pro CH
+entities:
+  - entity: climate
+    dps:
+      - id: 1
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            constraint: mode
+            conditions:
+              - dps_val: Cool
+                value: cool
+              - dps_val: Dyr
+                value: dry
+              - dps_val: Fan
+                value: fan_only
+              - dps_val: Heat
+                available: support_heat
+                value: heat
+      - id: 2
+        type: integer
+        name: temperature
+        range:
+          min: 16
+          max: 32
+        unit: C
+      - id: 3
+        type: integer
+        name: current_temperature
+      - id: 4
+        type: string
+        name: mode
+        hidden: true
+      - id: 5
+        type: string
+        name: fan_mode
+        mapping:
+          - dps_val: Low
+            value: low
+          - dps_val: High
+            value: high
+      - id: 15
+        type: boolean
+        name: swing_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            value: "on"
+      # The following may be required if C dps above are blank when set to F
+      # 23: temp_set_f 61-90
+      # 24: temp_current_f
+      # based on log, both seem available in C, but current has incorrect data
+      - id: 102
+        type: integer
+        name: client_id
+      - id: 103
+        type: string
+        name: support_heat
+        mapping:
+          - dps_val: C_H
+            value: true
+          - value: false
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 14
+        type: boolean
+        name: lock
+  - entity: select
+    translation_key: temperature_unit
+    category: config
+    dps:
+      - id: 19
+        type: string
+        name: option
+        mapping:
+          - dps_val: c
+            value: celsius
+          - dps_val: f
+            value: fahrenheit
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 22
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 22
+        type: bitfield
+        name: fault_code
+  - entity: switch
+    translation_key: sleep
+    dps:
+      - id: 101
+        type: boolean
+        name: switch
+  - entity: switch
+    translation_key: ionizer
+    dps:
+      - id: 104
+        type: boolean
+        name: switch