Ver código fonte

feat (devices): add a new variant of Magnum MRC floor heating

Issue #4203
Jason Rumney 1 mês atrás
pai
commit
1f03414344

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -1196,3 +1196,4 @@ Further device support has been made with the assistance of users. Please consid
 - [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.
 - [cream68](https://github.com/cream68) for assisting with support for essentials Wall thermostat.
+- [Dunky13](https://github.com/Dunky13) for assisting with support for a new variant of Magnum MRC floor heating.

+ 1 - 1
DEVICES.md

@@ -54,10 +54,10 @@
 - Lebenlang LBL0380 heater
 - Lehmann LHOHC-2013C electric radiator
 - Livn Arosa electric fireplace
+- Magnum MRC floor heating (2 variants)
 - Mellerware Comfy electric radiator (tested with Medium 1200W)
 - Modern Ember Vibrance XH-BG-15W/30WZKWIFI-10 electric fireplace
 - Modern Flames Orion electric fireplace
-- MRC Magnum floor heating
 - Nedis ceramic PTC fan heater
 - Nedis convection heater - WIFIHTPL20F model
 - Nybro heater

+ 338 - 0
custom_components/tuya_local/devices/magnum_mrc_floorheating.yaml

@@ -0,0 +1,338 @@
+name: Floor heating
+products:
+  - id: ye6jdjnv5quxq3wb
+    manufacturer: Magnum
+    model: MRC
+entities:
+  - entity: climate
+    translation_key: heater
+    dps:
+      - id: 102
+        type: integer
+        name: temperature
+        range:
+          min: 41
+          max: 1040
+        mapping:
+          - scale: 10
+            step: 5
+            constraint: temperature_unit
+            conditions:
+              - dps_val: false
+                range:
+                  min: 50
+                  max: 400
+              - dps_val: true
+                range:
+                  min: 410
+                  max: 1040
+                step: 10
+      - id: 103
+        type: string
+        name: preset_mode
+        mapping:
+          - dps_val: AUTO
+            value: auto
+          - dps_val: MANUAL
+            value: manual
+          - dps_val: HOLIDAY
+            value: away
+          - dps_val: FROST
+            value: sleep
+          - dps_val: SLOW
+            value: Slow start
+      - id: 105
+        type: integer
+        optional: true
+        name: current_temperature
+        mapping:
+          - scale: 10
+          - dps_val: null
+            value_redirect: floor_temperature
+      - id: 106
+        type: integer
+        optional: true
+        name: floor_temperature
+        mapping:
+          - scale: 10
+      - id: 107
+        type: boolean
+        name: temperature_unit
+        mapping:
+          - dps_val: true
+            value: F
+          - value: C
+      - id: 118
+        type: string
+        name: hvac_action
+        mapping:
+          - dps_val: warming
+            value: idle
+          - dps_val: heating
+            value: heating
+  - entity: select
+    name: Night display
+    icon: "mdi:monitor-star"
+    category: config
+    dps:
+      - id: 101
+        type: string
+        name: option
+        mapping:
+          - dps_val: time_date_temp
+            value: Time, date and temperature
+          - dps_val: time_temp
+            value: Time and temperature
+          - dps_val: time_only
+            value: Time
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 104
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 104
+        type: bitfield
+        name: fault_code
+      - id: 104
+        type: bitfield
+        name: description
+        mapping:
+          - dps_val: 0
+            value: ok
+          - dps_val: 1
+            value: room sensor
+          - dps_val: 2
+            value: floor sensor
+  - entity: sensor
+    name: Floor temperature
+    class: temperature
+    dps:
+      - id: 106
+        type: integer
+        optional: true
+        name: sensor
+        class: measurement
+        mapping:
+          - scale: 10
+      - id: 107
+        type: boolean
+        name: unit
+        mapping:
+          - dps_val: true
+            value: F
+          - value: C
+  - entity: select
+    translation_key: temperature_unit
+    category: config
+    dps:
+      - id: 107
+        type: boolean
+        name: option
+        mapping:
+          - dps_val: false
+            value: celsius
+          - dps_val: true
+            value: fahrenheit
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 108
+        type: boolean
+        name: lock
+  - entity: number
+    name: Holiday length
+    category: config
+    class: duration
+    icon: "mdi:island"
+    dps:
+      - id: 109
+        type: integer
+        name: value
+        unit: d
+        range:
+          min: 0
+          max: 99
+  - entity: select
+    name: Schedule phase
+    icon: "mdi:calendar-clock"
+    category: config
+    dps:
+      - id: 110
+        type: string
+        name: option
+        mapping:
+          - dps_val: "1"
+            value: Phase 1-2
+          - dps_val: "2"
+            value: Phase 3-4
+          - dps_val: "3"
+            value: Phase 5-6
+  - entity: select
+    name: Sensor selection
+    icon: "mdi:thermometer-plus"
+    category: config
+    dps:
+      - id: 111
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: Room
+          - dps_val: "1"
+            value: Floor
+          - dps_val: "2"
+            value: Both
+  - entity: number
+    translation_key: temperature_calibration
+    name: Room calibration
+    category: config
+    dps:
+      - id: 112
+        type: integer
+        name: value
+        unit: °
+        range:
+          min: -90
+          max: 90
+        mapping:
+          - scale: 10
+  - entity: number
+    name: Floor calibration
+    translation_key: temperature_calibration
+    category: config
+    dps:
+      - id: 113
+        type: integer
+        optional: true
+        name: value
+        unit: °
+        range:
+          min: -90
+          max: 90
+        mapping:
+          - scale: 10
+  - entity: select
+    name: Temperature hysteresis
+    category: config
+    icon: "mdi:thermometer-plus"
+    dps:
+      - id: 114
+        type: string
+        name: option
+        mapping:
+          - dps_val: "0_5"
+            value: "0.5°"
+          - dps_val: "1"
+            value: "1°"
+          - dps_val: "2"
+            value: "2°"
+          - dps_val: "3"
+            value: "3°"
+  - entity: number
+    name: Display brightness
+    category: config
+    icon: "mdi:television-ambient-light"
+    dps:
+      - id: 115
+        type: integer
+        name: value
+        unit: "%"
+        range:
+          min: 1
+          max: 10
+        mapping:
+          - scale: 0.1
+  - entity: number
+    name: Backlight timeout
+    category: config
+    class: duration
+    dps:
+      - id: 117
+        type: integer
+        name: value
+        unit: s
+        range:
+          min: 5
+          max: 60
+        mapping:
+          - step: 5
+  - entity: text
+    name: Schedule
+    category: config
+    icon: "mdi:calendar-clock"
+    hidden: true
+    dps:
+      - id: 119
+        type: base64
+        optional: true
+        name: value
+  - entity: sensor
+    name: Average monthly consumption
+    category: diagnostic
+    dps:
+      - id: 123
+        type: integer
+        mask: "00FF"
+        name: sensor
+        unit: "%"
+        class: measurement
+      - id: 123
+        type: integer
+        mask: "FF00"
+        name: annual
+  - entity: select
+    name: Floor
+    icon: "mdi:floor-plan"
+    category: config
+    dps:
+      - id: 124
+        type: string
+        name: option
+        mapping:
+          - dps_val: wood
+            value: Wood
+          - dps_val: other
+            value: Other
+  - entity: select
+    name: Sensor type
+    icon: "mdi:thermometer-probe"
+    category: config
+    dps:
+      - id: 125
+        type: string
+        name: option
+        mapping:
+          - dps_val: "10k"
+            value: "10k"
+          - dps_val: "12k"
+            value: "12k"
+  - entity: switch
+    name: Intelligence
+    category: config
+    dps:
+      - id: 126
+        type: boolean
+        name: switch
+  - entity: switch
+    name: Open window detection
+    category: config
+    dps:
+      - id: 127
+        type: boolean
+        name: switch
+  - entity: button
+    translation_key: factory_reset
+    category: config
+    hidden: true
+    dps:
+      - id: 128
+        type: boolean
+        optional: true
+        name: button