4
0
Эх сурвалжийг харах

Add Baxi Smart Link thermostat (#5593)

* Add Baxi Smart Link thermostat

* Fix Baxi Smart Link datapoints

* Clarify Baxi heating water setpoint

* Refine Baxi Smart Link entities

* Address Baxi Smart Link review feedback

* Represent Baxi hot water as climate

* Refactor thermostat YAML configuration

Removed unnecessary  range and steps on read-only attributes. Updated DHW from 'climate' to 'water_heater'

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
msemenkin 2 өдөр өмнө
parent
commit
68d9197979

+ 530 - 0
custom_components/tuya_local/devices/baxi_smart_link_thermostat.yaml

@@ -0,0 +1,530 @@
+name: OpenTherm thermostat
+products:
+  - id: eewzuhyvcsrqi2zn
+    manufacturer: Baxi
+    model: Smart Link
+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
+      - id: 2
+        type: string
+        name: preset_mode
+        mapping:
+          - dps_val: manual
+            value: manual
+          - dps_val: eco
+            value: eco
+          - dps_val: auto
+            value: auto
+      - id: 3
+        type: string
+        name: hvac_action
+        mapping:
+          - dps_val: heating
+            value: heating
+          - value: idle
+      - id: 24
+        type: integer
+        name: current_temperature
+        mapping:
+          - scale: 10
+      - id: 16
+        type: integer
+        name: temperature
+        unit: C
+        range:
+          min: 50
+          max: 350
+        mapping:
+          - scale: 10
+            step: 5
+      - id: 26
+        type: integer
+        name: min_temperature
+        mapping:
+          - scale: 10
+      - id: 19
+        type: integer
+        name: max_temperature
+        mapping:
+          - scale: 10
+
+  - entity: select
+    name: Heating season
+    category: config
+    icon: "mdi:sun-snowflake-variant"
+    dps:
+      - id: 28
+        type: string
+        name: option
+        mapping:
+          - dps_val: winter
+            value: Winter
+          - dps_val: summer
+            value: Summer
+
+  - entity: switch
+    translation_key: anti_frost
+    category: config
+    dps:
+      - id: 10
+        type: boolean
+        name: switch
+
+  - entity: text
+    translation_key: schedule
+    category: config
+    hidden: true
+    dps:
+      - id: 37
+        type: base64
+        name: value
+
+  - entity: button
+    translation_key: factory_reset
+    category: config
+    hidden: true
+    dps:
+      - id: 39
+        type: boolean
+        name: button
+
+  - entity: binary_sensor
+    class: window
+    dps:
+      - id: 3
+        type: string
+        name: sensor
+        mapping:
+          - dps_val: window_opened
+            value: true
+          - value: false
+
+  - entity: binary_sensor
+    name: Burner
+    class: running
+    icon: "mdi:fire"
+    dps:
+      - id: 108
+        type: integer
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+
+  - entity: binary_sensor
+    name: Domestic hot water
+    class: running
+    icon: "mdi:water-boiler"
+    dps:
+      - id: 3
+        type: string
+        name: central_heating
+        hidden: true
+      - id: 108
+        type: integer
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+            constraint: central_heating
+            conditions:
+              - dps_val: heating
+                value: false
+
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 40
+        type: boolean
+        name: lock
+
+  - entity: number
+    translation_key: minimum_temperature
+    category: config
+    class: temperature
+    mode: slider
+    dps:
+      - id: 26
+        name: value
+        type: integer
+        unit: C
+        range:
+          min: 0
+          max: 200
+        mapping:
+          - scale: 10
+            step: 5
+
+  - entity: number
+    translation_key: maximum_temperature
+    category: config
+    class: temperature
+    mode: slider
+    dps:
+      - id: 19
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 200
+          max: 800
+        mapping:
+          - scale: 10
+            step: 5
+
+  - entity: number
+    translation_key: temperature_calibration
+    class: temperature_delta
+    category: config
+    dps:
+      - id: 27
+        name: value
+        type: integer
+        unit: C
+        range:
+          min: -80
+          max: 80
+        mapping:
+          - scale: 10
+            step: 5
+
+  - entity: sensor
+    name: Return water temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 101
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 100
+
+  - entity: sensor
+    name: Boiler water temperature
+    class: temperature
+    icon: "mdi:coolant-temperature"
+    dps:
+      - id: 102
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+
+  - entity: sensor
+    name: Central heating pressure
+    class: pressure
+    category: diagnostic
+    dps:
+      - id: 103
+        type: integer
+        name: sensor
+        unit: bar
+        class: measurement
+        mapping:
+          - scale: 10
+
+  - entity: sensor
+    name: Flame level
+    category: diagnostic
+    hidden: true
+    dps:
+      - id: 104
+        type: integer
+        name: sensor
+
+  - entity: sensor
+    name: Boiler fault code
+    category: diagnostic
+    icon: "mdi:alert-circle-outline"
+    dps:
+      - id: 105
+        type: integer
+        name: sensor
+
+  - entity: sensor
+    name: Domestic hot water flow rate
+    class: volume_flow_rate
+    category: diagnostic
+    dps:
+      - id: 106
+        type: integer
+        name: sensor
+        unit: L/min
+        class: measurement
+        mapping:
+          - scale: 10
+
+  - entity: sensor
+    name: Exhaust temperature
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 107
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+
+  - entity: sensor
+    name: Relative modulation level
+    category: diagnostic
+    dps:
+      - id: 108
+        type: integer
+        name: sensor
+        unit: "%"
+        class: measurement
+        mapping:
+          - scale: 10
+
+  - entity: sensor
+    name: Central heating water setpoint
+    class: temperature
+    category: diagnostic
+    dps:
+      - id: 109
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+
+  - entity: sensor
+    name: Outside temperature
+    class: temperature
+    dps:
+      - id: 112
+        type: integer
+        name: sensor
+        unit: C
+        class: measurement
+        mapping:
+          - scale: 10
+
+  - entity: number
+    name: Central heating water upper limit
+    class: temperature
+    category: config
+    mode: box
+    dps:
+      - id: 110
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 0
+          max: 1000
+        mapping:
+          - scale: 10
+            step: 5
+
+  - entity: number
+    name: Central heating water lower limit
+    class: temperature
+    category: config
+    mode: box
+    dps:
+      - id: 111
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: 0
+          max: 1000
+        mapping:
+          - scale: 10
+            step: 5
+
+  - entity: number
+    name: Internal compensation coefficient
+    category: config
+    mode: box
+    dps:
+      - id: 113
+        type: integer
+        name: value
+        range:
+          min: 0
+          max: 200
+        mapping:
+          - scale: 10
+            step: 1
+
+  - entity: number
+    name: External compensation coefficient
+    category: config
+    mode: box
+    dps:
+      - id: 114
+        type: integer
+        name: value
+        range:
+          min: 0
+          max: 200
+        mapping:
+          - scale: 10
+            step: 1
+
+  - entity: number
+    name: Compensation offset
+    category: config
+    mode: box
+    dps:
+      - id: 115
+        type: integer
+        name: value
+        range:
+          min: -200
+          max: 200
+        mapping:
+          - scale: 10
+            step: 1
+
+  - entity: number
+    name: Proportional coefficient
+    category: config
+    mode: box
+    dps:
+      - id: 116
+        type: integer
+        name: value
+        range:
+          min: 0
+          max: 10
+        mapping:
+          - scale: 10
+            step: 1
+
+  - entity: number
+    name: Overridden outside temperature
+    class: temperature
+    category: config
+    mode: box
+    dps:
+      - id: 117
+        type: integer
+        name: value
+        unit: C
+        range:
+          min: -200
+          max: 200
+        mapping:
+          - scale: 10
+            step: 5
+
+  - entity: switch
+    name: OEM fault forwarding
+    category: config
+    dps:
+      - id: 118
+        type: boolean
+        name: switch
+
+  - entity: number
+    name: OpenTherm diagnostic query
+    category: config
+    mode: box
+    hidden: true
+    dps:
+      - id: 119
+        type: integer
+        name: value
+        range:
+          min: 0
+          max: 127
+
+  - entity: sensor
+    name: OpenTherm diagnostic value
+    category: diagnostic
+    hidden: true
+    dps:
+      - id: 120
+        type: integer
+        name: sensor
+
+  - entity: water_heater
+    category: config
+    dps:
+      - id: 1
+        type: boolean
+        name: operation_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            value: electric
+      - id: 121
+        type: integer
+        name: temperature
+        unit: C
+        range:
+          min: 0
+          max: 800
+        mapping:
+          - scale: 10
+            step: 5
+      - id: 122
+        type: integer
+        name: current_temperature
+        unit: C
+        mapping:
+          - scale: 10
+
+  - entity: binary_sensor
+    name: Boiler connection
+    class: connectivity
+    category: diagnostic
+    icon: "mdi:link-variant"
+    dps:
+      - id: 45
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 16
+            value: false
+          - value: true
+
+  - entity: binary_sensor
+    name: Control panel problem
+    category: diagnostic
+    class: problem
+    dps:
+      - id: 45
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 45
+        type: bitfield
+        name: fault_code
+
+  - entity: sensor
+    name: Control panel fault bitmap
+    category: diagnostic
+    icon: "mdi:alert-circle-outline"
+    dps:
+      - id: 45
+        type: bitfield
+        name: sensor