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

Add support for Mellerware Comfy electric radiator

Issue #1506
Jason Rumney 2 лет назад
Родитель
Сommit
49b2bb0da5
3 измененных файлов с 233 добавлено и 0 удалено
  1. 1 0
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 231 0
      custom_components/tuya_local/devices/mellerware_comfy_radiator.yaml

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -471,3 +471,4 @@ Further device support has been made with the assistance of users. Please consid
 - [ninjajim17](https://github.com/ninjajim17) for assisting with support for Carro humidifiers.
 - [ninjajim17](https://github.com/ninjajim17) for assisting with support for Carro humidifiers.
 - [AnthonyBe](https://github.com/AnthonyBe) for assisting with support for Eglo ceiling fans.
 - [AnthonyBe](https://github.com/AnthonyBe) for assisting with support for Eglo ceiling fans.
 - [spawnax](https://github.com/spawnax) for assisting with support for EVSun EV chargers.
 - [spawnax](https://github.com/spawnax) for assisting with support for EVSun EV chargers.
+- [madmalkav](https://github.com/madmalkav) for assisting with support for Mellerware Comfy electric radiators.

+ 1 - 0
DEVICES.md

@@ -34,6 +34,7 @@
 - Kogan flame effect heater - KAWHMFP20BA model
 - Kogan flame effect heater - KAWHMFP20BA model
 - Kogan tower heater - KASTHFP2KWA model
 - Kogan tower heater - KASTHFP2KWA model
 - Kogan Wi-Fi convection panel heaters - KAHTP and KAWFHTP models
 - Kogan Wi-Fi convection panel heaters - KAHTP and KAWFHTP models
+- Mellerware Comfy electric radiator (tested with Medium 1200W)
 - Modern Flames Orion fireplace
 - Modern Flames Orion fireplace
 - MRC Magnum floor heating
 - MRC Magnum floor heating
 - Nedis ceramic PTC fan heater
 - Nedis ceramic PTC fan heater

+ 231 - 0
custom_components/tuya_local/devices/mellerware_comfy_radiator.yaml

@@ -0,0 +1,231 @@
+name: Heater
+products:
+  - id: 5jidkruwamydvcfk
+    name: Mellerware Comfy Medium
+primary_entity:
+  entity: climate
+  dps:
+    - id: 1
+      type: boolean
+      name: hvac_mode
+      mapping:
+        - dps_val: false
+          value: "off"
+        - dps_val: true
+          constraint: preset_mode
+          conditions:
+            - dps_val: P1
+              value: auto
+            - dps_val: [ "P2", "P3" ]
+              value: auto
+              hidden: true
+            - dps_val: CF
+              value: heat
+            - value: heat
+              hidden: true
+    - id: 2
+      type: integer
+      name: temperature
+      range:
+        min: 5
+        max: 35
+      unit: C
+      mapping:
+        - constraint: preset_mode
+          conditions:
+            - dps_val: EC
+              range:
+                min: 1
+                max: 31
+            - dps_val: AF
+              invalid: true
+    - id: 3
+      type: integer
+      name: current_temperature
+    - id: 4
+      type: string
+      name: preset_mode
+      mapping:
+        - dps_val: CF
+          value: comfort
+        - dps_val: EC
+          value: eco
+        - dps_val: P1
+          value: Daytime
+        - dps_val: P2
+          value: Morning+Evening
+        - dps_val: P3
+          value: Program
+        - dps_val: AF
+          value: away
+        - dps_val: ST
+          value: ST
+          hidden: true
+    - id: 11
+      type: string
+      name: hvac_action
+      mapping:
+        - constraint: hvac_mode
+          conditions:
+            - dps_val: false
+              value: "off"
+            - dps_val: true
+              mapping:
+                - dps_val: working
+                  value: heating
+                - dps_val: standby
+                  value: idle
+    - id: 26
+      type: string
+      optional: true
+      name: custom_program
+secondary_entities:
+  - entity: lock
+    name: Child lock
+    icon: "mdi:hand-back-right-off"
+    category: config
+    dps:
+      - id: 7
+        type: boolean
+        name: lock
+  - entity: select
+    name: Timer
+    icon: "mdi:timer"
+    category: config
+    dps:
+      - id: 19
+        type: string
+        name: option
+        mapping:
+          - dps_val: cancel
+            value: "off"
+          - dps_val: 1h
+            value: 1 hour
+          - dps_val: 2h
+            value: 2 hours
+          - dps_val: 3h
+            value: 3 hours
+          - dps_val: 4h
+            value: 4 hours
+          - dps_val: 5h
+            value: 5 hours
+          - dps_val: 6h
+            value: 6 hours
+          - dps_val: 7h
+            value: 7 hours
+          - dps_val: 8h
+            value: 8 hours
+          - dps_val: 9h
+            value: 9 hours
+          - dps_val: 10h
+            value: 10 hours
+          - dps_val: 11h
+            value: 11 hours
+          - dps_val: 12h
+            value: 12 hours
+          - dps_val: 13h
+            value: 13 hours
+          - dps_val: 14h
+            value: 14 hours
+          - dps_val: 15h
+            value: 15 hours
+          - dps_val: 16h
+            value: 16 hours
+          - dps_val: 17h
+            value: 17 hours
+          - dps_val: 18h
+            value: 18 hours
+          - dps_val: 19h
+            value: 19 hours
+          - dps_val: 20h
+            value: 20 hours
+          - dps_val: 21h
+            value: 21 hours
+          - dps_val: 22h
+            value: 22 hours
+          - dps_val: 23h
+            value: 23 hours
+          - dps_val: 24h
+            value: 24 hours
+  - entity: sensor
+    name: Time remaining
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 20
+        type: integer
+        name: sensor
+        unit: min
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 21
+        type: bitfield
+        optional: true
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - dps_val: null
+            value: false
+          - value: true
+  - entity: button
+    name: Night mode on
+    icon: "mdi:weather-night"
+    category: config
+    dps:
+      - id: 103
+        type: boolean
+        name: button
+        optional: true
+  - entity: button
+    name: Night mode off
+    icon: "mdi:weather-sunny"
+    category: config
+    dps:
+      - id: 103
+        type: boolean
+        name: button
+        optional: true
+        mapping:
+          - dps_val: true
+            value: false
+          - dps_val: false
+            value: true
+  - entity: switch
+    name: Window check
+    icon: "mdi:window-open-variant"
+    category: config
+    dps:
+      - id: 104
+        type: boolean
+        name: switch
+  - entity: binary_sensor
+    class: window
+    category: diagnostic
+    dps:
+      - id: 105
+        type: boolean
+        name: sensor
+  - entity: number
+    name: Temperature calibration
+    category: config
+    icon: "mdi:thermometer-check"
+    dps:
+      - id: 106
+        type: integer
+        optional: true
+        name: value
+        unit: C
+        range:
+          min: 0
+          max: 40
+        mapping:
+          - dps_val: null
+            value_mirror: current_temperature
+      - id: 3
+        type: integer
+        name: current_temperature
+        hidden: true