Procházet zdrojové kódy

Add Support for Ecostrad IQ Ceramic Radiator & Wifi Element (#4951)

* Add Support for Ecostrad IQ Ceramic Radiator

* Add Support for Ecostrad IQ WiFi Element

* Add Support for Ecostrad IQ WiFi Element

* Updated Radiator Mode

* Updated Radiator Mode

* Fix Lint

* Fix Lint

* Update based on Comments

* Updated based on comments

Updated device name and added new configuration options for open window detection and boost time.

* feat (ecostrad_iqceramicv2_radiator): rename and update

- rename file so it differs by more than just one underscore from the existing config for an incompatible model of the same name
- remove "WiFi" from device name, it doesn't add any useful info
- add timer translation key to select entities with time settings

PR #4951

* feat (ecostrad_iqv2_element): changes from review

- rename file to disambiguate from older heating element config
- add timer class to open window setting
- add duration class to boost timer
- Remove WiFi from device name
- Use translation_key

PR #4951

* fix(ecostrad_ipceramicv2_radiator): use translation_key

Resolved comment that was not resolved

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
bluefroguk1 před 2 měsíci
rodič
revize
3b69e2698a

+ 121 - 0
custom_components/tuya_local/devices/ecostrad_iqceramicv2_radiator.yaml

@@ -0,0 +1,121 @@
+name: Radiator
+products:
+  - id: g8szwifd3zgozoxt
+    manufacturer: Ecostrad
+    name: iQ Ceramic
+  - id: oqqreuepbc0g8lcg
+    manufacturer: Ecostrad
+    name: iQ Ceramic
+entities:
+  - entity: climate
+    translation_key: heater
+    dps:
+      - id: 1
+        name: hvac_mode
+        type: boolean
+        mapping:
+          - dps_val: true
+            value: heat
+          - dps_val: false
+            value: "off"
+      - id: 3
+        name: temperature
+        type: integer
+        unit: C
+        range:
+          min: 70
+          max: 300
+        mapping:
+          - scale: 10
+            step: 5
+      - id: 2
+        name: preset_mode
+        type: string
+        optional: true
+        mapping:
+          - dps_val: hot
+            value: heat
+          - dps_val: Program
+            value: program
+      - id: 24
+        name: current_temperature
+        type: integer
+        unit: C
+        mapping:
+          - scale: 10
+      - id: 32
+        name: hvac_action
+        type: string
+        optional: true
+        mapping:
+          - dps_val: heating
+            value: heating
+          - dps_val: warm
+            value: idle
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 40
+        name: lock
+        type: boolean
+        optional: true
+  - entity: number
+    translation_key: temperature_calibration
+    class: temperature_delta
+    category: config
+    dps:
+      - id: 27
+        name: value
+        type: integer
+        optional: true
+        unit: C
+        range:
+          min: -5
+          max: 5
+  - entity: sensor
+    translation_key: time_remaining
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 42
+        name: sensor
+        type: integer
+        optional: true
+        unit: min
+  - entity: select
+    name: Open window detection
+    translation_key: timer
+    category: config
+    dps:
+      - id: 108
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: cancel
+            icon: "mdi:window-closed"
+          - dps_val: "60"
+            value: "60m"
+            icon: "mdi:window-open"
+          - dps_val: "90"
+            value: "1h30m"
+            icon: "mdi:window-open"
+  - entity: select
+    name: PIR timeout
+    category: config
+    translation_key: timer
+    icon: "mdi:timer-settings-outline"
+    dps:
+      - id: 104
+        type: string
+        name: option
+        mapping:
+          - dps_val: "15"
+            value: "15m"
+          - dps_val: "30"
+            value: "30m"
+          - dps_val: "45"
+            value: "45m"
+          - dps_val: "60"
+            value: "1h"

+ 120 - 0
custom_components/tuya_local/devices/ecostrad_iqv2_element.yaml

@@ -0,0 +1,120 @@
+name: Radiator element
+products:
+  - id: keq3x2tw6plbbipm
+    manufacturer: Ecostrad
+    model: iQ WiFi Element
+entities:
+  - entity: climate
+    translation_key: thermostat
+    dps:
+      - id: 1
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: true
+            value: "heat"
+          - dps_val: false
+            value: "off"
+      - id: 2
+        type: string
+        name: preset_mode
+        mapping:
+          - dps_val: "auto"
+            value: program
+          - dps_val: "eco"
+            value: eco
+          - dps_val: "hot"
+            value: comfort
+          - dps_val: "rad"
+            value: boost
+      - id: 16
+        type: integer
+        name: temperature
+        unit: C
+        range:
+          min: 70
+          max: 700
+        mapping:
+          - scale: 10
+            step: 5
+            range:
+              min: 70
+              max: 300
+            constraint: preset_mode
+            conditions:
+              - dps_val: "rad"
+                value_redirect: radiator_temperature
+                range:
+                  min: 300
+                  max: 700
+      - id: 24
+        type: integer
+        name: current_temperature
+        mapping:
+          - scale: 10
+      - id: 32
+        type: string
+        name: hvac_action
+        mapping:
+          - dps_val: heating
+            value: heating
+          - dps_val: noheat
+            value: idle
+      - id: 102
+        type: integer
+        name: radiator_temperature
+        range:
+          min: 300
+          max: 700
+        mapping:
+          - scale: 10
+            step: 50
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 40
+        type: boolean
+        name: lock
+  - entity: number
+    translation_key: temperature_calibration
+    class: temperature_delta
+    category: config
+    dps:
+      - id: 27
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: -5
+          max: 5
+  - entity: select
+    name: Open window detection
+    translation_key: timer
+    category: config
+    dps:
+      - id: 108
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: cancel
+            icon: "mdi:window-closed"
+          - dps_val: "60"
+            value: "1h"
+            icon: "mdi:window-open"
+          - dps_val: "90"
+            value: "1h30m"
+            icon: "mdi:window-open"
+  - entity: number
+    name: Boost time
+    class: duration
+    category: config
+    dps:
+      - id: 111
+        type: integer
+        name: value
+        unit: h
+        range:
+          min: 0
+          max: 7