blueprint: name: Auto AC Control description: Auto Turn on Air Conditioning domain: automation author: Tiziano Trabattoni input: temp_threshold: name: Temperature Threshold to switch AC on description: This threshold is the temperature above which AC must be switched on default: 29.0 selector: number: min: 25.0 max: 40.0 step: 0.5 unit_of_measurement: celsius temp_hist: name: Temperature Histeresys from off to on description: This gap is difference between on and off default: 2.0 selector: number: min: 1.0 max: 4.0 step: 0.5 unit_of_measurement: celsius climate_target: name: Termostat Control description: Identifies the AC climate to be controlled selector: entity: filter: - domain: climate mode: restart variables: target_AC: !input climate_target target_temp: !input temp_threshold target_hist: !input temp_hist triggers: - trigger: state entity_id: !input climate_target attribute: current_temperature conditions: [] actions: - choose: # CONDITION 1: Turn AC ON & Adjust Fan - conditions: - condition: template value_template: "{{ state_attr(target_AC, 'current_temperature') | float(0) >= target_temp }}" - condition: or conditions: - condition: state entity_id: !input climate_target state: "off" - condition: state entity_id: !input climate_target state: "heat_cool" - condition: state entity_id: !input climate_target state: "dry" - condition: state entity_id: !input climate_target state: "fan_only" sequence: - action: climate.set_hvac_mode target: entity_id: !input climate_target data: hvac_mode: cool - action: climate.set_fan_mode target: entity_id: !input climate_target data: fan_mode: >- {% set curr_temp = state_attr(target_AC, 'current_temperature') | float(0) -%} {% set targ_temp = state_attr(target_AC, 'temperature') | float(0) -%} {% set diff_temp = curr_temp - targ_temp -%} {% if diff_temp >= 4.0 -%} 5 {% elif diff_temp >= 3.5 and diff_temp < 4.0 -%} 4 {% elif diff_temp >= 3.0 and diff_temp < 3.5 -%} 3 {% elif diff_temp >= 1.5 and diff_temp < 3.0 -%} 2 {% else -%} Auto {% endif %} # CONDITION 2: Turn AC OFF (Hysteresis) - conditions: - condition: template value_template: >- {{ state_attr(target_AC, 'current_temperature') | float(0) <= (target_temp | float(0) - target_hist | float(0)) }} - condition: state entity_id: !input climate_target state: "cool" sequence: - action: climate.turn_off target: entity_id: !input climate_target