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

Add support for EARU electronic K6H-3A-W thermostat

Issue #2602
Jason Rumney 1 год назад
Родитель
Сommit
058f982b41
3 измененных файлов с 208 добавлено и 1 удалено
  1. 1 1
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 206 0
      custom_components/tuya_local/devices/earu_k6h3aw_thermostat.yaml

+ 1 - 1
ACKNOWLEDGEMENTS.md

@@ -285,7 +285,7 @@ Further device support has been made with the assistance of users. Please consid
 - [Pagi13](https://github.com/Pagi13) for assisting with support for DTS238-7 smart meters.
 - [kshepard339](https://github.com/kshepard339) for assisting with support for Petlibro pet feeder with camera.
 - [mkrznar](https://github.com/mkrznar) for assisting with support for Beok TR8B thermostats.
-- [Rain-ZG](https://github.com/Rain-ZG) for assisting with support for Vivax Cool air conditioners.
+- [Rain-ZG](https://github.com/Rain-ZG) for assisting with support for Vivax Cool air conditioners and EARU K6H-3A-W thermometers.
 - [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

@@ -188,6 +188,7 @@
 - BHT-002-GABW thermostat _(some compatible with GALW, others subtly different)_
 - Brade MC6 thermostat _(rebadged as many different brands)_
 - Dr Heater DR-008 electric radiant floor thermostat
+- EARU Electronic K6H-3A-W thermostat
 - ETOP-FCU thermostat (Jaga JRT-100TW)
 - ETOP-HP thermostat (CH7100)
 - ETOP-HT thermostat

+ 206 - 0
custom_components/tuya_local/devices/earu_k6h3aw_thermostat.yaml

@@ -0,0 +1,206 @@
+name: Thermostat
+products:
+  - id: v6foggibzyjlvwdx
+    name: EARU Electronic K6H-3A-W
+primary_entity:
+  entity: climate
+  translation_key: thermostat
+  dps:
+    - id: 1
+      name: hvac_mode
+      type: boolean
+      mapping:
+        - dps_val: true
+          value: heat
+        - dps_val: false
+          value: "off"
+    - id: 2
+      name: preset_mode
+      type: string
+      mapping:
+        - dps_val: auto
+          value: program
+        - dps_val: manual
+          value: manual
+        - dps_val: eco
+          value: eco
+    - id: 16
+      type: integer
+      name: temperature
+      unit: C
+      range:
+        min: 0
+        max: 900
+      mapping:
+        - scale: 10
+          step: 5
+    - id: 19
+      type: integer
+      name: max_temperature
+      mapping:
+        - scale: 10
+    - id: 24
+      type: integer
+      name: current_temperature
+      mapping:
+        - scale: 10
+    - id: 26
+      optional: true
+      type: integer
+      name: min_temperature
+      mapping:
+        - scale: 10
+    - id: 36
+      type: string
+      name: hvac_action
+      mapping:
+        - dps_val: close
+          value: idle
+        - dps_val: open
+          value: heating
+secondary_entities:
+  - entity: number
+    name: Calibration offset
+    category: config
+    icon: "mdi:thermometer"
+    dps:
+      - id: 27
+        type: integer
+        name: value
+        unit: ⁰
+        range:
+          min: -9
+          max: 9
+  - entity: switch
+    translation_key: anti_frost
+    category: config
+    dps:
+      - id: 10
+        type: boolean
+        name: switch
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 40
+        optional: true
+        type: boolean
+        name: lock
+  - entity: select
+    name: Sensor selection
+    category: config
+    dps:
+      - id: 43
+        type: string
+        name: option
+        mapping:
+          - dps_val: in
+            icon: "mdi:gauge"
+            value: Internal
+          - dps_val: out
+            icon: "mdi:thermometer-chevron-down"
+            value: External
+          - dps_val: ALL
+            icon: "mdi:thermometer"
+            value: Both
+  - entity: binary_sensor
+    category: diagnostic
+    class: problem
+    dps:
+      - id: 45
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 45
+        name: fault_code
+        type: bitfield
+  - entity: number
+    name: Maximum temperature
+    category: config
+    class: temperature
+    icon: "mdi:thermometer-chevron-up"
+    dps:
+      - id: 19
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 200
+          max: 900
+        mapping:
+          - scale: 10
+            step: 10
+  - entity: number
+    name: Minimum temperature
+    category: config
+    class: temperature
+    icon: "mdi:thermometer-chevron-down"
+    dps:
+      - id: 26
+        optional: true
+        name: value
+        type: integer
+        unit: C
+        range:
+          min: 0
+          max: 200
+        mapping:
+          - scale: 10
+            step: 10
+  - entity: button
+    translation_key: factory_reset
+    category: config
+    dps:
+      - id: 39
+        name: button
+        type: boolean
+        optional: true
+  - entity: select
+    name: Working week
+    icon: "mdi:calendar-clock"
+    category: config
+    dps:
+      - id: 31
+        type: string
+        name: option
+        optional: true
+        mapping:
+          - dps_val: "00"
+            value: "Off"
+          - dps_val: "5_2"
+            value: "5 days"
+          - dps_val: "6_1"
+            value: "6 days"
+          - dps_val: "70"
+            value: "7 days"
+      - id: 30
+        type: string
+        optional: true
+        name: week_program
+  - entity: light
+    name: Backlight
+    category: config
+    dps:
+      - id: 44
+        type: integer
+        name: brightness
+        optional: true
+        range:
+          min: 0
+          max: 100
+  - entity: number
+    name: Temperature cutoff
+    category: config
+    class: temperature
+    icon: "mdi:thermometer-alert"
+    dps:
+      - id: 101
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 20
+          max: 100