🔥 Advanced Heating Control

thanks ur fast :slight_smile:

  1. The name is not changed (Edit: Complet new Import, than it works)
  2. something is changed right, but already wrong :see_no_evil: { "trace": { "last_step": "action/3/default/0/else/0/then/1/repeat/seque - Pastebin.com
  3. sorry i mean in the card layout, so i think you need an input_number or input_boolien to put the offset in there to integrate it in the card right, make is sence what you think?

@Asen

type: vertical-stack
cards:
  - type: custom:simple-thermostat
    entity: climate.better_thermostat_wohnzimmer
    layout:
      step: row
      mode:
        headings: false
        icons: true
        names: false
    header:
      name: Wohnzimmer
    version: 3
    sensors:
      - id: state
        label: 'Aktion:'
        template: '{{hvac_action|translate(''state_attributes.climate.hvac_action.'')}}'
      - entity: sensor.wohnzimmer_temperatursensor_snzb_02_temperature
        id: temperature
        label: 'Aktuell:'
        template: '{{state.text|formatNumber}}{{unit_of_measurement}}'
      - entity: sensor.wohnzimmer_comet_dect_batterie
        label: 'Akku:'
        template: '{{state.text}}{{unit_of_measurement}}'
  - type: custom:simple-thermostat
    entity: climate.wohnzimmer_comet_dect
    layout:
      step: row
      mode:
        headings: false
        icons: true
        names: true
    control:
      preset:
        comfort: false
        eco: false
    header:
      name: Wohnzimmer
    version: 3
    sensors:
      - id: state
        label: 'Aktion:'
      - entity: sensor.wohnzimmer_temperatursensor_snzb_02_temperature
        id: temperature
        label: 'Aktuell:'
        template: '{{state.text|formatNumber}}{{unit_of_measurement}}'
      - entity: sensor.wohnzimmer_comet_dect_batterie
        label: 'Akku:'
        template: '{{state.text}}{{unit_of_measurement}}'
  - type: entities
    entities:
      - entity: input_boolean.heizperiode
        name: Heizperiode
        show_state: true
        state_color: true
        toggle: true
        state_header: Heizperiode
        icon: mdi:thermostat-box-auto
        styles:
          width: 60px
          text-align: right
        type: custom:multiple-entity-row
        entities:
          - entity: automation.advanced_heating_control_wohnzimmer
            name: Scheduler (OFF DA DEV Version AKTIV)
            toggle: true
      - entity: input_number.advanced_heating_control_wohnzimmer_comfort_temperature
        name: 'Automatik '
      - entity: input_boolean.advanced_heating_control_wohnzimmer_party_mode
        name: Modus
        show_state: true
        toggle: true
        state_header: Party
        icon: mdi:arrow-decision
        styles:
          width: 60px
          text-align: right
        type: custom:multiple-entity-row
        entities:
          - entity: input_boolean.advanced_heating_control_wohnzimmer_guest_mode
            name: Gast
            toggle: true
      - entity: input_boolean.advanced_heating_control_urlaub
        name: Urlaub
      - entity: climate.wohnzimmer_comet_dect
        name: Comet DECT *Manuell*
    state_color: true
    show_header_toggle: false
  - type: custom:mini-graph-card
    entities:
      - entity: sensor.wohnzimmer_temperatursensor_snzb_02_temperature
        show_state: true
        name: Temperatur
      - entity: sensor.wohnzimmer_temperatursensor_snzb_02_humidity
        show_state: true
        name: Humidity
        y_axis: secondary
    hours_to_show: 24
    line_width: 3
    hour24: ture
    show:
      name: false
      legend: true
      icon: false
      labels: true
      labels_secondary: true

2 Likes

No, I’ve added a new yaml file to separate it better in home assistant:

The import button for the test version in the first post is linked to it, too.

// Offset is basically calculated this way:

{% set climate_entity_id = 'climate.thermostat' %}
{% set external_temp_sensor = 'sensor.temperature' %}
{% set comfort_temp_input_number = 'input_number.comfort_temperature' %}

{% set comfort_temp = states(comfort_temp_input_number) %}
{% set sensor_temp = states(external_temp_sensor) %}
{% set climate_temp = state_attr(climate_entity_id,'current_temperature') %}
{% set offset = float(sensor_temp) - float(climate_temp) %}
{% set offset_rounded = (offset | float(0) / float(0.5)) | round(0) * float(0.5) %}
{% set climate_target_temp = state_attr(climate_entity_id,'temperature') %}


Comfort Temp: {{ comfort_temp }}
External Sensor Temp: {{ sensor_temp }}
Climate Temp: {{ climate_temp }}
Offset: {{ offset }}
Offset Rounded: {{ offset_rounded }}
Climate Target Temp: {{ climate_target_temp }}
Is Offset Set: {{ float(comfort_temp) == float(climate_target_temp) - float(offset_rounded) }}

hmm, i dont know.

Comfort-Temp = 25C
Ist-Temp is 21 (external)
why your Automation set the temp with offset to 22C? → lower than the comfort-temp

Whats the current_temperature of your valve?

the current on the Thermostat is 24C

External Sensor: 21°C
Current Valve temp: 24°C

Offset: 21 - 24 = -3°C

So the valve measures 3 degrees higher as it is.

That means the valve musst be throttled down:

Comfort Temperature = 25°C + (-3°C) = 22°C

New Calibrated Target Temp for the valve is 22°C

//EDIT: ah wait. Then the valve would close. You’re right.

i my oppinion it makes more sence to take the comfort-themp instead the thermostat temp.

The comfort temperature is the base and should represent the real temperature you want to reach.

But it’s taken for the new value of the temperature valve. I have to subtract the offset from the comfort temperature instead of add it.

I can’t manipulate the comfort temperature because it doesn’t work like this for more than one valve because each valve needs another offset. Thats why the temperature and offset will be calculated for every valve individually.

// I’ve updated the blueprint again. Now the offset gets subtracted instead added to the comfort temperature / min temperature. That new value will be set as climate target temperature. It gets calculated every time the external sensor, current temperature of the valve or comfort temperature changed.

Thank you, now it looks better, but not perfect :slight_smile:
see picture (automatik is comfort temp), the comfort temp is reached but the temp with offset is already higher than the comfort temp.

maybe we can add some extra logics? but better a s before.

image

Yes, but your valve measures 23°C and is set to 22,5°C that means it will close. Don’t know what’s there to improve.

aah your right, my mistake.
now i can uninstall better thermostat :grin: :+1:

1 Like

V4

  • Minimum temp not working, stays on comport-temp
  • Holiday activ, ignores scheduler, always heating

Edith: Need to Check it again, this moring was minimal activ

1 Like

There were only changes when setting the temps for each valve separately. Logic to find out mode or base temp (min / comfort) hasn’t been touched. Maybe there is something delayed in your case.

Good morning!

First of all, thank you very much for your work - I have been using Better Thermostat and ECO Hearting Ultimate so far, but I now have some problems with the temperature control of BT and would like to test your Blueprint - I have two TRV in the living room that I was able to integrate individually into BT - is there an option in your Blueprint to integrate several TRVs in one room?

Kind Regards!
Michael

1 Like

Hi,

yes, the blueprint is designed for single heating areas like a closed room. You can add as many TRVs as you like in a single automation based on this blueprint.

1 Like

Can I ask for some clarification on this feature please

“A person who’s home home…”

Should this be “A person who is not home…” as that would make more sense?

Does that mean that if no defined person is home, there will be no heating even if the schedule is on?

Thnaks.

Hey, this option is not available anymore on recent version. This was only a workaround because there was an issue when using presence detection combined with persons/people.
With the latest version it works as expected: If you define persons and presence detection person must be home and detection true for heating.
If you only define a presence detector heating is on when presence is detected.

Have a look here: https://github.com/panhans/HomeAssistant/blob/f425c1c85014d1c50b49b0193ce51739e1b0e01e/docs/advanced%20heating%20control/readme_advanced_heating_control.md#3-Combination-Overview

1 Like

Rduction at night should be a reduced target temperature or if this is not possible to tun them off, right.
I turn the climates off with a separate automation, but if Home Assistant starts up during the night (update time for instance) then there is the the default target temperature again.

I think what you are looking for maybe is the ‘Time Based Comfort Temperature Heating Plan’ available in version 4.

If you didn’t setup any heating for the night the automation based on this blueprint lower the temperatures to the minimum temperature you’ve setup. This also works after home assistant restarted. There is a start trigger implemented: the automation waits 30s until everything is initialized, finds out the temp (confort or min) based on your configuration and set it.
If your valves set to comfort I would say there is something misconfigured. You could share a trace log of this point when comfort was set instead of min. Then I can check what’s going on.

Be sure using latest version and check your valves that internal or integration dependend schedulers are disabled.

2 Likes