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

Add Support for Drexma WiStat thermostat ET7AW #3016

Merged
merged 14 commits into from
Mar 9, 2025
Merged
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
329 changes: 329 additions & 0 deletions custom_components/tuya_local/devices/drexma_et7aw_thermostat.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,329 @@
name: Thermostat
products:
- id: 1oi7spyvsihkwrrr
manufacturer: Drexma Industries inc.
model: "WiStat"
model_id: "ET-7AW"
entities:
- entity: climate
translation_key: thermostat
dps:
- id: 101
type: boolean
name: hvac_mode
mapping:
- dps_val: false
value: "off"
- dps_val: true
value: heat
- id: 102
type: integer
name: temperature
range:
min: 50
max: 400
mapping:
- scale: 10
step: 5
constraint: temperature_unit
conditions:
- dps_val: true
step: 10
range:
min: 410
max: 1040
- id: 103
type: string
name: preset_mode
mapping:
- dps_val: "Smart"
value: Program
- dps_val: "Manual"
value: Manual
- dps_val: "Anti_frozen"
value: Away
- id: 105
type: integer
name: current_temperature
mapping:
- constraint: sensor
conditions:
- dps_val: "0"
scale: 10
- dps_val: "1"
value_redirect: floor_temperature
- dps_val: "2"
scale: 10
- id: 106
type: integer
name: floor_temperature
hidden: true
mapping:
- scale: 10
- id: 107
name: temperature_unit
type: boolean
mapping:
- dps_val: false
value: C
- dps_val: true
value: F
- id: 111
type: string
name: sensor
hidden: true
- id: 118
type: boolean
name: hvac_action
mapping:
- dps_val: true
value: heating
- dps_val: false
value: idle
- 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 fault
- dps_val: 2
value: Floor sensor fault
- dps_val: 4
value: GFCI fault
- entity: sensor
name: Room temperature
class: temperature
icon: "mdi:home-thermometer"
dps:
- id: 105
type: integer
name: sensor
class: measurement
mapping:
- scale: 10
- id: 107
name: unit
type: boolean
mapping:
- dps_val: false
value: C
- dps_val: true
value: F
- entity: sensor
name: Floor temperature
class: temperature
icon: "mdi:thermometer-lines"
dps:
- id: 106
type: integer
name: sensor
class: measurement
mapping:
- scale: 10
- id: 107
name: unit
type: boolean
mapping:
- dps_val: false
value: C
- dps_val: true
value: F
- entity: select
category: config
translation_key: temperature_unit
dps:
- id: 107
name: option
type: boolean
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: select
name: Location
type: string
category: config
icon: "mdi:map-marker-multiple-outline"
hidden: true
dps:
- id: 109
name: option
type: boolean
mapping:
- dps_val: false
value: Home
- dps_val: true
value: Office
- entity: select
category: config
name: Auto schedule
icon: "mdi:calendar-sync"
dps:
- id: 110
type: integer
name: option
mapping:
- dps_val: 0
value: "7"
- dps_val: 1
value: "5+1+1"
- dps_val: 2
value: "7 (Adaptive)"
- dps_val: 3
value: "5+1+1 (Adaptive)"
- entity: select
category: config
name: Temperature sensor
icon: "mdi:thermometer-check"
dps:
- id: 111
type: string
name: option
mapping:
- dps_val: "0"
value: "Room"
icon: "mdi:home-thermometer"
- dps_val: "1"
value: "Floor"
icon: "mdi:heating-coil"
- dps_val: "2"
value: "Both"
icon: "mdi:thermometer"
- entity: number
category: config
type: integer
name: Room temperature calibration
icon: "mdi:tune-vertical-variant"
dps:
- id: 112
type: integer
name: value
range:
min: -50
max: 50
mapping:
- scale: 10
step: 5
constraint: unit
conditions:
- dps_val: true
step: 10
range:
min: -90
max: 90
- id: 107
name: unit
type: boolean
mapping:
- dps_val: false
value: °C
- dps_val: true
value: °F
- entity: number
category: config
type: integer
name: Floor temperature calibration
icon: "mdi:tune-variant"
dps:
- id: 113
type: integer
name: value
range:
min: -50
max: 50
mapping:
- scale: 10
step: 5
constraint: unit
conditions:
- dps_val: true
step: 10
range:
min: -90
max: 90
- id: 107
name: unit
type: boolean
mapping:
- dps_val: false
value: °C
- dps_val: true
value: °F
- entity: number
name: Heater Wattage
class: power
category: config
hidden: true
dps:
- id: 116
type: integer
name: value
unit: W
range:
min: 0
max: 4500
- entity: sensor
name: Runtime
class: duration
hidden: true
dps:
- id: 117
type: integer
name: sensor
unit: d
mapping:
- scale: 2
- entity: number
category: config
class: temperature
name: Room temperature limit
icon: "mdi:thermometer-chevron-down"
dps:
- id: 121
type: integer
name: value
range:
min: 100
max: 400
mapping:
- scale: 10
step: 5
constraint: unit
conditions:
- dps_val: true
step: 30
range:
min: 120
max: 750
- id: 107
name: unit
type: boolean
mapping:
- dps_val: false
value: C
- dps_val: true
value: F
Loading