Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added device file for Multi Leaf DY-107 Thermostat #1718

Merged
merged 5 commits into from
Apr 5, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
196 changes: 196 additions & 0 deletions custom_components/tuya_local/devices/multi_leaf_dy_107_thermostat.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
name: Multi-leaf DY-107 thermostat
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make this top level name generic (just "Thermostat" for example), as there may be other products that it matches.

products:
- id: gdusjavy8i4dpjlt
name: Multi-leaf DY-107 thermostat
primary_entity:
entity: climate
translation_key: thermostat
dps:
- id: 1
name: hvac_mode
type: boolean
mapping:
- dps_val: true
value: heat
- dps_val: false
value: "off"
- id: 2
name: preset_mode
type: string
mapping:
- dps_val: auto
value: program
- dps_val: manual
value: manual
- id: 16
type: integer
name: temperature
range:
min: 5
max: 90
- id: 19
type: integer
name: max_temperature
- id: 24
type: integer
name: current_temperature
- id: 26
optional: true
type: integer
name: min_temperature
- id: 36
type: string
name: hvac_action
mapping:
- dps_val: close
icon: "mdi:radiator-disabled"
constraint: hvac_mode
conditions:
- dps_val: true
value: idle
- dps_val: false
value: "off"
- dps_val: open
constraint: hvac_mode
conditions:
- dps_val: true
icon: "mdi:radiator"
value: heating
- dps_val: false
icon: "mdi:radiator-disabled"
value: "off"
- id: 45
name: fault_code
type: bitfield
secondary_entities:
- entity: number
name: Calibration offset
category: config
icon: "mdi:thermometer"
dps:
- id: 27
type: integer
name: value
unit: C
range:
min: -9
max: 9
- entity: switch
name: Anti-frost
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use translation_key: anti_frost here instead of name and icon, to make use of the new icon translations and name translation in latest release.

icon: "mdi:snowflake-melt"
category: config
dps:
- id: 10
type: boolean
name: switch
- entity: lock
name: Child lock
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use translation_key: child_lock here instead of name and the icon mappings below to make use of translations.

category: config
dps:
- id: 40
optional: true
type: boolean
name: lock
mapping:
- dps_val: true
icon: "mdi:hand-back-right-off"
- dps_val: false
icon: "mdi:hand-back-right"
- entity: select
name: Sensor selection
category: config
dps:
- id: 43
type: string
name: option
mapping:
- dps_val: in
icon: "mdi:gauge"
value: Internal
- dps_val: out
icon: "mdi:thermometer-chevron-down"
value: External
- dps_val: all
icon: "mdi:thermometer"
value: Both
- entity: binary_sensor
name: Error
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this name, and use the standard "problem" class translations from Home Assistant.

category: diagnostic
class: problem
dps:
- id: 45
type: bitfield
name: sensor
mapping:
- dps_val: 0
value: false
- value: true
- entity: number
name: High temperature limit
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Usually I would use "High temperature limit" for an alarm point. Since this is setting the maximum for the temperature adjustment, I would use "Maximum temperature" here. Similarly for "Minimum temperature" below.

category: config
class: temperature
icon: "mdi:thermometer-chevron-up"
dps:
- id: 19
type: integer
name: value
unit: C
range:
min: 30
max: 90
- entity: number
name: Low temperature limit
category: config
class: temperature
icon: "mdi:thermometer-chevron-down"
dps:
- id: 26
optional: true
name: value
type: integer
unit: C
range:
min: 5
max: 20
- entity: button
name: Reset
category: config
class: restart
dps:
- id: 39
name: button
type: boolean
optional: true
- entity: select
name: Working week
icon: "mdi:calendar-clock"
category: config
dps:
- id: 31
type: string
name: option
optional: true
mapping:
- dps_val: "00"
value: "Off"
- dps_val: "5_2"
value: "5 days"
- dps_val: "6_1"
value: "6 days"
- dps_val: "70"
value: "7 days"
- dps_val: null
value_redirect: alt
- entity: number
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make this a light entity, with just a brightness dp below.

name: Backlight
category: config
icon: "mdi:lightbulb-on"
dps:
- id: 44
type: integer
name: value
optional: true
unit: "%"
range:
min: 0
max: 100