• 1 Post
  • 2 Comments
Joined 7 months ago
cake
Cake day: June 30th, 2024

help-circle
  • I use the generic thermostat but I want to switch the TRVs to different temperatures/states depending on a schedule and if we are at home or not. The automation changed over the last 3 or 4 years but basicly it was one of my first experiments with HA. It worked flawless and did what it should.

    Maybe it’s not the best or refined but it worked.

    triggers:
      - entity_id:
          - sensor.wohnzimmer_temp
        trigger: state
    conditions:
      - condition: and
        conditions:
          - condition: state
            state: "off"
            entity_id: binary_sensor.balkontur_contact
          - condition: state
            entity_id: input_boolean.wohnzimmer_heizung
            state: "on"
          - condition: template
            value_template: >-
              {% if states('input_boolean.away_mode')=='off' %} {% if
              states('schedule.testkalender')=='on' %} {{
              states('sensor.wohnzimmer_temp') | float <
              states('input_number.wohnzimmer_temperatur_tag') | float + 1 }} {%
              else %} {{ states('sensor.wohnzimmer_temp') | float <
              states('input_number.wohnzimmer_temperatur_nacht') | float + 1 }} {%
              endif %} {% else %} {{ (states('sensor.wohnzimmer_temp') | float) |
              round  < states('input_number.temperatur_away_mode') | float + 1 }} {%
              endif %}
            enabled: true
    actions:
      - action: climate.set_temperature
        target:
          entity_id: climate.heizung_wohnzimmer
        data:
          temperature: |
            {% if states('schedule.testkalender')=='on' %}
              {{ states('input_number.wohnzimmer_temperatur_tag') | int + states('input_number.wohnzimmer_heizung_offset') | int }}
            {% else %}
              {{ states('input_number.wohnzimmer_temperatur_nacht') | int }}
            {% endif %}
          hvac_mode: |
            {% if states('input_boolean.away_mode')=='off' %}
              {% if states('schedule.testkalender')=='on' %}
                {% if states('sensor.wohnzimmer_temp') | float < states('input_number.wohnzimmer_temperatur_tag') | float %}
                  heat
                {% else %}
                  off
                {% endif %}
              {% else %}
                {% if states('sensor.wohnzimmer_temp') | float < states('input_number.wohnzimmer_temperatur_nacht') | float %}
                  heat
                {% else %}
                  off
                {% endif %}
              {% endif %}
            {% else %}
              {% if states('sensor.wohnzimmer_temp') | float < states('input_number.temperatur_away_mode') | float %}
                heat
              {% else %}
                off
              {% endif %}
            {% endif %}       
    mode: single