Files
Home-Assistant-Configs/packages/emmalynn.yaml

329 lines
11 KiB
YAML

# This file is for entities/automations that are specific to Emmalynn
input_boolean:
emma_sleeping:
name: Emma Sleeping
icon: mdi:sleep
input_datetime:
emma_bedtime:
name: Emma Bedtime
has_date: false
has_time: true
icon: mdi:fan-auto
emma_wakeup:
name: Emma Wakeup
has_date: false
has_time: true
icon: mdi:fan-off
automation:
- id: 4f01dff7-be22-4850-a05e-1906e3151441
alias: 'Emma Sleeping'
description: "Handles the response to the Emma Sleeping toggle"
mode: restart
trigger:
- platform: state
entity_id: input_boolean.emma_sleeping
from: 'off'
to: 'on'
id: sleep-on
- platform: state
entity_id: input_boolean.emma_sleeping
from: 'on'
to: 'off'
id: sleep-off
condition:
- condition: state
entity_id: group.adults
state: 'home'
action:
- choose:
- conditions:
- condition: trigger
id: sleep-on
sequence:
- service: script.emma_sleep
- conditions:
- condition: trigger
id: sleep-off
sequence:
- service: script.emma_wakeup
- id: '1655415573165'
alias: Emma Bedroom Handling
description: "For scheduled operations in Emma's bedroom"
mode: restart
trigger:
- platform: time
at: input_datetime.emma_wakeup
id: emma-wakeup
- platform: time
at: input_datetime.emma_bedtime
id: emma-bedtime
condition:
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
action:
- choose:
- conditions:
- condition: trigger
id: emma-wakeup
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.emma_sleeping
- conditions:
- condition: trigger
id: emma-bedtime
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.emma_sleeping
- id: e44c2ab8-00cd-40ab-9b42-824511ac20aa
alias: Emma Naptime Climate
description: Sets the climate mode for when Emma goes down for nap
mode: restart
trigger:
- platform: state
entity_id: sensor.pirateweather_temperature
- platform: state
entity_id: input_number.emma_naptime_aircon_threshold
- platform: state
entity_id: input_boolean.hot_day
condition:
- condition: state
entity_id: input_boolean.emma_sleeping
state: 'off'
action:
- service: input_select.select_option
target:
entity_id: input_select.naptime_climate_mode_emma_aircon
data:
option: >
{% set temp = states('sensor.pirateweather_temperature') | int %}
{% set threshold = states('input_number.emma_naptime_aircon_threshold') | int %}
{% if (temp >= threshold) or is_state('input_boolean.hot_day','on') %}
AC
{% else %}
White Noise
{% endif %}
script:
emma_sleep:
alias: 'Emma Sleep'
icon: mdi:lightbulb-night
mode: restart
sequence:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.early_night_mode
state: 'on'
sequence:
- choose:
- conditions:
- condition: and
conditions:
- condition: template
value_template: "{{ states('sensor.time') < state_attr('input_datetime.emma_bedtime','timestamp') | timestamp_custom('%H:%M', false) }}"
- condition: state
entity_id: input_boolean.give_me_darkness
state: 'on'
sequence:
- service: light.turn_on
target:
entity_id:
- light.emma_bedroom_light
- delay:
seconds: 1
- service: input_select.select_option
target:
entity_id:
- input_select.emma_bedroom_scenes
data:
option: Adaptive
- conditions:
- condition: and
conditions:
- condition: template
value_template: "{{ states('sensor.time') < state_attr('input_datetime.emma_bedtime','timestamp') | timestamp_custom('%H:%M', false) }}"
- condition: state
entity_id: input_boolean.give_me_darkness
state: 'off'
sequence:
- service: light.turn_on
target:
entity_id:
- light.emma_bedroom_light
- light.hallway_overhead
- delay:
seconds: 1
- service: input_select.select_option
target:
entity_id:
- input_select.emma_bedroom_scenes
- input_select.upstairs_hallway_scenes
data:
option: Adaptive
- conditions:
- condition: state
entity_id: binary_sensor.early_night_mode
state: 'off'
sequence:
- service: light.turn_on
target:
entity_id: light.emma_bedroom_light
- service: script.emma_bedroom_scheduling_evening
- delay:
seconds: 2
- choose:
- conditions:
- condition: template
value_template: >
{% set time = states('sensor.time') %}
{% set bedtime = state_attr('input_datetime.emma_bedtime','timestamp') | timestamp_custom('%H:%M', false) %}
{{ time >= bedtime }}
sequence:
- choose:
- conditions:
- condition: state
entity_id: input_select.scheduled_climate_mode_emma_aircon
state: AC
sequence:
- service: fan.turn_on
target:
entity_id: fan.emma_air_conditioner
- service: script.text_notify
data:
who: "parents"
title: "Emma Climate Schedule"
message: "The air conditioner in Emma's Bedroom has been activated."
type: normal
tag: emma-climate
- conditions:
- condition: state
entity_id: input_select.scheduled_climate_mode_emma_aircon
state: White Noise
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.white_noise_emma_bedroom
- service: script.text_notify
data:
who: "parents"
title: "Emma Climate Schedule"
message: "White noise has been activated in Emma's Bedroom."
type: normal
tag: emma-climate
default:
- service: script.text_notify
data:
who: "parents"
title: "Emma Climate Schedule"
message: "No option selected for Emma's climate mode. No devices will be activated."
type: normal
tag: emma-climate
- conditions:
- condition: template
value_template: >
{% set time = states('sensor.time') %}
{% set bedtime = state_attr('input_datetime.emma_bedtime','timestamp') | timestamp_custom('%H:%M', false) %}
{{ time < bedtime }}
sequence:
- choose:
- conditions:
- condition: state
entity_id: input_select.naptime_climate_mode_emma_aircon
state: AC
sequence:
- service: fan.turn_on
target:
entity_id: fan.emma_air_conditioner
- conditions:
- condition: state
entity_id: input_select.naptime_climate_mode_emma_aircon
state: White Noise
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.white_noise_emma_bedroom
emma_wakeup:
alias: 'Emma Wakeup'
icon: mdi:weather-sunset-up
mode: restart
sequence:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.early_night_mode
state: 'on'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.emma_bedroom_scenes
data:
option: Nightlight
- service: light.turn_on
target:
entity_id: light.hallway_overhead
- delay:
seconds: 2
- service: input_select.select_option
target:
entity_id:
- input_select.upstairs_hallway_scenes
- input_select.master_bedroom_scenes
data:
option: Adaptive
- conditions:
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.morning
state: 'on'
- condition: state
entity_id: binary_sensor.late_morning
state: 'on'
sequence:
- service: light.turn_on
target:
entity_id: light.emma_bedroom_light
- service: input_select.select_option
target:
entity_id: input_select.emma_bedroom_scenes
data:
option: Adaptive
- delay:
minutes: 5
- service: input_boolean.turn_off
target:
entity_id: input_boolean.white_noise_emma_bedroom
- if:
- condition: template
value_template: >-
{% set ct = ((now().hour * 60 + now().minute) * 60 ) %}
{{ is_state('fan.emma_air_conditioner','on') and is_state('input_boolean.hot_day','off') and ct < state_attr('input_datetime.emma_bedtime','timestamp') and ct >= state_attr('input_datetime.emma_wakeup','timestamp') }}
then:
- service: script.turn_on
target:
entity_id: script.emma_aircon_shutoff
emma_aircon_shutoff:
alias: 'Emma Air Conditioner Shutoff'
mode: restart
description: 'Attempt to shut off air conditioner after compressor stops running'
sequence:
- wait_template: "{{ is_state('binary_sensor.emma_aircon_compressor','off') }}"
timeout:
minutes: 10
continue_on_timeout: true
- delay:
seconds: 5
- service: fan.turn_off
target:
entity_id: fan.emma_air_conditioner