swa72 / home-assistant

13 stars 1 forks source link

Heizkurve selber berechnen und mit korrigierter Version vergleichen #4

Open swa72 opened 2 years ago

swa72 commented 2 years ago
{# Fußpunkt #}
{% set min_hc1=states('sensor.thermostat_hc1_min_flow_temperature')|float %}
{% set min_hc2=states('sensor.thermostat_hc2_min_flow_temperature')|float %}
{# Endpunkt (hc_max_flow = Max. Vorlauftemperatur) #}
{% set design_hc1=states('sensor.thermostat_hc1_design_temperature')|float %}
{% set design_hc2=states('sensor.thermostat_hc2_design_temperature')|float %}
{# Sommertemperatur #}
{% set summer_hc1=states('sensor.thermostat_hc1_summer_temperature')|float %}
{% set summer_hc2=states('sensor.thermostat_hc2_summer_temperature')|float %}
{# Thermostat Temp, Zeitprogramm gesteuert #}
{% set selectedroom_hc1=states('sensor.thermostat_hc1_selected_room_temperature')|float
%}
{% set selectedroom_hc2=states('sensor.thermostat_hc2_selected_room_temperature')|float
%}
{# Raumtemperatur-Offset #}
{% set offset_hc1=states('sensor.thermostat_hc1_offset_temperature')|float %}
{% set offset_hc2=states('sensor.thermostat_hc2_offset_temperature')|float %}
{# Gedömpfte Außentemperatur #}
{% set t_out=states('sensor.thermostat_damped_outdoor_temperature')|float  %}
{# Min. Außentemperatur #}
{% set min_extern=states('sensor.thermostat_minimal_external_temperature')|float
%}
{% set roomreference=20|float %}
{% set correction=-8|float %}
{# overwrite for testing purposes #}
{% set t_out=11.9|float %} {# or use t_out=t_out #}
{% set offset_hc1=0|float %}
{% set selectedroom_hc1=20|float %}
{# ----------------------- #}
{# now the magic ...       #}
{# ----------------------- #}
{% set a = (min_hc1-design_hc1)/(roomreference-min_extern) %}
{% set b = (min_hc2-design_hc2)/(roomreference-min_extern|float) %}
{% set target_hc1 = design_hc1 + (((
                  (t_out - min_extern)
                  * a) + offset_hc1 )
                  )
                  + correction
                  %}
{% set target_hc2 = design_hc2 + (((
                  (t_out - min_extern)
                  * b) + offset_hc2 )
                  )
                  + (roomreference-selectedroom_hc2)*3
                  + correction
                  %}
{% if t_out >= summer_hc1 %} {% set target_hc1 = 5 %} {% endif %}
{% if t_out >= summer_hc2 %} {% set target_hc2 = 5 %} {% endif %}

HC1 Min/Fusspunkt ...  {{ min_hc1 }}°C
HC1 Design/Auslegung . {{ design_hc1 }}°C
HC1 Sommer ........... {{ summer_hc1 }}°C
HC1 Selected Room Temp {{ selectedroom_hc1 }}°C
HC1 offset ........... {{ offset_hc1 }}°C

HC2 Min/Fusspunkt {{ min_hc2 }}°C
HC2 Design/Auslegung {{ design_hc2 }}°C
HC2 Sommer {{ summer_hc2 }}°C
HC2 Selected Room Temp {{ selectedroom_hc1 }}°C
HC2 offset {{ offset_hc2 }}°C

Outside temp {{ t_out }} °C
Auslegungstemp {{ min_extern }}°C
Room Reference Temp {{roomreference}}°C

Result:
     Target HC1 {{target_hc1|round(0)}}°C
     Target HC2 {{target_hc2|round(0)}}°C
     Target temp heating {{ max(target_hc1+offset_hc1,
target_hc2+offset_hc2)|round(1) }}
##########################################
swa72 commented 2 years ago

Funzt noch nicht ...