Skip to content

Commit

Permalink
Merge branch 'master' into dependabot/pip/pytest-homeassistant-custom…
Browse files Browse the repository at this point in the history
…-component-0.13.108
  • Loading branch information
swingerman authored Mar 20, 2024
2 parents d950ab0 + 08b25be commit 397a539
Show file tree
Hide file tree
Showing 10 changed files with 233 additions and 92 deletions.
26 changes: 15 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The `dual_smart_thermostat` is an enhanced version of generic thermostat impleme
| :--- | :---: | :---: |
| **Heater/Cooler Mode** | <img src="docs/images/sun-snowflake.svg" height="30" /> | [<img src="docs/images/file-document-outline.svg" height="30" style="stroke: red" />](#heatcool-mode) |
| **Heater Only Mode** | <img src="docs/images/radiator.svg" height="30" /> | [<img src="docs/images/file-document-outline.svg" height="30" />](#heater-only-mode) |
| **Two Stage Heating Mode** | <img src="docs/images/radiator.svg" height="30" /> <img src="docs/images/plus.svg" height="30" /> <img src="docs/images/radiator.svg" height="30" /> | [<img src="docs/images/file-document-outline.svg" height="30" />](#two-stage-heating) |
| **Two Stage (AUX) Heating Mode** | <img src="docs/images/radiator.svg" height="30" /> <img src="docs/images/plus.svg" height="30" /> <img src="docs/images/radiator.svg" height="30" /> | [<img src="docs/images/file-document-outline.svg" height="30" />](#two-stage-heating) |
| **Cooler Only mode** | <img src="docs/images/air-conditioner.svg" height="30" /> | [<img src="docs/images/file-document-outline.svg" height="30" />](#cooler-only-mode) |
| **Floor Temperature Control** | <img src="docs/images/heating-coil.svg" height="30" /> <img src="docs/images/snowflake-thermometer.svg" height="30" /> <img src="docs/images/thermometer-alert.svg" height="30" /> | [<img src="docs/images/file-document-outline.svg" height="30" />](#floor-heating-temperature-control) |
| **Window/Door sensor integration** | <img src="docs/images/window-open.svg" height="30" /> <img src="docs/images/door-open.svg" height="30" /> <img src="docs/images/chevron-right.svg" height="30" /> <img src="docs/images/timer-cog-outline.svg" height="30" /> <img src="docs/images/chevron-right.svg" height="30" /> <img src="docs/images/hvac-off.svg" height="30" /> | [<img src="docs/images/file-document-outline.svg" height="30" />](#openings) |
Expand All @@ -32,23 +32,23 @@ If only the [`heater`](#heater) entity is set the thermostat works only in heate

[all features ⤴️](#features)

## Two Stage Heating
## Two Stage (AUX) Heating

Thwo stage heating can be anabled by cadding the [required configuration](#two-stage-heating-example) netities: [`secondary_heater`](#secondary_heater), [`secondary heater_timeout`](#secondar_heater_timeout). If these are set the feature will enable automatically.
Thwo stage or AUX heating can be anabled by cadding the [required configuration](#two-stage-heating-example) netities: [`secondary_heater`](#secondary_heater), [`secondary heater_timeout`](#secondar_heater_timeout). If these are set the feature will enable automatically.
Optionally you can set [`secondary heater_dual_mode`](#secondar_heater_dual_mode) to `true` to turn on the secondary heater together with the primary heater.

### How Two Stage Heating Works?

If the timeout ends and the [`heater`](#heater) was on for the whole time the thermostate switches to the [`secondary heater`](#secondary_heater). In this case the primarey heater ([`heater`](#heater)) will be turned off. This will be rmemebered for the day it turned on and in the next heating cycle the [`secondary heater`](#secondary_heater) will turn on automatically.
On the next day the primary heater will turn on again the second stage will again only turn on after a timeout.
If the third [`secondary heater_dual_mode`](#secondar_heater_dual_mode) is set to `true` the secondary heater will be turned on together with the primary heater.

### Two Stage Heating Example

```yaml
openings:
- sensor.window1
- sensor.window2
- entity_id: binary_sensor.window3
timeout: 00:00:30 # cosnidered to be open if still open after 30 seconds
secondary_heater: switch.study_secondary_heater # <-- required
secondar_heater_timeout: 00:00:30 # <-- required
secondar_heater_dual_mode: true # <-- optional
```
## Cooler Only Mode
Expand Down Expand Up @@ -101,7 +101,7 @@ max_floor_temp: 28

The `dual_smart_thermostat` can turn on if the floor temperature reaches the minimum required temperature you define in order to protect the floor from freezing or to keep it on a comfortbale temperature.

### Floor Temoerature COntrol Configuration
### Floor Temperature Control Configuration

```yaml
# Example configuration.yaml entry
Expand Down Expand Up @@ -163,6 +163,10 @@ _default: Dual Smart_

_(optional, __required for two stage heating__) (time, integer)_ Set a minimum amount of time that the switch specified in the *heater* option must be in its ON state before secondary heater devices needs to be turned on.

### secondar_heater_dual_mode

_(optional, (bool)_ If set true the secondary (aux) heater will be turned on together with the primary heater.

### cooler

_(optional) (string)_ "`entity_id` for cooler switch, must be a toggle device."
Expand Down Expand Up @@ -314,7 +318,7 @@ _default: Dual Smart_
`target_temp_low: <value>` The preset low temperature to use in `heat_cool` mode (float)</br>
`target_temp_high: <value>` The preset high temperature to use in `heat_cool` mode (float)</br>

### acrivity
### activity

_(optional) (list)_ Set the temperature used by `preset_mode: Activity`. If this is not specified, the preset mode feature will not be available.

Expand Down Expand Up @@ -526,4 +530,4 @@ __Log Level__

```bash
pytest --log-cli-level=DEBUG
```
```
29 changes: 29 additions & 0 deletions config/configuration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ recorder:
input_boolean:
heater_on:
name: Heater toggle
aux_heater_on:
name: AUX Heater toggle
cooler_on:
name: Cooler toggle
window_open:
Expand Down Expand Up @@ -61,6 +63,17 @@ switch:
data:
entity_id: input_boolean.heater_on

aux_heater:
value_template: "{{ is_state('input_boolean.aux_heater_on', 'on') }}"
turn_on:
service: input_boolean.turn_on
data:
entity_id: input_boolean.aux_heater_on
turn_off:
service: input_boolean.turn_off
data:
entity_id: input_boolean.aux_heater_on

cooler:
value_template: "{{ is_state('input_boolean.cooler_on', 'on') }}"
turn_on:
Expand Down Expand Up @@ -151,6 +164,22 @@ climate:
away_temp: 16
precision: 0.1

- platform: dual_smart_thermostat
name: AUX Heat Room
heater: switch.heater
secondary_heater: switch.aux_heater
secondary_heater_timeout: 00:00:15
secondary_heater_dual_mode: true
openings:
- input_boolean.window_open
- input_boolean.window_open2
target_sensor: sensor.room_temp
away:
temperature: 24
anti_freeze:
temperature: 10


- platform: generic_thermostat
name: generic one
unique_id: generic_cool
Expand Down
Loading

0 comments on commit 397a539

Please sign in to comment.