1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-30 17:12:20 +01:00
Commit Graph

41 Commits

Author SHA1 Message Date
Keith Burzinski
55dd12c66b [thermostat] Rename timer enums to mitigate naming conflict (#10666) 2025-09-10 22:58:07 +12:00
Keith Burzinski
d9f625e5c8 [thermostat] General clean-up, optimization, properly support "auto" mode (#10561)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2025-09-10 13:24:50 +12:00
J. Nick Koston
ffebd30033 [ruff] Enable SIM rules and fix code simplification violations (#9872) 2025-07-25 18:26:08 +12:00
Keith Burzinski
0c249a7006 [thermostat] Memory optimizations (#9259) 2025-06-29 06:16:34 -05:00
J. Nick Koston
c0b05ada1a Reduce ESP_LOGCONFIG calls (#9026) 2025-06-09 00:02:30 +00:00
Keith Burzinski
6675e99862 Remove unnecessary ellipsis (#8964) 2025-06-03 21:46:10 +01:00
Jesse Hills
de27ce79dc [climate] Update components to use `climate_schema(...)` (#8788) 2025-05-14 05:36:21 +00:00
Katherine Whitlock
3020083564 Ruff format for CI (#8276) 2025-02-19 13:24:43 -06:00
Keith Burzinski
1c0ee5ae6b [thermostat] Remove `assert()`s (#7544) 2024-10-07 09:01:11 +13:00
Jesse Hills
cf4bfcdce8 [thermostat] Fix linting and formatting issues (#7442) 2024-09-13 05:03:25 -05:00
Keith Burzinski
4a3627c93e Fix thermostat supplemental actions (#6282) 2024-02-26 07:28:52 +13:00
Stefan Rado
6c7a133faa Add humidity support to climate (#5732)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-12-13 10:23:02 +09:00
DAVe3283
e0cee472c3 Fix compile with latest esp-idf on esp32c6 (#5677)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-11-05 23:13:01 +00:00
Joris S
397f57ce74 Climate preset fix (#5407) 2023-09-21 09:28:03 +12:00
Sebastian Rasor
b20bae23cc Introduce cv.temperature_delta and fix problematic thermostat configuration behavior (#5297) 2023-08-23 13:01:34 +12:00
Michael Muré
dfafc41ce6 climate: add support for quiet fan mode (#3609) 2023-02-09 11:28:16 +13:00
Jesse Hills
9273e3775b Add vector includes (#4080) 2022-11-24 13:12:55 +13:00
Jesse Hills
ef26677b67 Always use brackets around single log macros (#4072) 2022-11-23 10:32:51 +13:00
Guillermo Ruffino
98171c9f49 fix never calling preset change trigger (#3864)
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
2022-10-13 10:11:59 +13:00
Guillermo Ruffino
e8ff36d1f3 fix dump preset string type (#3863) 2022-10-04 10:50:33 +13:00
Michael Davidson
8095db6715 Thermostat remove deprecated config (#3643)
* Raise errors for all the now deprecated options

* Fix CONF_DEFAULT_PRESET detection

* Stop attempting to set the non-existent normal_config

* Add support for default presets

* Fix correct detection of Two Point temperature mode

* Fix lint issues

* Fix tests

* Generate correct yaml for equivalent configurations

* Remove debug code

* Only set default preset if the thermostat does not have state to restore

* Add restore_default_preset_on_boot option
If set to True then the default_preset will be applied on every boot. If False (Default) state will be restored from memory as per prior versions

* Apply lint suggestions

* Switch from restore_default_preset_on_boot to an enum for startup_behavior
This gives better self-documentation as well as the option for extending to other options down the track

* Lint fixes

* Rename startup_behavior to on_boot_restore_from
This removes any issues with different English locales

* Fix comparable_preset yaml output alignment

* Add dump of on_boot_restore_from setting

Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
2022-09-25 21:59:04 -05:00
André Klitzing
72cce391ab Fix some typos found by codespell (#3598) 2022-06-27 18:02:46 -03:00
Michael Davidson
adb7aa6950 Thermostat preset with modes (#3298)
* Rework HOME/AWAY support to being driven via a map of ClimatePreset/ThermostatClimateTargetTempConfig
This opens up to theoretically being able to support other presets (ECO, SLEEP, etc)

* Add support for additional presets
Configuration takes the form;
```
climate:
  platform: preset
  ...
  preset:
    [eco | away | boost | comfort | home | sleep | activity]:
      default_target_temperature_low: 20
      default_target_temperature_high: 24
```

These will be available in the Home Assistant UI and, like the existing Home/Away config will reset the temperature in line with these defaults when selected. The existing away_config/home_config is still respected (although preset->home/preset->away will be applied after them and override them if both styles are specified)

* Add support for specifying MODE, FAN_MODE and SWING_MODE on a preset
When switching presets these will implicitly flow through to the controller. However calls to climate.control which specify any of these will take precedence even when changing the mode (think of the preset version as the default for that preset)

* Add `preset_change` mode trigger
When defined this trigger will fire when the preset for the thermostat has been changed. The intent of this is similar to `auto_mode` - it's not intended to be used to control the preset's state (eg. communicate with the physical thermostat) but instead might be used to update a visual indicator, for instance.

* Apply lint, clang-format, and clang-tidy fixes

* Additional clang-format fixes

* Wrap log related strings in LOG_STR_ARG

* Add support for custom presets
This also changes the configuration syntax to;
```yaml
  preset:
    # Standard preset
    - name: [eco | away | boost | comfort | home | sleep | activity]
      default_target_temperature_low: 20
      ...
    # Custom preset
    - name: My custom preset
      default_target_temperature_low: 18
```

For the end user there is no difference between a custom and built in preset. For developers custom presets are set via `climate.control` `custom_preset` property instead of the `preset`

* Lint/clang-format/clang-tidy fixes

* Additional lint/clang-format/clang-tidy fixes

* Clang-tidy changes

* Sort imports

* Improve configuration validation for presets
- Unify temperature validation across default, away, and preset configuration
- Validate modes for presets have the required actions

* Trigger a refresh after changing internals of the thermostat

* Apply formatting fixes

* Validate mode, fan_mode, and swing_mode on presets

* Add preset temperature validation against visual min/max configuration

* Apply code formatting fixes

* Fix preset temperature validation
2022-05-24 22:44:26 -05:00
Oxan van Leeuwen
80d03a631e Force braces around multi-line statements (#3094)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2022-01-25 08:56:36 +13:00
Keith Burzinski
cf5193d3e5 Fix for two points setting when fan_only_cooling is disabled (#2903)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Keith Burzinski <kburzinski@kbx-mbp2021.ad.kbx81.net>
2021-12-11 20:03:22 +13:00
Keith Burzinski
eaa5200a35 Thermostat publish state fix (#2427) 2021-10-03 14:10:43 +02:00
Otto Winter
ac0d921413 ESP-IDF support and generic target platforms (#2303)
* Socket refactor and SSL

* esp-idf temp

* Fixes

* Echo component and noise

* Add noise API transport support

* Updates

* ESP-IDF

* Complete

* Fixes

* Fixes

* Versions update

* New i2c APIs

* Complete i2c refactor

* SPI migration

* Revert ESP Preferences migration, too complex for now

* OTA support

* Remove echo again

* Remove ssl again

* GPIOFlags updates

* Rename esphal and ICACHE_RAM_ATTR

* Make ESP32 arduino compilable again

* Fix GPIO flags

* Complete pin registry refactor and fixes

* Fixes to make test1 compile

* Remove sdkconfig file

* Ignore sdkconfig file

* Fixes in reviewing

* Make test2 compile

* Make test4 compile

* Make test5 compile

* Run clang-format

* Fix lint errors

* Use esp-idf APIs instead of btStart

* Another round of fixes

* Start implementing ESP8266

* Make test3 compile

* Guard esp8266 code

* Lint

* Reformat

* Fixes

* Fixes v2

* more fixes

* ESP-IDF tidy target

* Convert ARDUINO_ARCH_ESPxx

* Update WiFiSignalSensor

* Update time ifdefs

* OTA needs millis from hal

* RestartSwitch needs delay from hal

* ESP-IDF Uart

* Fix OTA blank password

* Allow setting sdkconfig

* Fix idf partitions and allow setting sdkconfig from yaml

* Re-add read/write compat APIs and fix esp8266 uart

* Fix esp8266 store log strings in flash

* Fix ESP32 arduino preferences not initialized

* Update ifdefs

* Change how sdkconfig change is detected

* Add checks to ci-custom and fix them

* Run clang-format

* Add esp-idf clang-tidy target and fix errors

* Fixes from clang-tidy idf round 2

* Fixes from compiling tests with esp-idf

* Run clang-format

* Switch test5.yaml to esp-idf

* Implement ESP8266 Preferences

* Lint

* Re-do PIO package version selection a bit

* Fix arduinoespressif32 package version

* Fix unit tests

* Lint

* Lint fixes

* Fix readv/writev not defined

* Fix graphing component

* Re-add all old options from core/config.py

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2021-09-20 11:47:51 +02:00
Keith Burzinski
117b58ebe6 Thermostat delayed fan mode fix (#2158) 2021-08-16 09:31:48 +12:00
Keith Burzinski
98d32876b5 Thermostat enhancements 2 (#2114) 2021-08-10 10:16:44 +02:00
Keith Burzinski
335210d788 Thermostat enhancements and code clean-up (#2073) 2021-08-02 11:08:24 +02:00
Keith Burzinski
0a32321c85 Thermostat fixes+updates 1 (#2032)
Co-authored-by: Otto Winter <otto@otto-winter.com>
2021-07-22 09:09:31 +12:00
Otto Winter
871c0ee2a5 Rework climate traits (#1941)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2021-06-21 21:17:01 +02:00
Jesse Hills
dca1c0f160 Replace CLIMATE_MODE_AUTO with CLIMATE_MODE_HEAT_COOL in most cases (#1933) 2021-06-18 11:48:40 +12:00
Stefan Agner
501f88ca86 Avoid non-const globals and enable clang-tidy check (#1892) 2021-06-11 08:19:44 +12:00
Lumpusz
ebadaa9660 Add preset, custom_preset and custom_fan_mode support to climate (#1471)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2021-06-04 22:04:54 +12:00
Otto Winter
2376a2c941 Convert components to async-def syntax (#1821) 2021-05-24 10:58:29 +02:00
Guillermo Ruffino
69879920eb add-black (#1593)
* Add black

Update pre commit

Update pre commit

add empty line

* Format with black
2021-03-07 16:03:16 -03:00
Keith Burzinski
b5e6ae0d69 Add kbx81 to CODEOWNERS (#1380) 2020-11-18 19:46:22 +13:00
Keith Burzinski
bd392e2efc Fix set point logging issue (#1201) 2020-07-26 14:34:11 +02:00
Otto Winter
32efa5d83e New script modes POC (#1168)
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
2020-07-25 14:20:51 +02:00
Keith Burzinski
d4e76185bd Thermostat component (#1105)
* Add thermostat component

* Add hysteresis accessor

* Linted

* Fixed up const.py and test

* Fix test...again...oops
2020-07-01 22:38:51 -03:00