Parcourir la source

Add EKO07262 thermostat (#4247)

* Add EKO07262 thermostat

* Update hvac_mode and hvac_action

* Fixes from feedback

* Use floor/air temperature based on device preset

* Add floor temperature and air temperature as sensors

* fix (elko_cfmtb_thermostat): follow conventions

- avoid symbols in filename
- follow HA case convention in entity names
- avoid symbols in entity names

PR #4247

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
hally0 il y a 1 mois
Parent
commit
2aaa266716
1 fichiers modifiés avec 209 ajouts et 0 suppressions
  1. 209 0
      custom_components/tuya_local/devices/elko_cfmtb_thermostat.yaml

+ 209 - 0
custom_components/tuya_local/devices/elko_cfmtb_thermostat.yaml

@@ -0,0 +1,209 @@
+name: Thermostat
+products:
+  - id: fy012zc3l51doakx
+    manufacturer: ELKO
+    model: EKO07262
+entities:
+  - entity: climate
+    translation_key: thermostat
+    dps:
+      - id: 116
+        name: hvac_mode
+        type: boolean
+        mapping:
+          - dps_val: true
+            value: "off"
+          - dps_val: false
+            value: heat
+      - id: 152
+        name: hvac_action
+        type: boolean
+        mapping:
+          - dps_val: true
+            value: heating
+          - dps_val: false
+            value: idle
+      - id: 107
+        name: temperature
+        type: integer
+        unit: C
+        range:
+          min: 0
+          max: 4000
+        mapping:
+          - scale: 100
+            step: 10
+      - id: 104
+        name: current_temperature
+        type: integer
+        unit: C
+        mapping:
+          - scale: 100
+            constraint: device_preset
+            conditions:
+              - dps_val: [7, 8]
+                value_redirect: floor_temperature
+      - id: 118
+        name: device_preset
+        type: integer
+      - id: 105
+        type: integer
+        name: floor_temperature
+        unit: C
+        mapping:
+          - scale: 100
+      - id: 140
+        name: preset_mode
+        type: string
+        mapping:
+          - dps_val: Manual
+            value: manual
+          - dps_val: Schedule
+            value: program
+          - dps_val: Override
+            value: boost
+          - dps_val: "Off"
+            value: none
+  - entity: number
+    name: Power rating
+    category: config
+    class: power
+    dps:
+      - id: 103
+        name: value
+        type: integer
+        unit: W
+        range:
+          min: 0
+          max: 3600
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 131
+        name: lock
+        type: boolean
+  - entity: number
+    name: Active screen brightness
+    icon: "mdi:brightness-6"
+    category: config
+    dps:
+      - id: 132
+        name: value
+        type: integer
+        unit: "%"
+        range:
+          min: 10
+          max: 100
+  - entity: number
+    name: Standby screen brightness
+    icon: "mdi:brightness-4"
+    category: config
+    dps:
+      - id: 133
+        name: value
+        type: integer
+        unit: "%"
+        range:
+          min: 0
+          max: 100
+  - entity: sensor
+    name: Sensor type
+    icon: "mdi:thermometer-probe"
+    category: diagnostic
+    class: enum
+    dps:
+      - id: 129
+        type: string
+        name: sensor
+        mapping:
+          - dps_val: "Not_Fitted"
+            value: "Not Fitted"
+          - dps_val: "2K"
+            value: "2K Ohm"
+          - dps_val: "10K"
+            value: "10K Ohm"
+          - dps_val: "12K"
+            value: "12K Ohm"
+          - dps_val: "15K"
+            value: "15K Ohm"
+          - dps_val: "33K"
+            value: "33K Ohm"
+          - dps_val: "47K"
+            value: "47K Ohm"
+  - entity: sensor
+    name: Device type
+    icon: "mdi:cog"
+    category: diagnostic
+    class: enum
+    dps:
+      - id: 118
+        type: integer
+        name: sensor
+        mapping:
+          - dps_val: 1
+            value: "Heat Pump/Oil Boiler"
+          - dps_val: 2
+            value: "Hydronic Radiator/Gas Boiler"
+          - dps_val: 3
+            value: "Hydronic Underfloor"
+          - dps_val: 4
+            value: "Electrical Radiator"
+          - dps_val: 5
+            value: "Electrical Underfloor (Without floor limits)"
+          - dps_val: 6
+            value: "Electrical Underfloor (With floor limits)"
+          - dps_val: 7
+            value: "Hydronic Underfloor"
+          - dps_val: 8
+            value: "Electrical Underfloor"
+          - dps_val: 9
+            value: "Regulator Mode (output displayed is based on percentage)"
+  - entity: sensor
+    name: Floor temperature
+    category: diagnostic
+    hidden: unavailable
+    dps:
+      - id: 105
+        name: sensor
+        type: integer
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 100
+      - id: 129
+        name: available
+        type: string
+        mapping:
+          - dps_val: "Not_Fitted"
+            value: false
+          - value: true
+  - entity: sensor
+    name: Air temperature
+    category: diagnostic
+    dps:
+      - id: 104
+        name: sensor
+        type: integer
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 100
+  - entity: sensor
+    class: power
+    category: diagnostic
+    dps:
+      - id: 150
+        name: sensor
+        type: integer
+        unit: W
+        class: measurement
+  - entity: sensor
+    class: energy
+    category: diagnostic
+    dps:
+      - id: 151
+        name: sensor
+        type: integer
+        unit: Wh
+        class: total_increasing