Przeglądaj źródła

feat(devices): add Meaco Cirro Air Conditioners (#5438)

* feat: add Meaco Cirro configs

* feat: make ionizer and childlock optional for Meaco Cirro airconditioners

* feat: remove ionizer from meaco cirro

* chore: rename product names and ids

* feat: add CIRRO14000PRO to config

* fix: remove manufacturer from model name and make celcius default
Primus27 4 dni temu
rodzic
commit
a67145ed23

+ 165 - 0
custom_components/tuya_local/devices/meaco_cirro_airconditioner.yaml

@@ -0,0 +1,165 @@
+name: Air conditioner
+products:
+  - id: smu5pc1ruzadfnuk
+    manufacturer: Meaco
+    model: Cirro+ 14000 BTU Inverter & Heater
+    model_id: CIRRO14000CHPRO
+  - id: sijcdtk46wa9uews
+    manufacturer: Meaco
+    model: Cirro+ 14000 BTU Inverter
+    model_id: CIRRO14000PRO
+  # The following product IDs are unconfirmed but should work:
+  # - model: Cirro 12000 BTU
+  #   model_id: CIRRO12000PRO (cooling only)
+  # - model: Cirro 12000 BTU & Heater
+  #   model_id: CIRRO12000CHPRO (cooling + heating)
+  # - model: Cirro+ 16000 BTU Inverter
+  #   model_id: CIRRO16000PRO (cooling only)
+  # - model: Cirro+ 16000 BTU Inverter & Heater
+  #   model_id: CIRRO16000CHPRO (cooling + heating)
+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: Dry
+                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
+        mapping:
+          - constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: temp_set_f
+                range:
+                  min: 61
+                  max: 90
+      - id: 3
+        type: integer
+        name: current_temperature
+        mapping:
+          - constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: temp_current_f
+      - id: 4
+        type: string
+        name: mode
+        hidden: true
+      - id: 5
+        type: string
+        name: fan_mode
+        mapping:
+          - dps_val: Low
+            value: low
+          - dps_val: Mid
+            value: medium
+          - dps_val: High
+            value: high
+      - id: 15
+        type: string
+        name: swing_mode
+        mapping:
+          - dps_val: "OFF"
+            value: "off"
+          - dps_val: "ON"
+            value: "on"
+      - id: 19
+        type: string
+        name: temperature_unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+      - id: 23
+        type: integer
+        name: temp_set_f
+        optional: true
+        range:
+          min: 61
+          max: 90
+      - id: 24
+        type: integer
+        name: temp_current_f
+        optional: true
+      - id: 101
+        type: boolean
+        name: preset_mode
+        mapping:
+          - dps_val: true
+            value: sleep
+          - dps_val: false
+            value: comfort
+      - id: 103
+        type: string
+        name: support_heat
+        hidden: true
+        mapping:
+          - dps_val: C_H
+            value: true
+          - value: false
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 22
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - dps_val: 4
+            value: false
+          - value: true
+      - id: 22
+        type: bitfield
+        name: fault_code
+  - entity: binary_sensor
+    translation_key: tank_full
+    category: diagnostic
+    dps:
+      - id: 22
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 4
+            value: true
+          - value: false
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 14
+        type: boolean
+        name: lock
+        optional: true
+  - 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