esphome / esphome/feature-requests

US wire based thermostat component

Open
#1,174 4 comments 0 reactions 1 assignee Claimed by @kbx81 View on GitHub
component: thermostat
Dominant language
No language data
Stars
450
Forks
29
PR merge metrics
No merged PRs in 30d

Description

**Describe the problem you have/What new integration you would like**
The current configuration for `thermostat` is very flexible but also complex. I'd like to see something that works more in line with a typical off the shelf thermostat automatically. For example, for my heat pump with aux heat, the config would be:
```
climate:
- platform: thermostat_us
id: esp_thermostat
name: ${node_friendly_name}
sensor: bme280_temp
mode_input: rotary_button
fan_mode_input: side_button
raise_lower_input: rotary_encoder
default_target_low: 67°F
default_target_high: 72°F
aux_mode: eco
wires:
- fan: triac_green_wire
- compressor: triac_yellow_wire
- reversing_valve: triac_orange_wire
- aux_heat: triac_white_wire
on_change:
then:
- component.update: oled
```

**Please describe your use case for this integration and alternatives you've tried:**
I've tried the existing `thermostat` and yes it will satisfy my use case, however it is more complicated than expected.

**Additional context**
By default it should support fan: ON/AUTO, mode: OFF/COOL/HEAT/EM HEAT/AUTO and should have all the logic for how a typical thermostat would work. For example, I think most thermostats call for aux heat if you have +2 degree temperature delta. You can override default behavior with a different `aux_mode`.

We also need built in methods for toggle of the modes.

For example:
```
`ClimateCall::toggle_mode` cycle ['auto', 'off', 'heat', 'cool', 'em heat']
`ClimateCall::toggle_fan_mode` cycle ['auto', 'on' ]
`ClimateCall::toggle_em_heat_mode` cycle ['comfort', 'normal', 'eco', 'saver']
`ClimateCall::raise_temp`
`ClimateCall:lower_temp`
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.