Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alias: "WP: Sub-Logik Aufheizen (Universell mit Landebahn)"
- description: >-
- Fährt die WP kontrolliert an jedes Ziel. Nutzt die historische
- Defrost-Ziel-Landebahn für alle regulären Heizstarts.
- triggers:
- - seconds: /30
- trigger: time_pattern
- conditions:
- - condition: state
- entity_id: input_boolean.wp_modus_aufheizen
- state: "on"
- actions:
- - variables:
- current_f: "{{ states('sensor.frequenz_vd') | int(25) }}"
- current_soll_f: "{{ states('input_number.sollfrequenz') | int(40) }}"
- is_boost: "{{ is_state('input_boolean.wp_pv_boost', 'on') }}"
- ist: "{{ states('sensor.vorlauf_stabil') | float(0) }}"
- boost_temp: "{{ states('input_number.wp_pv_boost_temp') | float(45) }}"
- heizkurve_temp: "{{ states('number.heizkurve') | float(35) }}"
- at_max_f: "{{ states('sensor.wp_maximale_frequenz_nach_at') | int(30) }}"
- is_rampe: "{{ is_state('timer.wp_start_rampe', 'active') }}"
- target_f_base: "{{ states('input_number.frequenz_target_after_defrost') | int(30) }}"
- - action: input_number.set_value
- target:
- entity_id: input_number.sollfrequenz
- data:
- value: >
- {% set soll = boost_temp if is_boost else heizkurve_temp %} {% set
- delta = soll - ist %} {% set effective_max_f = 60 if is_boost else
- at_max_f %}
- {% if is_rampe and not is_boost %}
- 50
- {% else %}
- {% set new_f = current_f %}
- {% if ist < (soll - 0.2) %}
- {% if delta > 2.5 %}
- {% set new_f = current_f + 7 %}
- {% elif delta > 1.2 %}
- {% set new_f = current_f + 3 %}
- {% elif delta > 0.4 %}
- {% if is_boost %}
- {% if current_f < effective_max_f %}
- {% set new_f = current_f + 1 %}
- {% endif %}
- {% else %}
- {% set landebahn = target_f_base + 5 %}
- {% if current_f > landebahn %}
- {% set new_f = current_f - 3 %}
- {% elif current_f < landebahn %}
- {% set new_f = current_f + 1 %}
- {% endif %}
- {% endif %}
- {% else %}
- {% if is_boost %}
- {% if current_f < effective_max_f %}
- {% set new_f = current_f + 1 %}
- {% endif %}
- {% else %}
- {% set punktlandung = target_f_base + 3 %}
- {% if current_f > punktlandung %}
- {% set new_f = current_f - 2 %}
- {% elif current_f < punktlandung %}
- {% set new_f = current_f + 1 %}
- {% else %}
- {% set new_f = punktlandung %}
- {% endif %}
- {% endif %}
- {% endif %}
- {% else %}
- {% set brake_step = 3 %}
- {% set new_f = current_soll_f - brake_step %}
- {% endif %}
- {% if new_f > effective_max_f %}
- {{ effective_max_f }}
- {% elif new_f < 20 %}
- 20
- {% else %}
- {{ new_f }}
- {% endif %}
- {% endif %}
- mode: restart
Advertisement
Add Comment
Please, Sign In to add comment