Просмотр исходного кода

Add support for Nedis mobile air conditioner

Issue #784
Jason Rumney 2 лет назад
Родитель
Сommit
65b5229ca7

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -286,3 +286,4 @@ Further device support has been made with the assistance of users.  Please consi
 - [Rain-ZG](https://github.com/Rain-ZG) for assisting with support for Vivax Cool air conditioners.
 - [WilcoE](https://github.com/WilcoE) for assisting with support for Poolex Qline new Q7 variant of pool heatpumps.
 - [WiestDaessle](https://github.com/WiestDaessle) for contributing support for Etersky curtain switches.
+- [Xpl0jd](https://github.com/Xpl0jd) for contributing support for Nedis portable air conditioners.

+ 1 - 0
DEVICES.md

@@ -41,6 +41,7 @@
 - ElectriQ EcoSilent 14HPW
 - Fersk Vind 2
 - Kogan 2.6kW portable air conditioner
+- Nedis ACMB1WT12 portable air conditioner
 - Rotenso Roni R35WI
 - Sendo air conditioner
 - Star-Light air conditioner

+ 118 - 0
custom_components/tuya_local/devices/nedis_mobile_airconditioner.yaml

@@ -0,0 +1,118 @@
+name: Mobile Air Conditioner
+products:
+  - id: vrredpnf22yayvhi
+    name: Nedis ACMB1WT12
+primary_entity:
+  entity: climate
+  dps:
+    - id: 1
+      type: boolean
+      name: hvac_mode
+      mapping:
+        - dps_val: false
+          value: "off"
+        - dps_val: true
+          constraint: mode
+          conditions:
+            - dps_val: cold
+              value: cool
+            - dps_val: wet
+              value: dry
+            - dps_val: wind
+              value: fan_only
+              # tuya portal also lists hot, but manual says only the 3 above
+    - id: 2
+      type: integer
+      name: temperature
+      range:
+        min: 16
+        max: 31
+      unit: C
+    - id: 3
+      type: integer
+      name: current_temperature
+      # 107, 108 listed as F temperatures in report, but not existing
+      # in log, and there is no temperature_unit dp to work with
+    - id: 4
+      type: string
+      name: mode
+      hidden: true
+    - id: 5
+      type: string
+      name: fan_mode
+      mapping:
+        - dps_val: low
+          value: low
+        - dps_val: med
+          value: medium
+        - dps_val: high
+          value: high
+    - id: 15
+      type: string
+      name: swing_1
+    - id: 20
+      type: bitfield
+      name: fault_code
+    - id: 109
+      type: integer
+      name: feature_flags
+    - id: 110
+      type: boolean
+      name: swing_2
+secondary_entities:
+  - entity: switch
+    name: Ioniser
+    icon: "mdi:creation"
+    dps:
+      - id: 11
+        type: boolean
+        name: switch
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 20
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+  - entity: switch
+    name: Sleep
+    icon: "mdi:power-sleep"
+    dps:
+      - id: 103
+        type: boolean
+        name: switch
+  - entity: number
+    name: "On timer"
+    category: config
+    icon: "mdi:timer"
+    dps:
+      - id: 104
+        type: integer
+        name: value
+        unit: min
+        range:
+          min: 0
+          max: 86400
+        mapping:
+          - scale: 60
+            step: 60
+  - entity: number
+    name: "Off timer"
+    category: config
+    icon: "mdi:timer"
+    dps:
+      - id: 105
+        type: integer
+        name: value
+        unit: min
+        range:
+          min: 0
+          max: 86400
+        mapping:
+          - scale: 60
+            step: 60