Browse Source

feat (devices): add support for Livn Arosa electric fireplace

Issue #3806
Jason Rumney 4 months ago
parent
commit
32c18f7d5e
3 changed files with 364 additions and 0 deletions
  1. 1 0
      ACKNOWLEDGEMENTS.md
  2. 1 0
      DEVICES.md
  3. 362 0
      custom_components/tuya_local/devices/livn_arosa_fireplace.yaml

+ 1 - 0
ACKNOWLEDGEMENTS.md

@@ -1080,3 +1080,4 @@ Further device support has been made with the assistance of users. Please consid
 - [norb-HB](https://github.com/norb-HB) for assisting with support for Boundless Brothers PA-210W gas alarm.
 - [arsenicks](https://github.com/arsenicks) for contributing support for iHseno human presence sensor.
 - [diegaccio](https://github.com/diegaccio) for contributing improvements for Beok TGM50-WPB-WF / M5-G2 variants.
+- [Kriseh1337](https://github.com/Kriseh1337) for assisting with support for Livn Arosa electric fireplace.

+ 1 - 0
DEVICES.md

@@ -48,6 +48,7 @@
 - Kogan tower heater - KASTHFP2KWA model
 - Kogan panel heaters - KAHTP, KAWFHTP, KASMGPH models
 - Lehmann LHOHC-2013C electric radiator
+- Livn Arosa electric fireplace
 - Mellerware Comfy electric radiator (tested with Medium 1200W)
 - Modern Ember Vibrance XH-BG-15W/30WZKWIFI-10 electric fireplace
 - Modern Flames Orion electric fireplace

+ 362 - 0
custom_components/tuya_local/devices/livn_arosa_fireplace.yaml

@@ -0,0 +1,362 @@
+name: Fireplace
+products:
+  - id: e58vczrz6qmqvvdu
+    manufacturer: Livn
+    model: Arosa
+    model_id: EF61D
+entities:
+  - entity: climate
+    name: Fireplace
+    translation_key: heater
+    icon: "mdi:fireplace"
+    dps:
+      - id: 1
+        type: boolean
+        name: hvac_mode
+        mapping:
+          - dps_val: false
+            value: "off"
+          - dps_val: true
+            value: heat
+      - id: 2
+        type: integer
+        name: temperature
+        range:
+          min: 5
+          max: 40
+        mapping:
+          - constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: temp_set_f
+                range:
+                  min: 41
+                  max: 104
+      - id: 3
+        type: integer
+        name: current_temperature
+        mapping:
+          - constraint: temperature_unit
+            conditions:
+              - dps_val: f
+                value_redirect: temp_current_f
+      - id: 4
+        type: string
+        name: preset_mode
+        mapping:
+          - dps_val: auto
+            value: comfort
+          - dps_val: manual_high
+            value: boost
+          - dps_val: manual_low
+            value: eco
+      - id: 13
+        type: string
+        name: temperature_unit
+        mapping:
+          - dps_val: f
+            value: F
+          - value: C
+      - id: 14
+        type: integer
+        optional: true
+        name: temp_set_f
+        hidden: true
+        range:
+          min: 41
+          max: 104
+      - id: 15
+        type: integer
+        optional: true
+        name: temp_current_f
+        hidden: true
+      - id: 22
+        type: string
+        name: hvac_action
+        mapping:
+          - dps_val: heat_off
+            value: idle
+          - dps_val: heat_high
+            value: heating
+          - dps_val: heat_low
+            value: heating
+      - id: 114
+        type: string
+        name: model
+  - entity: lock
+    translation_key: child_lock
+    category: config
+    dps:
+      - id: 7
+        type: boolean
+        optional: true
+        name: lock
+  - entity: light
+    translation_key: flame
+    dps:
+      - id: 10
+        type: boolean
+        name: switch
+      - id: 110
+        type: integer
+        optional: true
+        name: brightness
+        range:
+          min: 1
+          max: 100
+  - entity: select
+    translation_key: temperature_unit
+    category: config
+    dps:
+      - id: 13
+        type: string
+        name: option
+        mapping:
+          - dps_val: c
+            value: celsius
+          - dps_val: f
+            value: fahrenheit
+  - entity: sensor
+    translation_key: time_remaining
+    class: duration
+    category: diagnostic
+    dps:
+      - id: 20
+        type: integer
+        name: sensor
+        unit: s
+  - entity: binary_sensor
+    class: problem
+    category: diagnostic
+    dps:
+      - id: 23
+        type: bitfield
+        name: sensor
+        mapping:
+          - dps_val: 0
+            value: false
+          - value: true
+      - id: 23
+        type: bitfield
+        name: fault_code
+  - entity: switch
+    dps:
+      - id: 101
+        type: boolean
+        name: switch
+  - entity: number
+    # Could this be a named_color?
+    name: Preset flame
+    category: config
+    icon: "mdi:fire"
+    dps:
+      - id: 102
+        type: integer
+        name: value
+        range:
+          min: 1
+          max: 9
+  - entity: select
+    name: Preset save
+    icon: "mdi:fire"
+    category: config
+    dps:
+      - id: 103
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: "7"
+            value: "7"
+          - dps_val: "8"
+            value: "8"
+          - dps_val: "9"
+            value: "9"
+  - entity: text
+    name: Configure flame
+    category: config
+    icon: "mdi:fire"
+    hidden: true
+    dps:
+      - id: 104
+        type: base64
+        optional: true
+        name: value
+  - entity: time
+    translation_key: timer
+    category: config
+    dps:
+      - id: 105
+        type: integer
+        name: minute
+        range:
+          min: 0
+          max: 1440
+  - entity: text
+    name: Flame schedule
+    category: config
+    icon: "mdi:calendar-clock"
+    hidden: true
+    dps:
+      - id: 106
+        type: base64
+        optional: true
+        name: value
+  - entity: text
+    name: Heating schedule
+    category: config
+    icon: "mdi:calendar-clock"
+    hidden: true
+    dps:
+      - id: 107
+        type: base64
+        optional: true
+        name: value
+  - entity: select
+    name: Flame mode
+    icon: "mdi:fire"
+    category: config
+    dps:
+      - id: 108
+        type: string
+        name: option
+        mapping:
+          - dps_val: auto
+            value: auto
+          - dps_val: manual
+            value: manual
+  - entity: light
+    translation_key: backlight
+    dps:
+      - id: 113
+        type: boolean
+        optional: true
+        name: switch
+      - id: 109
+        name: brightness
+        type: integer
+        optional: true
+        range:
+          min: 1
+          max: 100
+  - entity: select
+    # numeric "0" - "14", but no idea what named_color these map to
+    name: Backlight color
+    category: config
+    dps:
+      - id: 111
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: "0"
+          - dps_val: "1"
+            value: "1"
+          - dps_val: "2"
+            value: "2"
+          - dps_val: "3"
+            value: "3"
+          - dps_val: "4"
+            value: "4"
+          - dps_val: "5"
+            value: "5"
+          - dps_val: "6"
+            value: "6"
+          - dps_val: "7"
+            value: "7"
+          - dps_val: "8"
+            value: "8"
+          - dps_val: "9"
+            value: "9"
+          - dps_val: "10"
+            value: "10"
+          - dps_val: "11"
+            value: "11"
+          - dps_val: "12"
+            value: "12"
+          - dps_val: "13"
+            value: "13"
+          - dps_val: "14"
+            value: "14"
+
+  - entity: switch
+    name: Sound
+    icon: "mdi:volume-high"
+    category: config
+    dps:
+      - id: 112
+        type: boolean
+        optional: true
+        name: switch
+  - entity: number
+    name: Volume
+    category: config
+    icon: "mdi:volume-high"
+    dps:
+      - id: 115
+        type: integer
+        optional: true
+        name: value
+        unit: "%"
+        range:
+          min: 0
+          max: 100
+  - entity: select
+    name: Flame speed
+    icon: "mdi:fire"
+    category: config
+    dps:
+      - id: 116
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: "0"
+          - dps_val: "1"
+            value: "1"
+          - dps_val: "2"
+            value: "2"
+          - dps_val: "3"
+            value: "3"
+          - dps_val: "4"
+            value: "4"
+          - dps_val: "5"
+            value: "5"
+          - dps_val: low
+            value: low
+          - dps_val: mid
+            value: medium
+          - dps_val: high
+            value: high
+  - entity: select
+    name: Voice
+    icon: "mdi:account-voice"
+    category: config
+    dps:
+      - id: 117
+        type: string
+        optional: true
+        name: option
+        mapping:
+          - dps_val: "0"
+            value: "0"
+          - dps_val: "1"
+            value: "1"
+          - dps_val: "2"
+            value: "2"
+          - dps_val: "3"
+            value: "3"
+          - dps_val: "4"
+            value: "4"
+          - dps_val: "5"
+            value: "5"
+          - dps_val: "6"
+            value: "6"
+          - dps_val: "7"
+            value: "7"
+          - dps_val: "8"
+            value: "8"
+          - dps_val: "9"
+            value: "9"