Optimize autonomous heating with Home Assistant via automatic climate control

8 minutes of reading
PURPOSES OF PROJET:
  • Efficientare domestic heating alongside - in a measured and automatic way - an independent air conditioning system. The procast consists of the definition of an automation Home Assistant designed for this purpose.
  • Difficulty level: medium / high
  • Cost: null
CONCEPTS FACED:
  • logic of domestic heating
  • software configuration
SOFTWARE COMPONENTS USED:
PHYSICAL DEVICES USED:
  • none other than those taken for granted in the abstract of projet, which provides for the coexistence of an independent heating system and an air conditioner
GUIDE MOST INDICATED FOR:

All environments

Notes and disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere progettata ed effettuata da personale qualificato;
  • any changes implemented in probefore is a propersonal responsibility as well as a profirst risk and danger (the contents of the present page are purely educational);
  • any changes implemented in proprior to a device it voids the guarantee, quality approvals and certifications.
revision projet: 2.1

Abstract

Many modern homes they have independent heating systems (radiators, underfloor heating, mixed heating, etc.) dedicated to the winter season and air conditioners for cooling for the summer season.

RadiatorWhat many they do not know it is the fact that, during the cold season, the use of the air conditioner - usually used in summer in "cooling" mode - can help us in an important way also in the winter season. The modern units, in fact, are also equipped with a heating function, a function we will see through this procast, how it can be useful to us to increase comfort of our environments and help us to save a lot on the energy account.

Traditional radiator heating systems have the advantage of maintaining with good energy efficiency, the temperature inside the environments in which they are installed; on the contrary, they present a big inefficiency in the initial heating phase, or when it comes to raising the room temperature from a starting temperature X to a target temperature Y. That is the phase in which the energy yield is lower: it is in fact necessary much energy to raise the water temperature contained in the radiator circuit, start the heat exchange between the radiator units and the air and raise so - even of a degree - the temperature of the environment. This is even more true for underfloor heating: the time of warm up it is even longer and inefficient, while once it is up and running efficiency is excellent.

Conversely, air conditioners are highly efficient in quickly heating an environment they have it low in maintenance of the same over time.

This projet illustrates how to achieve an important efficiency in terms of comfort and savings through the combined use of the two heating technologies in the respective phases of maximum energy efficiency.

It starts

Assumptions

So that this procast can be implemented it is necessary that in the environment are already present:

and that these elements are already configured at Home Assistant.

We will assume, for the rest of the procast, which entity defined at Home Assistant call them:

  • the heating system: climate.riscaldamento
  • the air conditioner: climate.condizionatore

Finally, we will take the presence for granted of a thermal sensor (which more often than not could also be understood as "indirect reading sensor“, As deriving from the attributes available from the entity climate.riscaldamento), so called:

  • thermal sensor: sensor.temperatura

Other assumptions are present along the way in projet.

Philosophy of projet

What we're going to do is to write aautomation (we'll call it "Heat Boost") which, upon automatic or manual activation of the thermostat (and therefore of the independent heating), carries out, after one or more checks of the surrounding conditions, the switching on of the air conditioner in "heating" mode and, after a certain time, the switch off.

This will cause the two plants they start practically simultaneously. The air conditioner prowill see to supply the thermal "starting point" while in the meantime the autonomous heating prohe will see that he is up to speed. After a certain period of time, the air conditioner will be switched off, leaving the traditional system with the burden of maintaining the temperature.

The approdescribed has the advantage of being completely disconnected from the logic of prothermostat setting: that it is proprogrammed on a time basis, which is activated manually, which uses automations linked to the gps position of the occupants of the environment or of another type, this automation will come into play automatically to ensure maximum efficiency.tado° thermostat

In reality we will refine the automation to make it even more "Invisible" and functional as described above.

First, the conditio sine qua non for its execution will consist in the fact that the difference between the "target" temperature of the thermostat and the temperature of the environment is greater than or equal to 2 ° centigrade. This is because a lower difference would not justify engaging the air conditioner.

Furthermore, the climate control activation command must - as is obvious - contain itself the indication of the target temperature to be reached; this temperature will be set a degree below that of target of the thermostat that controls the independent heating. The reason is simple: since the air conditioner will be quick to heat the room air volume, setting the target temperature like the thermostat could cause this temperature to be reached before the time for switching off the air conditioner therefore bringing the thermostat to an incorrect deactivation, as it is set to the same target temperature.

Finally, the speed of the ventilation of the air conditioner it is all the more effective as it is higher, but more is high more is noisy. We will ensure that it is activated in maximum mode in the absence of occupants at home and in media mode in case of presence.

Let's look at a practical case:

  • operating time of the thermostat: 07 hours: 00
  • target temperature of the thermostat (TTT): 21 °
  • room temperature (TA): 17 °
  • occupants: present

Sequence to suffer from 07: 00:

  • are the 7? Yup
  • è TTT> TA? Yes, therefore activation of independent heating (traditional behavior)
  • the activation of the independent heating triggers our "Heat Boost" automation
  • TTT - TA is greater / equal to 2 ° ?: Yes (21 ° -17 ° = 4 °), valid automation
  • activation of the air conditioner at a target temperature equal to TTT-1 ° (21 ° -1 ° = 20 °) and a "medium" ventilation speed.

At this point both systems will work together: the air conditioner will continue to "push" until it reaches the 20 ° (going out, regardless, after a certain number of minutes, adjustable), while the independent heating will heat up until it reaches probefore target temperature (TTT) of 21 °. If the air conditioner reaches the proat target temperature before of the end of its "operating time", will wait for the probefore switching off while maintaining the status of simple ventilation.


Let's see another case:

  • operating time of the thermostat: 17 hours: 00
  • target temperature of the thermostat (TTT): 21 °
  • room temperature (TA): 20 °
  • occupants: absent

Sequence to suffer from 17: 00:

  • are the 17? Yup
  • è TTT> TA? Yes, therefore activation of independent heating (traditional behavior)
  • the activation of the independent heating triggers our "Heat Boost" automation
  • TTT - TA is greater / equal to 2 ° ?: No (21 ° -20 ° = 1 °), automation invalid
  • the automation stops and only the autonomous heating remains in execution.

Let's see a third and last case:

  • operating time of the thermostat: 15 hours: 00
  • target temperature of the thermostat (TTT): 21 °
  • room temperature (TA): 19 °
  • occupants: absent

Sequence to suffer from 15: 00:

  • are the 15? Yup
  • è TTT> TA? Yes, therefore activation of independent heating (traditional behavior)
  • the activation of the independent heating triggers our "Heat Boost" automation
  • TTT - TA is greater / equal to 2 ° ?: Yes (21 ° -19 ° = 2°), valid automation
  • activation of the air conditioner at a target temperature equal to TTT-1 ° (21 ° -1 ° = 20 °) and a "maximum" ventilation speed (because there is no one at home).

And so on.

Analysis

The present projet it's a trace - hopefully well-structured, but still a trace. It is evident that every user who decides to implement this technique must do so by adapting it to the procontext in terms of entity Home Assistant, of air conditioning time duration, of threshold temperatures and so on.

Among the first things to do it will therefore be possible to understand the scenarios relating to the automatisms of proits thermostat and what are the useful entities propria personalization (trivially: which one communicates to Home Assistant activation / deactivation of the thermostat).

In 'automation that we are going to write we will take for granted the following additional entities, in addition to the basic ones indicated in hiring:

Entity nameDescription
group.awesome_peoplegroup Device Tracker which state determines the presence of at least one occupant of the domotic environment or the absence of all
climate.riscaldamento.attributes.temperatureattribute of climate.riscaldamento that rappresists the thermostat target temperature (TTT)
binary_sensor.heating
binary sensor that rappresets the activation / deactivation status of the thermostat (if 'on', the system is heating up)

Implementation of automation

Theautomation, as usual on Home Assistant, is defined by three blocks, trigger (activation), condition (condition) e action (action).

TRIGGER

That that triggers automation we anticipated to be the detection by Home Assistant, status change from "disabled" to "active" of the thermostat connected to the independent heating system.

Let's see this block:

- alias: Heat boost
  trigger:
    platform: state
    entity_id: binary_sensor.heating
    from: 'off'
    to: 'on'

In this example we have assumed that the entity in charge of detecting this state is a binary sensor named binary_sensor.heating which, when it becomes 'off' from 'on' means that the plant has begun to heat up.

Sometimes (depending on the thermostat in use), such entity could be different and the block trigger should be modified in relation to the type and the data collected. For example the tado° the aforementioned envisages, based on its integration component, the use of a numeric type sensor which rappenter a number from 0 to 100. 0 rappresets the shutdown, each higher value rappresets ignition.

In the case, the block "TRIGGER" it would have been:

- alias: Heat boost
  trigger:
    platform: numeric_state
    entity_id: sensor.nomedelsensore
    above: 0

CONDITION

We have said that the condition for which automation is considered valid and which thus allows the execution of the proman action is linked to the fact that the difference between the temperature of the environment and the target temperature of the thermostat is at least 2 °.

Therefore:

  condition:
    condition: template
    value_template: "{{ ((states.climate.riscaldamento.attributes.temperature | float) - (states.sensor.temperatura.state | float|round(1))) >= 2 }}"

ACTION

Finally, the action.
To make it a bit more readable we will define a script that will be invoked inside the block “ACTION"
We will call it "heat_boost_sequence"

This sequence will receive a variable, "fanmodevalue"(Sent by the evocation in the block"ACTION") Which it will contain how to turn on the fans, determined based on the presence / absence of the occupants of the domotic environment ('media' if present, 'maximum' if absent).

Let's see the script:

script:
  heat_boost_sequence:
    sequence:
      - service: climate.set_hvac_mode
        data:
          entity_id: climate.condizionatore
          hvac_mode: 'Heat'
      - service: climate.condizionatore
        data_template:
          entity_id: climate.condizionatore
          temperature: '{{ (states.climate.riscaldamento.attributes.temperature | int) - 1 }}'
      - service: climate.set_fan_mode
        data_template:
          entity_id: climate.condizionatore
          fan_mode: '{{ fanmodevalue }}'
      - delay:
          minutes: 20
      - service: climate.set_hvac_mode
        data:
          entity_id: climate.condizionatore
          hvac_mode: "Off"

As can be easily understood, the sequence consists of five actions:

  • activation of climate.condizionatore in 'heat' mode;
  • setting its target temperature (one degree less than that of climate.riscaldamento);
  • setting his ventilation speed;
  • wait for 20 minutes (value depending on the user's will);
  • deactivation of climate.condizionatore.

Finally, we see the block "ACTION" true and proprio:

  action:
    - service: script.turn_on
      entity_id: script.heat_boost_sequence
      data_template:
        variables:
          fanmodevalue: "{% if states.group.awesome_people.state == 'home' %}mid{% else %}highest{% endif %}"

which it evokes script.heat_boost_sequence and which enhances fanmodevalue based on the presence or absence of occupants.

automation final will therefore be:

automation:
- alias: Heat boost
  trigger:
    platform: state
    entity_id: binary_sensor.heating
    from: 'off'
    to: 'on'
  condition:
    condition: template
    value_template: "{{ ((states.climate.riscaldamento.attributes.temperature|float) - (states.sensor.temperatura.state|float))|round(1) >= 2 }}"
      entity_id: script.heat_boost_sequence
      data_template:
        variables:
          fanmodevalue: "{% if states.group.awesome_people.state == 'home' %}mid{% else %}highest{% endif %}"
  action:
    - service: script.turn_on
      entity_id: script.heat_boost_sequence
      data_template:
        variables:
          fanmodevalue: "{% if states.group.awesome_people.state == 'home' %}mid{% else %}highest{% endif %}"

Timing

In addition, one of the most distinctive features of a thermostat is - in addition to the temperature evaluation - the possibility of timing ignitions. Given nature "Climate”Of the entities dealt with in the present projet, reading is also recommended of this other projet.

conclusions

As explained, this projet is a skeleton, a trace, which can give rise to to many specific customizations. In the "Heat Boost" script, for example, notifications, different conditions or longer or smaller waiting times could be added.

Obviously, all the difference in the world will be made by the commitment you put in and, above all, by an analysis made as god commands.


Home Assistant Official LogoATTENZIONE: remember that there is on our FORUM community an ad hoc section dedicated to Home Assistant, for any doubt, question, information on the specific merit of these components.


Please comment below