Advertisement
KirboWnz

Air Conditioning

Jun 26th, 2023 (edited)
772
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 10.71 KB | None | 0 0
  1. alias: Temperature above/below target
  2. description: ""
  3. trigger:
  4.   - platform: state
  5.     entity_id:
  6.      - input_number.target_temperature_min
  7.       - input_number.target_temperature_max
  8.       - input_boolean.ilmastointi
  9.       - input_boolean.nukkumassa
  10.   - platform: template
  11.     alias: Above max
  12.     value_template: |-
  13.       {{
  14.         (states('sensor.keittio_olohuone_temperature')|float) > (states('input_number.target_temperature_max')|float)
  15.       }}
  16.     for:
  17.       hours: 0
  18.       minutes: 5
  19.       seconds: 0
  20.   - platform: template
  21.     alias: Below max and above min+0.5
  22.     value_template: |-
  23.       {{
  24.         (states('sensor.keittio_olohuone_temperature')|float) >= (states('input_number.target_temperature_min')|float+0.5) and
  25.         (states('sensor.keittio_olohuone_temperature')|float) <= (states('input_number.target_temperature_max')|float)
  26.       }}
  27.     for:
  28.       hours: 0
  29.       minutes: 10
  30.       seconds: 0
  31.   - platform: template
  32.     alias: Above min and below min+0.5
  33.     value_template: |-
  34.       {{
  35.         (states('sensor.keittio_olohuone_temperature')|float) >= (states('input_number.target_temperature_min')|float) and
  36.         (states('sensor.keittio_olohuone_temperature')|float) < (states('input_number.target_temperature_min')|float+0.5)
  37.       }}
  38.     for:
  39.       hours: 0
  40.       minutes: 10
  41.       seconds: 0
  42.   - platform: template
  43.     alias: Above min
  44.     value_template: |-
  45.       {{
  46.         (states('sensor.keittio_olohuone_temperature')|float) >= (states('input_number.target_temperature_min')|float)
  47.       }}
  48.     for:
  49.       hours: 0
  50.       minutes: 5
  51.       seconds: 0
  52.   - platform: template
  53.     alias: Below min
  54.     value_template: |-
  55.       {{
  56.         (states('sensor.keittio_olohuone_temperature')|float) < (states('input_number.target_temperature_min')|float)
  57.       }}
  58.     for:
  59.       hours: 0
  60.       minutes: 5
  61.       seconds: 0
  62.   - alias: Ulkona >= Max
  63.     platform: template
  64.     value_template: |
  65.      {{
  66.         (states('sensor.ruuvitag_takapiha_temperature')|float) >= (states('input_number.target_temperature_max')|float)
  67.       }}
  68.     for:
  69.       minutes: 15
  70.   - alias: Ulkona < Max
  71.     platform: template
  72.     value_template: |
  73.      {{
  74.         (states('sensor.ruuvitag_takapiha_temperature')|float) < (states('input_number.target_temperature_max')|float)
  75.       }}
  76.     for:
  77.       minutes: 15
  78.   - alias: Ulkona < Min
  79.     platform: template
  80.     value_template: |
  81.      {{
  82.         (states('sensor.ruuvitag_takapiha_temperature')|float) < (states('input_number.target_temperature_min')|float)
  83.       }}
  84.     for:
  85.       minutes: 15
  86. condition:
  87.   - condition: or
  88.     conditions:
  89.       - condition: template
  90.         alias: Above max
  91.         value_template: |-
  92.           {{
  93.             (states('sensor.keittio_olohuone_temperature')|float) > (states('input_number.target_temperature_max')|float)
  94.           }}
  95.       - condition: template
  96.         alias: Below max and above min+0.5
  97.         value_template: |-
  98.           {{
  99.             (states('sensor.keittio_olohuone_temperature')|float) >= (states('input_number.target_temperature_min')|float+0.5) and
  100.             (states('sensor.keittio_olohuone_temperature')|float) <= (states('input_number.target_temperature_max')|float)
  101.           }}
  102.       - condition: template
  103.         alias: Above min and below min+0.5
  104.         value_template: |-
  105.           {{
  106.             (states('sensor.keittio_olohuone_temperature')|float) >= (states('input_number.target_temperature_min')|float) and
  107.             (states('sensor.keittio_olohuone_temperature')|float) < (states('input_number.target_temperature_min')|float+0.5)
  108.           }}
  109.       - condition: template
  110.         alias: Below min
  111.         value_template: |-
  112.           {{
  113.             (states('sensor.keittio_olohuone_temperature')|float) < (states('input_number.target_temperature_min')|float)
  114.           }}
  115. action:
  116.   - choose:
  117.       - conditions:
  118.           - condition: or
  119.             conditions:
  120.               - condition: template
  121.                 alias: Above max
  122.                 value_template: |-
  123.                   {{
  124.                     (states('sensor.keittio_olohuone_temperature')|float) > (states('input_number.target_temperature_max')|float)
  125.                   }}
  126.               - condition: template
  127.                 alias: Below max and above min+0.5
  128.                 value_template: |-
  129.                   {{
  130.                     (states('sensor.keittio_olohuone_temperature')|float) >= (states('input_number.target_temperature_min')|float+0.5) and
  131.                     (states('sensor.keittio_olohuone_temperature')|float) <= (states('input_number.target_temperature_max')|float)
  132.                   }}
  133.                 enabled: true
  134.           - condition: state
  135.             entity_id: input_boolean.ilmastointi
  136.             state: "on"
  137.           - condition: or
  138.             conditions:
  139.               - condition: template
  140.                 value_template: |-
  141.                   {{
  142.                     (states('sensor.ruuvitag_takapiha_temperature')|float) < (states('input_number.target_temperature_max')|float)
  143.                     and (states('sensor.keittio_olohuone_temperature')|float) > (states('input_number.target_temperature_max')|float)
  144.                   }}
  145.                 alias: Ulkona alle max ja sisällä yli max
  146.               - alias: Ulkona >= max
  147.                 condition: template
  148.                 value_template: |-
  149.                   {{
  150.                     (states('sensor.ruuvitag_takapiha_temperature')|float) >= (states('input_number.target_temperature_max')|float)
  151.                   }}
  152.         sequence:
  153.           - service: climate.set_fan_mode
  154.             data:
  155.               fan_mode: |-
  156.                 {% if is_state('input_boolean.nukkumassa', 'on') %}
  157.                   low
  158.                 {% else %}
  159.                   low{# auto #}
  160.                 {% endif %}
  161.             target:
  162.               entity_id: climate.electrolux_climate
  163.           - service: climate.set_hvac_mode
  164.             data:
  165.               hvac_mode: cool
  166.             target:
  167.               entity_id: climate.electrolux_climate
  168.           - service: climate.set_temperature
  169.             data:
  170.               temperature: |-
  171.                 {{
  172.                   states('input_number.target_temperature_min')|float|round(0, 'floor') -1
  173.                 }}
  174.             target:
  175.               entity_id: climate.electrolux_climate
  176.           - service: climate.turn_on
  177.             target:
  178.               entity_id: climate.electrolux_climate
  179.             data: {}
  180.       - conditions:
  181.           - condition: template
  182.             alias: Above min and below min+0.5
  183.             value_template: |-
  184.               {{
  185.                 (states('sensor.keittio_olohuone_temperature')|float) >= (states('input_number.target_temperature_min')|float) and
  186.                 (states('sensor.keittio_olohuone_temperature')|float) < (states('input_number.target_temperature_min')|float+0.5)
  187.               }}
  188.           - condition: state
  189.             entity_id: input_boolean.ilmastointi
  190.             state: "on"
  191.           - condition: template
  192.             value_template: |-
  193.               {{
  194.                 (states('sensor.ruuvitag_takapiha_temperature')|float) < (states('input_number.target_temperature_max')|float)
  195.                 and (states('sensor.keittio_olohuone_temperature')|float) > (states('input_number.target_temperature_max')|float)
  196.               }}
  197.             alias: Ulkona alle max ja sisällä yli max
  198.         sequence:
  199.           - service: climate.set_hvac_mode
  200.             data:
  201.               hvac_mode: fan_only
  202.             target:
  203.               entity_id: climate.electrolux_climate
  204.           - service: climate.set_temperature
  205.             data:
  206.               temperature: |-
  207.                 {{
  208.                   states('input_number.target_temperature_min')|float|round(0, 'floor') -1
  209.                 }}
  210.             target:
  211.               entity_id: climate.electrolux_climate
  212.           - service: climate.set_fan_mode
  213.             data:
  214.               fan_mode: |-
  215.                 {% if is_state('input_boolean.nukkumassa', 'on') %}
  216.                   low
  217.                 {% else %}
  218.                   low{# auto #}
  219.                 {% endif %}
  220.             target:
  221.               entity_id: climate.electrolux_climate
  222.           - service: climate.turn_on
  223.             target:
  224.               entity_id: climate.electrolux_climate
  225.             data: {}
  226.       - conditions:
  227.           - condition: template
  228.             alias: Temp not up-to-date
  229.             value_template: |-
  230.               {{
  231.                 state_attr('climate.electrolux_climate', 'temperature') != states('input_number.target_temperature_min')|float|round(0, 'floor') -1
  232.               }}
  233.           - condition: state
  234.             entity_id: input_boolean.ilmastointi
  235.             state: "on"
  236.         sequence:
  237.           - service: climate.set_temperature
  238.             data:
  239.               temperature: |-
  240.                 {{
  241.                   states('input_number.target_temperature_min')|float|round(0, 'floor') -1
  242.                 }}
  243.             target:
  244.               entity_id: climate.electrolux_climate
  245.       - conditions:
  246.           - condition: or
  247.             conditions:
  248.               - condition: template
  249.                 alias: Below min
  250.                 value_template: |-
  251.                   {{
  252.                     (states('sensor.keittio_olohuone_temperature')|float) < (states('input_number.target_temperature_min')|float)
  253.                   }}
  254.               - condition: state
  255.                 entity_id: input_boolean.ilmastointi
  256.                 state: "off"
  257.               - alias: Ulkona < minimi
  258.                 condition: template
  259.                 value_template: |-
  260.                   {{
  261.                     (states('sensor.ruuvitag_takapiha_temperature')|float) < (states('input_number.target_temperature_min')|float)
  262.                     and (states('sensor.keittio_olohuone_temperature')|float) < (states('input_number.target_temperature_min')|float) + 0.5
  263.                   }}
  264.         sequence:
  265.           - service: climate.turn_off
  266.             target:
  267.               entity_id: climate.electrolux_climate
  268.             data: {}
  269.       - conditions:
  270.           - condition: state
  271.             entity_id: input_boolean.nukkumassa
  272.             state: "on"
  273.           - condition: state
  274.             entity_id: climate.electrolux_climate
  275.             state: cool
  276.         sequence:
  277.           - service: climate.set_fan_mode
  278.             data:
  279.               fan_mode: |-
  280.                 {% if is_state('input_boolean.nukkumassa', 'on') %}
  281.                   low
  282.                 {% else %}
  283.                   low{# auto #}
  284.                 {% endif %}
  285.             target:
  286.               entity_id: climate.electrolux_climate
  287. mode: restart
  288.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement