1223 lines
32 KiB
YAML
1223 lines
32 KiB
YAML
- alias: ATP Guest Overnight Limit Damper Overheat Overcool 2200 - 0630
|
|
description: This automation simply stops the room damper opening past a certian
|
|
percentage. When a single room is heating / cooling at night the Airtouch would
|
|
completely open the damper and as a result the room would get very hot or cold.
|
|
This was particularly noticable in smaller rooms. This automation reduces the
|
|
maximum heating or cooling to the room.
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- cover.pa_guest_damper
|
|
attribute: current_position
|
|
above: 61
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 2
|
|
conditions:
|
|
- alias: HVAC is in heating or cooling mode
|
|
condition: or
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.pa_daikin
|
|
state: cool
|
|
- condition: state
|
|
entity_id: climate.pa_daikin
|
|
state: heat
|
|
- alias: Room is enabled
|
|
condition: state
|
|
entity_id: cover.pa_guest_damper
|
|
state: open
|
|
- condition: time
|
|
before: 06:30:00
|
|
after: '21:30:00'
|
|
- alias: Current temperature is at least 0.3 degrees from target
|
|
condition: or
|
|
conditions:
|
|
- alias: Heating mode & no more than 0.2 degrees above the setpoint
|
|
condition: and
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.pa_daikin
|
|
state: heat
|
|
- condition: template
|
|
value_template: "{{ state_attr(\"climate.pa_guest\", \"current_temperature\"\
|
|
) -\n state_attr(\"climate.pa_guest\", \"temperature\") <= 0.25}}"
|
|
- alias: Cooling mode & no more than 0.2 degrees below the setpoint
|
|
condition: and
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.pa_daikin
|
|
state: cool
|
|
- condition: template
|
|
value_template: '{{ (state_attr("climate.pa_guest", "temperature") - state_attr("climate.pa_guest",
|
|
"current_temperature") <= 0.25 ) }}'
|
|
actions:
|
|
- alias: Damper to 60%
|
|
action: cover.set_cover_position
|
|
data:
|
|
position: 60
|
|
target:
|
|
entity_id: cover.pa_guest_damper
|
|
- alias: Reset to temperature control
|
|
action: climate.set_temperature
|
|
data:
|
|
temperature: '{{ state_attr(''climate.pa_guest'', ''temperature'') }}'
|
|
target:
|
|
entity_id:
|
|
- climate.pa_guest
|
|
mode: single
|
|
- alias: AT All zones off turn off system
|
|
description: When all zones are turned off, turn off the whole Airtouch system
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- climate.itc_living
|
|
to: 'off'
|
|
- platform: state
|
|
entity_id:
|
|
- climate.itc_master
|
|
to: 'off'
|
|
- platform: state
|
|
entity_id:
|
|
- climate.itc_small_bedroom
|
|
to: 'off'
|
|
- platform: state
|
|
entity_id:
|
|
- climate.itc_guest
|
|
to: 'off'
|
|
condition:
|
|
- condition: state
|
|
entity_id: climate.itc_living
|
|
state: 'off'
|
|
for:
|
|
hours: 0
|
|
minutes: 1
|
|
seconds: 0
|
|
- condition: state
|
|
entity_id: climate.itc_small_bedroom
|
|
state: 'off'
|
|
for:
|
|
hours: 0
|
|
minutes: 1
|
|
seconds: 0
|
|
- condition: state
|
|
entity_id: climate.itc_master
|
|
state: 'off'
|
|
for:
|
|
hours: 0
|
|
minutes: 1
|
|
seconds: 0
|
|
- condition: state
|
|
entity_id: climate.itc_guest
|
|
state: 'off'
|
|
for:
|
|
hours: 0
|
|
minutes: 1
|
|
seconds: 0
|
|
action:
|
|
- service: climate.set_hvac_mode
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
mode: single
|
|
- alias: AT Off Reset to ITC daytime
|
|
description: Reset dampers to a known set position when the system is turned off
|
|
during the day. Don't do this at night as a restart, power cut or exception in
|
|
the log can prevent the state being restored if power comes back on.
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- climate.ac_daikin
|
|
to: 'off'
|
|
condition:
|
|
- condition: time
|
|
after: 07:00:00
|
|
before: '22:00:00'
|
|
action:
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: Damper
|
|
target:
|
|
entity_id:
|
|
- climate.itc_guest
|
|
- climate.itc_small_bedroom
|
|
- climate.itc_master
|
|
- climate.itc_living
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: fan.set_percentage
|
|
data:
|
|
percentage: 0
|
|
target:
|
|
entity_id:
|
|
- fan.damper_master
|
|
- fan.damper_guest
|
|
- fan.damper_small_bedroom
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: fan.set_percentage
|
|
data:
|
|
percentage: 100
|
|
target:
|
|
entity_id:
|
|
- fan.damper_living
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: ITC
|
|
target:
|
|
entity_id:
|
|
- climate.itc_guest
|
|
- climate.itc_living
|
|
- climate.itc_master
|
|
- climate.itc_small_bedroom
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: fan.turn_off
|
|
target:
|
|
entity_id:
|
|
- fan.damper_guest
|
|
- fan.damper_master
|
|
- fan.damper_small_bedroom
|
|
data: {}
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: fan.turn_on
|
|
target:
|
|
entity_id:
|
|
- fan.damper_living
|
|
data: {}
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: climate.set_temperature
|
|
data:
|
|
temperature: 21
|
|
target:
|
|
entity_id: climate.itc_living
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: climate.set_temperature
|
|
data:
|
|
temperature: 20
|
|
target:
|
|
entity_id:
|
|
- climate.itc_small_bedroom
|
|
- climate.itc_guest
|
|
- climate.itc_master
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: climate.set_fan_mode
|
|
data:
|
|
fan_mode: low
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
- choose:
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ now().month in [12, 1, 2, 3] }}'
|
|
alias: Month is Dec - Mar inclusive
|
|
sequence:
|
|
- service: climate.set_fan_mode
|
|
metadata: {}
|
|
data:
|
|
fan_mode: low
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
default:
|
|
- service: climate.set_fan_mode
|
|
metadata: {}
|
|
data:
|
|
fan_mode: medium
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
mode: single
|
|
- alias: ATSP Guest Overcooling Shut Down Damper
|
|
description: If the ducted unit is cooling, the temperature is 0.4C below the setpoint
|
|
and the damper is more than 39% open, close the damper down to 10%
|
|
triggers:
|
|
- alias: Ducted cool mode, damper over 39%, and current is 0.4C below setpoint (e.g.
|
|
setpoint 20, will trigger at 19.6)
|
|
trigger: template
|
|
value_template: "{{ states('sensor.daikin_ducted_hvac_state') == 'cool' and state_attr(\"\
|
|
cover.pa_guest_damper\", \"current_position\") | int > 39 and ((state_attr(\"\
|
|
climate.pa_guest\", \"temperature\") -\n state_attr(\"climate.pa_guest\"\
|
|
, \"current_temperature\")) | round(1) >= 0.4 ) }}"
|
|
for:
|
|
hours: 0
|
|
minutes: 1
|
|
seconds: 0
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.pa_guest
|
|
attribute: control_method
|
|
state: temperature
|
|
actions:
|
|
- alias: Damper to 10%
|
|
action: cover.set_cover_position
|
|
data:
|
|
position: 10
|
|
target:
|
|
entity_id: cover.pa_guest_damper
|
|
- alias: Set damper back to temperature control
|
|
metadata: {}
|
|
data:
|
|
temperature: '{{ state_attr(''climate.pa_guest'', ''temperature'') }}'
|
|
target:
|
|
entity_id: climate.pa_guest
|
|
action: climate.set_temperature
|
|
mode: single
|
|
- alias: ATP Guest Overheat Fix
|
|
description: If room is 0.3 degrees over setpoint reduce the damper. This is useful
|
|
when using the spill fix actions which keep the dampers open for longer. Airtouch
|
|
ramps the damper position down slowly, too slowly given the damper manipulation
|
|
being done, so we have to bring it down quickly ourselves to prevent overheating.
|
|
triggers:
|
|
- alias: Current temperature is 0.3 degrees above room setpoint
|
|
value_template: '{{ state_attr("climate.pa_guest", "current_temperature") - state_attr("climate.pa_guest",
|
|
"temperature") > 0.25}}'
|
|
trigger: template
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.pa_daikin
|
|
state: heat
|
|
- condition: state
|
|
entity_id: cover.pa_guest_damper
|
|
state: open
|
|
- condition: numeric_state
|
|
entity_id: cover.pa_guest_damper
|
|
above: 42
|
|
attribute: current_position
|
|
below: 105
|
|
- condition: state
|
|
entity_id: climate.pa_guest
|
|
attribute: control_method
|
|
state: temperature
|
|
actions:
|
|
- alias: Reduce damper position
|
|
action: cover.set_cover_position
|
|
data:
|
|
position: 30
|
|
target:
|
|
entity_id: cover.pa_guest_damper
|
|
- alias: Set room back to temperature control
|
|
metadata: {}
|
|
data:
|
|
temperature: '{{ state_attr(''climate.pa_guest'', ''temperature'') }}'
|
|
target:
|
|
entity_id: climate.pa_guest
|
|
action: climate.set_temperature
|
|
mode: single
|
|
- alias: ATP Off Reset to defaults
|
|
description: Reset everything to our preferred modes if turned off during the day.
|
|
Don't reset at night as a restart or exception in the log can prevent bedroom
|
|
heating
|
|
triggers:
|
|
- entity_id:
|
|
- climate.pa_daikin
|
|
to: 'off'
|
|
trigger: state
|
|
conditions:
|
|
- condition: time
|
|
after: 07:00:00
|
|
before: '22:00:00'
|
|
actions:
|
|
- metadata: {}
|
|
data: {}
|
|
action: script.reset_airtouch
|
|
- alias: If its between 6pm and 7pm preset the Airtouch to heat mode / 23c without
|
|
turning it on. Make sure to set up the associated script in script-reset-airtouch.yaml.
|
|
I cant remember why I set this up but I probably had a good reason.
|
|
if:
|
|
- condition: time
|
|
after: '18:00:00'
|
|
before: '19:00:00'
|
|
then:
|
|
- alias: Set Airtouch to Heat mode without turning it on
|
|
action: airtouch.set_hvac_mode_only
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: heat
|
|
target:
|
|
entity_id: climate.pa_daikin
|
|
- action: climate.set_temperature
|
|
metadata: {}
|
|
data:
|
|
temperature: 23
|
|
target:
|
|
entity_id: climate.pa_lounge
|
|
mode: single
|
|
- alias: ATSP Guest Spill Fix Cooling Daytime Fast Cooling
|
|
description: If damper is 20% - 90% and no more than 0.25 degrees below setpoint
|
|
open the damper fully. This is to ensure fast cooling and to reduce spill. The
|
|
20 second limit aims to stop constantly oscillation in damper settings.
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- cover.pa_guest_damper
|
|
attribute: current_position
|
|
above: 16
|
|
below: 91
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 20
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.pa_daikin
|
|
state: cool
|
|
- alias: Room is enabled
|
|
condition: state
|
|
entity_id: cover.pa_guest_damper
|
|
state: open
|
|
- condition: time
|
|
after: 09:00:00
|
|
before: '19:00:00'
|
|
- alias: Current room temperature is no more than 0.25 degrees below target temperature
|
|
condition: template
|
|
value_template: '{{ (state_attr("climate.pa_guest", "temperature") - state_attr("climate.pa_guest",
|
|
"current_temperature") <= 0.25 ) }}'
|
|
- alias: Outside unit state is cool. Without this the action triggers constantly.
|
|
condition: state
|
|
entity_id: sensor.daikin_ducted_hvac_state
|
|
state: cool
|
|
actions:
|
|
- alias: Damper to 100%
|
|
action: cover.set_cover_position
|
|
data:
|
|
position: 100
|
|
target:
|
|
entity_id: cover.pa_guest_damper
|
|
- alias: Reset to temperature control
|
|
action: climate.set_temperature
|
|
data:
|
|
temperature: '{{ state_attr(''climate.pa_guest'', ''temperature'') }}'
|
|
target:
|
|
entity_id:
|
|
- climate.pa_guest
|
|
mode: single
|
|
- alias: ATP Guest Spill Fix Heat Daytime
|
|
description: If Guest damper is 20% - 90% and no more than 0.2 degrees above setpoint
|
|
open the damper fully. This is to ensure fast heating and to reduce spill. The
|
|
20 second limit aims to stop constantly oscillation in damper settings.
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- cover.pa_guest_damper
|
|
attribute: current_position
|
|
above: 16
|
|
below: 91
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 20
|
|
- alias: Trigger on room temperature changes - this is a more reliable trigger due
|
|
to the way HA triggers work with ranges
|
|
trigger: state
|
|
entity_id:
|
|
- climate.pa_guest
|
|
attribute: current_temperature
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.pa_daikin
|
|
state: heat
|
|
- alias: Room is enabled
|
|
condition: state
|
|
entity_id: cover.pa_guest_damper
|
|
state: open
|
|
- condition: time
|
|
after: 09:00:00
|
|
before: '21:00:00'
|
|
- alias: Current room temperature is no more than 0.2 degrees above target temperature
|
|
condition: template
|
|
value_template: '{{ state_attr("climate.pa_guest", "current_temperature") - state_attr("climate.pa_guest",
|
|
"temperature") < 0.25}}'
|
|
- alias: Damper is not fully open and is not about to close
|
|
condition: numeric_state
|
|
entity_id: cover.pa_guest_damper
|
|
attribute: current_position
|
|
above: 16
|
|
below: 91
|
|
- condition: state
|
|
entity_id: sensor.daikin_ducted_hvac_state
|
|
state: heat
|
|
alias: Outside unit state is heat. Without this the action triggers constantly.
|
|
This requires either a power usage detector on the circuit running the heat
|
|
pump or the AppDaemon "hvac_energymonitor1" script, which as of May 2025 I havent
|
|
released yet. Experimentation will be required to make this work properly without
|
|
either
|
|
actions:
|
|
- alias: Damper to 100%
|
|
action: cover.set_cover_position
|
|
data:
|
|
position: 100
|
|
target:
|
|
entity_id: cover.pa_guest_damper
|
|
- action: climate.set_temperature
|
|
data:
|
|
temperature: '{{ state_attr(''climate.pa_guest'', ''temperature'') }}'
|
|
target:
|
|
entity_id:
|
|
- climate.pa_guest
|
|
mode: single
|
|
- alias: ATP Airtouch Console Off Time Reset
|
|
description: When the automatic off time is reset / removed on the Airtouch console
|
|
clear the timer in HA
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- time.pa_daikin_off_timer
|
|
to: unknown
|
|
from: null
|
|
conditions: []
|
|
actions:
|
|
- action: script.atp_clear_off_timer
|
|
metadata: {}
|
|
data: {}
|
|
mode: single
|
|
- alias: ATP Airtouch Console On Time Reset
|
|
description: When the automatic on time is reset / removed on the Airtouch console
|
|
clear the timer in HA
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- time.pa_daikin_on_timer
|
|
to: unknown
|
|
from: null
|
|
conditions: []
|
|
actions:
|
|
- action: script.atp_clear_on_timer
|
|
metadata: {}
|
|
data: {}
|
|
mode: single
|
|
- alias: ATP Airtouch Timers Set Off Time to Absolute
|
|
description: Set the Airtouch off timer to the value entered in the time setter
|
|
triggers:
|
|
- entity_id: input_datetime.pa_daikin_airtouch_off_time
|
|
trigger: state
|
|
actions:
|
|
- action: time.set_value
|
|
data:
|
|
time: '{{ states(''input_datetime.pa_daikin_airtouch_off_time'') }}'
|
|
target:
|
|
entity_id: time.pa_daikin_off_timer
|
|
mode: single
|
|
- alias: ATP Airtouch Timers Set On Time to Absolute
|
|
description: Set the Airtouch on timer to the value entered in the time setter
|
|
triggers:
|
|
- entity_id: input_datetime.pa_daikin_airtouch_on_time
|
|
trigger: state
|
|
conditions: []
|
|
actions:
|
|
- action: time.set_value
|
|
data:
|
|
time: '{{ states(''input_datetime.pa_daikin_airtouch_on_time'') }}'
|
|
target:
|
|
entity_id: time.pa_daikin_on_timer
|
|
mode: single
|
|
- alias: ATP Airtouch Timers Off From Delay
|
|
description: Turn the Airtouch off after a configurable delay from a slider
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- input_number.ducted_ac_airtouch_off_timer
|
|
conditions: []
|
|
actions:
|
|
- alias: Set the off time for the Airtouch
|
|
action: airtouch.set_timer_from_delay
|
|
data:
|
|
delay:
|
|
minutes: '{{ states(''input_number.ducted_ac_airtouch_off_timer'') | float
|
|
}}'
|
|
target:
|
|
entity_id: time.pa_daikin_off_timer
|
|
- alias: Update the text field with the off time
|
|
action: input_text.set_value
|
|
target:
|
|
entity_id:
|
|
- input_text.pa_daikin_airtouch_off_delay
|
|
data:
|
|
value: "{% set minutes = states('input_number.ducted_ac_airtouch_off_timer')\
|
|
\ | int %} {% if minutes == 0 %}\n {{ '' }}\n{% else %}\n {{ (now() + timedelta(minutes=minutes)).strftime('%H:%M')\
|
|
\ }}\n{% endif %}\n"
|
|
- action: script.notify_tim
|
|
metadata: {}
|
|
data:
|
|
message: Airtouch Off Timer Set {{ states('input_number.ducted_ac_airtouch_off_timer')
|
|
| int }}
|
|
enabled: false
|
|
mode: single
|
|
- alias: ATP Airtouch Timers On From Delay
|
|
description: Turn the Airtouch on after a configurable delay set via a slider
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- input_number.ducted_ac_airtouch_on_timer
|
|
conditions: []
|
|
actions:
|
|
- alias: Set the delay on the Airtouch
|
|
action: airtouch.set_timer_from_delay
|
|
data:
|
|
delay:
|
|
minutes: '{{ states(''input_number.ducted_ac_airtouch_on_timer'') | float
|
|
}}'
|
|
target:
|
|
entity_id: time.pa_daikin_on_timer
|
|
- alias: Update the text field with the on time
|
|
action: input_text.set_value
|
|
target:
|
|
entity_id:
|
|
- input_text.pa_daikin_airtouch_on_delay
|
|
data:
|
|
value: "{% set minutes = states('input_number.ducted_ac_airtouch_on_timer')\
|
|
\ | int %} {% if minutes == 0 %}\n {{ '' }}\n{% else %}\n {{ (now() + timedelta(minutes=minutes)).strftime('%H:%M')\
|
|
\ }}\n{% endif %}\n"
|
|
- action: script.notify_tim
|
|
metadata: {}
|
|
data:
|
|
message: Airtouch ON Timer Set {{ states('input_number.ducted_ac_airtouch_on_timer')
|
|
| int }}
|
|
enabled: false
|
|
mode: single
|
|
- alias: Office 0530 weekdays below 11
|
|
description: Turn on the office to 22deg at 5.30am weekdays from March to November
|
|
trigger:
|
|
- platform: time
|
|
at: 05:30:00
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.office_automations_enabled
|
|
state: 'on'
|
|
- condition: time
|
|
before: 00:00:00
|
|
weekday:
|
|
- mon
|
|
- tue
|
|
- thu
|
|
- fri
|
|
- wed
|
|
after: 00:00:00
|
|
- condition: template
|
|
value_template: '{{ now().month in [3, 4, 5, 6, 7, 8, 9, 10] }}'
|
|
alias: Month is Mar - Oct
|
|
- condition: numeric_state
|
|
entity_id: sensor.officesensor_temperature
|
|
below: 11
|
|
action:
|
|
- service: climate.set_hvac_mode
|
|
data:
|
|
hvac_mode: heat
|
|
target:
|
|
entity_id: climate.office_daikin
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: climate.set_temperature
|
|
data:
|
|
temperature: 22
|
|
target:
|
|
entity_id: climate.office_daikin
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: climate.set_fan_mode
|
|
data:
|
|
fan_mode: '3'
|
|
target:
|
|
entity_id: climate.office_daikin
|
|
mode: single
|
|
- alias: AT 1130 Ventilation On Airtouch Winter May to Oct
|
|
description: Turn on positive pressure ventilation and Airtouch fan mode to the
|
|
bedrooms in summer
|
|
trigger:
|
|
- platform: time
|
|
at: '11:30:00'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.ducted_ventilation_automations_enabled
|
|
state: 'on'
|
|
- condition: template
|
|
value_template: '{{ now().month in [5, 6, 7, 8, 9, 10] }}'
|
|
alias: Month is May - Oct
|
|
- condition: state
|
|
entity_id: climate.ac_daikin
|
|
state: 'off'
|
|
enabled: true
|
|
action:
|
|
- type: turn_on
|
|
device_id: positive-pressure-ventilation-device-id
|
|
entity_id: switch.ventilation
|
|
domain: switch
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: Damper
|
|
target:
|
|
entity_id:
|
|
- climate.itc_living
|
|
- climate.itc_small_bedroom
|
|
- climate.itc_master
|
|
- service: fan.turn_off
|
|
data: {}
|
|
target:
|
|
entity_id: fan.damper_living
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: fan.set_percentage
|
|
data:
|
|
percentage: 100
|
|
target:
|
|
entity_id:
|
|
- fan.damper_master
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: fan.set_percentage
|
|
data:
|
|
percentage: 30
|
|
target:
|
|
entity_id: fan.itc_small_bedroom
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: fan.turn_on
|
|
data: {}
|
|
target:
|
|
entity_id:
|
|
- fan.itc_small_bedroom
|
|
- fan.damper_master
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: climate.set_hvac_mode
|
|
data:
|
|
hvac_mode: fan_only
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: climate.set_fan_mode
|
|
data:
|
|
fan_mode: medium
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
- delay:
|
|
hours: 0
|
|
minutes: 60
|
|
seconds: 0
|
|
milliseconds: 0
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: ITC
|
|
target:
|
|
entity_id:
|
|
- fan.damper_small_bedroom
|
|
- fan.damper_living
|
|
- fan.damper_master
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: climate.ac_daikin
|
|
state: fan_only
|
|
sequence:
|
|
- service: climate.turn_off
|
|
data: {}
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
alias: Turn off the Airtouch if its in fan mode. This allows it to keep running
|
|
if its manually been changed to heating or cooling
|
|
- type: turn_off
|
|
device_id: positive-pressure-ventilation-device-id
|
|
entity_id: switch.ventilation
|
|
domain: switch
|
|
mode: single
|
|
- alias: Notification System Log All
|
|
description: When a system log entry is made send it out by email
|
|
trigger:
|
|
- platform: event
|
|
event_type: system_log_event
|
|
condition: []
|
|
action:
|
|
- service: notify.email_service_name
|
|
data:
|
|
title: HA log entry made
|
|
message: '{{ trigger.event.data.message[0] }}'
|
|
mode: single
|
|
- alias: AT 1800 Living Heating May to Sept
|
|
description: Simple automation to bring the living area up to preferred temperatures
|
|
during the colder months of the year
|
|
trigger:
|
|
- platform: time
|
|
at: '18:00:00'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.ducted_heating_automations_enabled
|
|
state: 'on'
|
|
enabled: false
|
|
alias: This ties into my room control system, so I can easily control whether
|
|
automations are active or not. This lets me turn off all heating automations
|
|
on warm days or turn off all automations while on holiday
|
|
- condition: template
|
|
value_template: '{{ now().month in [5, 6, 7, 8, 9] }}'
|
|
alias: Month is May - Nov
|
|
action:
|
|
- service: fan.turn_on
|
|
data:
|
|
preset_mode: ITC
|
|
target:
|
|
entity_id:
|
|
- fan.damper_living
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 2
|
|
milliseconds: 0
|
|
- service: climate.set_hvac_mode
|
|
data:
|
|
hvac_mode: heat
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 2
|
|
milliseconds: 0
|
|
- if:
|
|
- condition: numeric_state
|
|
entity_id: climate.itc_living
|
|
attribute: temperature
|
|
below: 23
|
|
then:
|
|
- service: climate.set_temperature
|
|
metadata: {}
|
|
data:
|
|
temperature: 23
|
|
target:
|
|
entity_id: climate.itc_living
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 2
|
|
milliseconds: 0
|
|
- service: climate.set_fan_mode
|
|
data:
|
|
fan_mode: high
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
- delay:
|
|
hours: 0
|
|
minutes: 10
|
|
seconds: 0
|
|
milliseconds: 0
|
|
- service: fan.turn_on
|
|
data:
|
|
preset_mode: Damper
|
|
target:
|
|
entity_id:
|
|
- fan.damper_master
|
|
- fan.damper_small_bedroom
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: fan.set_percentage
|
|
data:
|
|
percentage: 5
|
|
target:
|
|
entity_id:
|
|
- fan.damper_master
|
|
- fan.damper_small_bedroom
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: fan.turn_on
|
|
data:
|
|
preset_mode: ITC
|
|
target:
|
|
entity_id:
|
|
- fan.damper_master
|
|
- fan.damper_small_bedroom
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 2
|
|
milliseconds: 0
|
|
- service: climate.set_temperature
|
|
data:
|
|
temperature: 20
|
|
target:
|
|
entity_id:
|
|
- climate.itc_master
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 2
|
|
milliseconds: 0
|
|
- service: climate.set_temperature
|
|
data:
|
|
temperature: 20
|
|
target:
|
|
entity_id: climate.itc_small_bedroom
|
|
- delay:
|
|
hours: 0
|
|
minutes: 10
|
|
seconds: 0
|
|
milliseconds: 0
|
|
- service: climate.set_fan_mode
|
|
data:
|
|
fan_mode: medium
|
|
target:
|
|
entity_id: climate.ac_daikin
|
|
mode: single
|
|
- alias: AT Guest Spill Fix Heat
|
|
description: If guest bedroom damper is slightly open for 30 seconds, and the current
|
|
temperature is below or equal to the target temperature, open the damper wider
|
|
to prevent lounge overheat. This is only enabled at night as during the day it
|
|
doesnt matter.
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: fan.damper_guest
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
attribute: percentage
|
|
below: 21
|
|
above: 1
|
|
condition:
|
|
- condition: device
|
|
device_id: airtouch4_device_id
|
|
domain: climate
|
|
entity_id: climate.ac_daikin
|
|
type: is_hvac_mode
|
|
hvac_mode: heat
|
|
- condition: state
|
|
entity_id: fan.damper_guest
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id: climate.itc_guest
|
|
attribute: preset_mode
|
|
state: ITC
|
|
- condition: time
|
|
before: 07:00:00
|
|
after: '13:00:00'
|
|
enabled: false
|
|
- condition: template
|
|
value_template: '{{ state_attr("climate.itc_guest", "current_temperature") - state_attr("climate.itc_guest",
|
|
"temperature") <= 0.2}}'
|
|
alias: Current room temperature is no more than 0.2 degrees above target temperature
|
|
action:
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: Damper
|
|
target:
|
|
entity_id: fan.damper_guest
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: fan.set_percentage
|
|
data:
|
|
percentage: 40
|
|
target:
|
|
entity_id: fan.damper_guest
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: ITC
|
|
target:
|
|
entity_id: fan.damper_guest
|
|
mode: single
|
|
- alias: AT Master Spill Fix Heat
|
|
description: If Master bedroom damper is slightly open for 30 seconds, and the current
|
|
temperature is below or equal to the target temperature, open the damper wider
|
|
to prevent lounge overheat. This is only enabled at night as during the day it
|
|
doesnt matter.
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: fan.damper_master
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
attribute: percentage
|
|
below: 21
|
|
above: 1
|
|
condition:
|
|
- condition: device
|
|
device_id: airtouch4_device_id
|
|
domain: climate
|
|
entity_id: climate.ac_daikin
|
|
type: is_hvac_mode
|
|
hvac_mode: heat
|
|
- condition: state
|
|
entity_id: fan.damper_master
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id: climate.itc_master
|
|
attribute: preset_mode
|
|
state: ITC
|
|
- condition: time
|
|
before: 07:00:00
|
|
after: '16:00:00'
|
|
enabled: false
|
|
- alias: Current room temperature is no more than 0.2 degrees above target temperature
|
|
condition: template
|
|
value_template: '{{ state_attr("climate.itc_master", "current_temperature") -
|
|
state_attr("climate.itc_master", "temperature") <= 0.2}}'
|
|
action:
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: Damper
|
|
target:
|
|
entity_id:
|
|
- climate.itc_master
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: fan.set_percentage
|
|
data:
|
|
percentage: 40
|
|
target:
|
|
entity_id: fan.damper_master
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: ITC
|
|
target:
|
|
entity_id:
|
|
- climate.itc_master
|
|
trace:
|
|
stored_traces: 50
|
|
mode: single
|
|
- alias: AT Master Overnight Limit Damper Overheat Overcool 2200 - 0700
|
|
description: When Master bedroom damper is open wider than 66% for 5 seconds at
|
|
night close the damper down. If this is not done the room tends to get really
|
|
hot while heating is on. For smaller bedrooms I tend to set the limits lower -
|
|
for a small bedroom if the damper is over 58% I reset the damper to 50%
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- fan.damper_master
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
attribute: percentage
|
|
above: 66
|
|
condition:
|
|
- condition: device
|
|
device_id: airtouch4_device_id
|
|
domain: climate
|
|
entity_id: climate.ac_daikin
|
|
type: is_hvac_mode
|
|
hvac_mode: heat
|
|
enabled: false
|
|
- alias: Ducted Daikin is in heating or cooling mode
|
|
condition: or
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.ac_daikin
|
|
state: cool
|
|
- condition: state
|
|
entity_id: climate.ac_daikin
|
|
state: heat
|
|
- condition: state
|
|
entity_id: fan.damper_master
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id: climate.itc_master
|
|
attribute: preset_mode
|
|
state: ITC
|
|
- condition: time
|
|
before: 07:30:00
|
|
after: '22:00:00'
|
|
action:
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: Damper
|
|
target:
|
|
entity_id: climate.itc_master
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: fan.set_percentage
|
|
data:
|
|
percentage: 65
|
|
target:
|
|
entity_id: fan.damper_master
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: ITC
|
|
target:
|
|
entity_id: climate.itc_master
|
|
enabled: true
|
|
mode: single
|
|
- alias: AT Heating Spill Bedrooms
|
|
description: Alerts if any spill goes into the bedrooms in heat mode. Multiple alerts
|
|
to get attention, then voice alert.
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.zone_spill_guest
|
|
to: 'on'
|
|
enabled: false
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.zone_spill_small_bedroom
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.zone_spill_master
|
|
to: 'on'
|
|
condition:
|
|
- condition: state
|
|
entity_id: climate.ac_daikin
|
|
state: heat
|
|
action:
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: Damper
|
|
target:
|
|
entity_id:
|
|
- climate.itc_living
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 250
|
|
- service: fan.set_percentage
|
|
data:
|
|
percentage: 100
|
|
target:
|
|
entity_id:
|
|
- fan.damper_living
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: climate.set_preset_mode
|
|
data:
|
|
preset_mode: ITC
|
|
target:
|
|
entity_id:
|
|
- climate.itc_living
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
milliseconds: 500
|
|
- service: fan.turn_on
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: fan.damper_living
|
|
- service: notify.mobile_app_devicename
|
|
data:
|
|
message: Heating spill into bedrooms. Lounge damper fully opened to mitigate
|
|
data:
|
|
ttl: 0
|
|
priority: high
|
|
channel: alarm_stream
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: notify.mobile_app_devicename
|
|
data:
|
|
data:
|
|
ttl: 0
|
|
priority: high
|
|
channel: alarm_stream
|
|
message: Heating spill into bedrooms. Lounge damper fully opened to mitigate
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- service: notify.mobile_app_devicename
|
|
data:
|
|
message: TTS
|
|
title: Testing test test
|
|
data:
|
|
ttl: 0
|
|
priority: high
|
|
channel: alarm_stream_max
|
|
tts_text: Attention! Attention! Heat is spilling into the bedrooms! Change
|
|
spill settings!
|
|
mode: single
|