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

Add support for EleChico CCST6601 thermostat

Issue #2914
Jason Rumney 11 месяцев назад
Родитель
Сommit
acdf0ccf00

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -868,3 +868,4 @@ Further device support has been made with the assistance of users. Please consid
 - [channafam](https://github.com/channafam) for contributing improvements for dreamlight LED strips and support for Fancy LEDs screen sync 2.0 lights.
 - [Codeh4ack](https://github.com/Codeh4ack) for contributing improvements for Della air conditioner (supporting Sendo Hermes Gold).
 - [comcowo](https://github.com/comcowo) for contributing improvements to Powerworld PW58330 water heater.
+- [shyfxshadow](https://github.com/shyfxshadow) for assisting with support for EleChico CCST6001 thermostat.

+ 1 - 0
DEVICES.md

@@ -201,6 +201,7 @@
 - Drexma WiStat ET7AW thermostat
 - DunWore F60 floor heating thermostat
 - EARU Electronic K6H-3A-W thermostat
+- EleChico CCST6001 thermostat
 - ETOP-FCU thermostat (Jaga JRT-100TW)
 - ETOP-HP thermostat (CH7100)
 - ETOP-HT thermostat

+ 119 - 0
custom_components/tuya_local/devices/elechico_ccst6001_thermostat.yaml

@@ -0,0 +1,119 @@
+name: Thermostat
+products:
+  - id: 9z20prc4jq1jb4im
+    manufacturer: Elechico
+    model: CCST6001
+entities:
+  - entity: climate
+    translation_key: thermostat
+    dps:
+      - id: 1
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            mapping:
+              - constraint: mode
+                conditions:
+                  - dps_val: COOL
+                    value: cool
+                  - dps_val: HEAT
+                    value: heat
+                    available: heating_available
+                  - dps_val: FAN
+                    value: fan_only
+      - id: 2
+        type: string
+        name: mode
+        hidden: true
+      - id: 3
+        type: string
+        name: hvac_action
+        mapping:
+          - dps_val: stop
+            value: idle
+          - dps_val: blowing
+            value: fan
+          - dps_val: heating
+            value: heating
+          - dps_val: cooling
+            value: cooling
+      - id: 16
+        type: integer
+        name: temperature
+        unit: C
+        range:
+          min: 50
+          max: 350
+        mapping:
+          - scale: 10
+            step: 5
+      - id: 24
+        type: integer
+        name: current_temperature
+        mapping:
+          - scale: 10
+      - id: 28
+        type: string
+        name: fan_mode
+        mapping:
+          - dps_val: low
+            value: low
+          - dps_val: middle
+            value: medium
+          - dps_val: high
+            value: high
+          - dps_val: auto
+            value: auto
+      - id: 101
+        type: string
+        name: preset_mode
+        mapping:
+          - dps_val: manual
+            value: manual
+          - dps_val: programmable
+            value: program
+          - dps_val: jieneng
+            value: eco
+      - id: 102
+        type: string
+        name: heating_available
+        mapping:
+          - dps_val: cool
+            value: false
+          - value: true
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 45
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 45
+        type: bitfield
+        name: fault_code
+    # Each timer can set the 1st and 2nd bytes for time, and the 3rd
+    # and 4th bytes for temperature; 6 timers per "day";
+    # 3 "days": Mon-Fri, Sat, Sun
+    # defaults
+    # 06:00 20°C; 08:00 15°C; 11:30 15°C; 13:30 15°C; 17:00 22°C; 22:00 15°C;
+    # each section occupies 4 bytes, if the temperature has decimals,
+    # the data must be expanded 10 times, if it does not have decimals,
+    # it is transmitted normally, 06:00 35.0 is transmitted as 06 00 01 5e;
+    # 6*4*3=72 bytes encoded as base64
+  - entity: text
+    category: config
+    icon: "mdi:calendar-clock"
+    name: Schedule
+    hidden: true
+    dps:
+      - id: 48
+        type: base64
+        optional: true
+        name: value