Parcourir la source

Add support for Salcar T9W thermostat

Issue #359
Jason Rumney il y a 3 ans
Parent
commit
740a27c5fa

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -162,3 +162,4 @@ Further device support has been made with the assistance of users.  Please consi
 - [Pokemowka25](https://github.com/Pokemowka26) for assistance supporting Kyvol EA200 humidifiers.
 - [spuljko](https://github.com/spuljko) for contributing support for YYM-805SW aroma diffuser with nightlight and BlitzWoolf BWSH5 humidifier.
 - [raphaelcouzet](https://github.com/raphaelcouzet) for contributing support for Arlec motion sensor lights which were used to improve Deta motion light support.
+- [TheExenth](https://github.com/TheExenth) for assistance supporting Salcar T9W thermostats, and identifying the likely identical Tellur model.

+ 1 - 0
DEVICES.md

@@ -86,6 +86,7 @@
 - Netmostat N-1 (RTAFN1) thermostat
 - Owon PCT513 thermostat
 - RYRA TYTE-D1 thermostat with energy monitoring
+- Salcar T9W thermostat _(likely also Tellur TSH02)_
 - Saswell C16 thermostat _(rebadged as Warmme, Klima and others)_
 - Saswell T29UTW thermostat
 - T5E-WF thermostat

+ 184 - 0
custom_components/tuya_local/devices/salcar_t9w_thermostat.yaml

@@ -0,0 +1,184 @@
+name: Salcar T9W thermostat
+primary_entity:
+  entity: climate
+  dps:
+    - id: 1
+      name: hvac_mode
+      type: boolean
+      mapping:
+        - dps_val: false
+          value: "off"
+        - dps_val: true
+          mapping:
+            - constraint: mode
+              conditions:
+                - dps_val: auto
+                  value: auto
+                - dps_val: manual
+                  value: heat
+    - id: 2
+      name: mode
+      type: string
+      hidden: true
+    - id: 16
+      name: temperature
+      type: integer
+      range:
+        min: 50
+        max: 10000
+      mapping:
+        - scale: 10
+          step: 5
+    - id: 19
+      name: max_temperature
+      type: integer
+      mapping:
+        - scale: 10
+    - id: 23
+      name: temperature_unit
+      type: string
+      mapping:
+        - dps_val: c
+          value: C
+        - dps_val: f
+          value: F
+    - id: 24
+      name: current_temperature
+      type: integer
+      mapping:
+        - scale: 10
+    - id: 26
+      name: min_temperature
+      type: integer
+      mapping:
+        - scale: 10
+    - id: 36
+      name: hvac_action
+      type: string
+      mapping:
+        - dps_val: open
+          constraint: hvac_mode
+          conditions:
+            - dps_val: false
+              value: "off"
+            - dps_val: true
+              value: heating
+        - dps_val: close
+          constraint: hvac_mode
+          conditions:
+            - dps_val: false
+              value: "off"
+            - dps_val: idle
+    - id: 45
+      name: fault_code
+      type: bitfield
+      mapping:
+        - dps_val: 0
+          value: OK
+        - dps_val: 1
+          value: E1
+        - dps_val: 2
+          value: E2
+        - dps_val: 4
+          value: E3
+secondary_entities:
+  - entity: switch
+    name: Anti-frost
+    category: config
+    icon: "mdi:snowflake"
+    dps:
+      - id: 10
+        type: boolean
+        name: switch
+  - entity: number
+    name: Maximum temperature
+    category: config
+    icon: "mdi:thermometer-chevron-up"
+    dps:
+      - id: 19
+        type: integer
+        name: value
+        range:
+          min: 50
+          max: 10000
+        mapping:
+          - scale: 10
+            step: 5
+      - id: 23
+        name: unit
+        type: string
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
+  - entity: select
+    name: Temperature unit
+    icon: "mdi:temperature-celsius"
+    category: config
+    dps:
+      - id: 23
+        type: string
+        name: option
+        mapping:
+          - dps_val: c
+            value: Celsius
+          - dps_val: f
+            value: Fahrenheit
+  - entity: number
+    name: Minimum temperature
+    category: config
+    icon: "mdi:thermometer-chevron-down"
+    dps:
+      - id: 26
+        type: integer
+        name: value
+        range:
+          min: 50
+          max: 10000
+      - id: 23
+        name: unit
+        type: string
+        mapping:
+          - dps_val: c
+            value: C
+          - dps_val: f
+            value: F
+  - entity: select
+    name: Schedule
+    icon: "mdi:calendar-clock"
+    category: config
+    dps:
+      - id: 31
+        type: string
+        name: option
+        mapping:
+          - dps_val: "5_2"
+            value: 5 day work week
+          - dps_val: "6_1"
+            value: 6 day work week
+          - dps_val: "7"
+            value: Daily
+  - entity: lock
+    name: Child lock
+    icon: "mdi:hand-back-right-off"
+    category: config
+    dps:
+      - id: 40
+        type: boolean
+        name: lock
+  - entity: binary_sensor
+    name: Fault
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 45
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+
+
+