Explorar o código

feat (devices): add essentials Wall thermostat

Issue #4199
Jason Rumney hai 1 mes
pai
achega
313eaae3e3

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -1195,3 +1195,4 @@ Further device support has been made with the assistance of users. Please consid
 - [J1mooo](https://github.com/J1mooo) for assisting with support for Immax Neo Lite 3-phase 22kW EV charger.
 - [J1mooo](https://github.com/J1mooo) for assisting with support for Immax Neo Lite 3-phase 22kW EV charger.
 - [anthonws](https://github.com/anthonws) for contributing support for Maeco DD8L Pro dehumidifier.
 - [anthonws](https://github.com/anthonws) for contributing support for Maeco DD8L Pro dehumidifier.
 - [22cms](https://github.com/22cms) for assisting with support for Cixi Jemell PTC-1919 heater.
 - [22cms](https://github.com/22cms) for assisting with support for Cixi Jemell PTC-1919 heater.
+- [cream68](https://github.com/cream68) for assisting with support for essentials Wall thermostat.

+ 1 - 0
DEVICES.md

@@ -223,6 +223,7 @@
 - EARU Electronic K6H-3A-W thermostat
 - EARU Electronic K6H-3A-W thermostat
 - EleChico CCST6001 thermostat
 - EleChico CCST6001 thermostat
 - Emmeti Zona thermostat
 - Emmeti Zona thermostat
+- Essentials Wall thermostat
 - ETOP-FCU thermostat (Jaga JRT-100TW)
 - ETOP-FCU thermostat (Jaga JRT-100TW)
 - ETOP-HP thermostat (CH7100)
 - ETOP-HP thermostat (CH7100)
 - ETOP-HT thermostat
 - ETOP-HT thermostat

+ 131 - 0
custom_components/tuya_local/devices/essentials_wall_thermostat.yaml

@@ -0,0 +1,131 @@
+name: Wall thermostat
+products:
+  - id: v6k5nh9tnahpgo31
+    manufacturer: Essentials Smart Home
+  - id: eenbkdf7rlsusdfc
+    manufacturer: Essentials Smart Home
+entities:
+  - entity: climate
+    translation_key: thermostat
+    dps:
+      - id: 1
+        name: hvac_mode
+        type: boolean
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            constraint: mode
+            conditions:
+              - dps_val: manual
+                value: heat
+              - dps_val: auto
+                value: auto
+      - id: 2
+        name: mode
+        type: string
+        hidden: true
+      - id: 16
+        name: temperature
+        type: integer
+        unit: C
+        range:
+          min: 50
+          max: 350
+        mapping:
+          - scale: 10
+            step: 5
+      - id: 24
+        name: current_temperature
+        type: integer
+        unit: C
+        mapping:
+          - scale: 10
+      - id: 36
+        name: hvac_action
+        type: string
+        mapping:
+          - dps_val: open
+            value: heating
+          - dps_xval: close
+            value: idle
+
+  - 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
+        type: boolean
+        name: lock
+
+  - entity: number
+    name: Floor temperature limit
+    class: temperature
+    category: config
+    hidden: unavailable
+    dps:
+      - id: 102
+        type: integer
+        name: sensor
+        unit: C
+        range:
+          min: 20
+          max: 60
+      - id: 103
+        name: available
+        type: integer
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+
+  - entity: sensor
+    name: Floor temperature
+    class: temperature
+    category: diagnostic
+    hidden: unavailable
+    dps:
+      - id: 103
+        name: value
+        type: integer
+        unit: C
+        mapping:
+          - scale: 10
+      - id: 103
+        name: available
+        type: integer
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+  - entity: select
+    name: Temperature sensor
+    category: config
+    dps:
+      - id: 101
+        name: option
+        type: string
+        mapping:
+          - dps_val: con_in
+            value: Internal
+          - dps_val: con_out
+            value: External
+            available: floor_fitted
+          - dps_val: con_all
+            value: Both
+            available: floor_fitted
+      - id: 103
+        name: floor_fitted
+        type: integer
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true