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

feat (devices): add new variant of Beok TOL47 thermostat

Issue #4262
Jason Rumney 2 недель назад
Родитель
Сommit
5ca4173966

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -1232,3 +1232,4 @@ Further device support has been made with the assistance of users. Please consid
 - [sanglyb](https://github.com/sanglyb) for assisting with support for Neptun Smart+ water leak control system.
 - [J14111](https://github.com/J14111) for assisting with support for Palicy EC Pro 4 chlorine generator.
 - [chrisproud](https://github.com/chrisproud) for contributing support for Poolstyle pool heat pump.
+- [elsterglanz](https://github.com/elsterglanz) for assisting with support for a new variant of Beok TOL47 thermostat.

+ 252 - 0
custom_components/tuya_local/devices/beok_tol47v2_thermostat.yaml

@@ -0,0 +1,252 @@
+name: Thermostat
+products:
+  - id: 9cqoypoauuvhdjq4
+    manufacturer: Beok
+    model: TOL47WIFI New
+entities:
+  - entity: climate
+    translation_key: thermostat
+    dps:
+      - id: 1
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            value: heat
+            available: output_heat
+          - dps_val: true
+            value: cool
+            available: output_cool
+      - id: 2
+        type: integer
+        name: temperature
+        unit: C
+        range:
+          min: 50
+          max: 950
+        mapping:
+          - scale: 10
+            step: 5
+            constraint: preset_mode
+            conditions:
+              - dps_val: leave
+                scale: 1
+                step: 1
+                value_redirect: away_temp
+                range:
+                  min: 6
+                  max: 16
+      - id: 3
+        type: integer
+        name: current_temperature
+        mapping:
+          - scale: 10
+      - id: 4
+        type: string
+        name: preset_mode
+        mapping:
+          - dps_val: home
+            value: home
+          - dps_val: auto
+            value: program
+          - dps_val: temporary
+            value: temp_override
+          - dps_val: leave
+            value: away
+      - id: 5
+        type: string
+        name: hvac_action
+        mapping:
+          - dps_val: "0"
+            value: idle
+          - dps_val: "1"
+            constraint: output_cool
+            conditions:
+              - dps_val: false
+                value: heating
+              - dps_val: true
+                value: cooling
+      - id: 15
+        type: integer
+        name: max_temperature
+      - id: 107
+        type: integer
+        optional: true
+        hidden: true
+        name: away_temp
+        unit: C
+        range:
+          min: 6
+          max: 16
+      - id: 108
+        type: boolean
+        name: output_cool
+        hidden: true
+      - id: 108
+        type: boolean
+        name: output_heat
+        hidden: true
+        mapping:
+          - dps_val: true
+            value: false
+          - dps_val: false
+            value: true
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 9
+        type: boolean
+        name: lock
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 11
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 11
+        type: bitfield
+        name: fault_code
+  - entity: number
+    translation_key: maximum_temperature
+    class: temperature
+    category: config
+    dps:
+      - id: 15
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 15
+          max: 95
+  - entity: number
+    translation_key: temperature_calibration
+    category: config
+    dps:
+      - id: 19
+        type: integer
+        name: value
+        unit: "°"
+        range:
+          min: -99
+          max: 99
+        mapping:
+          - scale: 10
+  - entity: text
+    name: Schedule
+    category: config
+    icon: "mdi:calendar-clock"
+    hidden: true
+    dps:
+      - id: 28
+        type: base64
+        optional: true
+        name: value
+  - entity: number
+    name: Temperature hysteresis
+    category: config
+    icon: "mdi:thermometer-plus"
+    dps:
+      - id: 101
+        type: integer
+        name: value
+        unit: "°"
+        range:
+          min: 5
+          max: 100
+        mapping:
+          - scale: 10
+            step: 5
+  - entity: number
+    name: External temperature limit
+    class: temperature
+    category: config
+    icon: "mdi:thermometer-probe"
+    dps:
+      - id: 102
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 25
+          max: 95
+      - id: 110
+        type: string
+        name: available
+        mapping:
+          - dps_val: "3"
+            value: true
+          - value: false
+  - entity: switch
+    translation_key: anti_frost
+    category: config
+    dps:
+      - id: 103
+        type: boolean
+        name: switch
+  - entity: button
+    translation_key: factory_reset
+    category: config
+    hidden: true
+    dps:
+      - id: 104
+        type: boolean
+        name: button
+  - entity: light
+    translation_key: backlight
+    category: config
+    dps:
+      - id: 106
+        name: brightness
+        type: string
+        mapping:
+          - dps_val: "1"
+            value: 0
+          - dps_val: "2"
+            value: 128
+          - dps_val: "3"
+            value: 255
+  - entity: select
+    name: Output
+    icon: "mdi:electric-switch"
+    category: config
+    dps:
+      - id: 108
+        type: boolean
+        name: option
+        mapping:
+          - dps_val: false
+            value: Heating
+          - dps_val: true
+            value: Cooling
+  - entity: select
+    name: Temperature sensor
+    icon: "mdi:home-thermometer"
+    category: config
+    dps:
+      - id: 110
+        type: string
+        name: option
+        mapping:
+          - dps_val: "1"
+            value: Internal
+          - dps_val: "2"
+            value: External
+          - dps_val: "3"
+            value: Both
+  - entity: button
+    name: Wakeup
+    category: config
+    icon: "mdi:gesture-tap-button"
+    dps:
+      - id: 113
+        type: boolean
+        optional: true
+        name: button