339 lines
9.4 KiB
YAML
Executable File
339 lines
9.4 KiB
YAML
Executable File
###############################################################################
|
|
# @author : Jeffrey Stone
|
|
# @date : 02/19/2019
|
|
# @package : Holidays
|
|
# @description : Holiday Specific.
|
|
#
|
|
# I'm not sure where I got this, but it leverages a python script: https://github.com/thejeffreystone/home-assistant-configuration/blob/master/python_scripts/special_events.py
|
|
#
|
|
# To create a sensor just create an automation to fire around midnight.
|
|
#
|
|
# automation:
|
|
# - id: refresh_holioday_sensors
|
|
# alias: Refresh Holiday sensors
|
|
# initial_state: true
|
|
# trigger:
|
|
# - platform: time
|
|
# at: '00:00:07'
|
|
# - platform: homeassistant
|
|
# event: start
|
|
# action:
|
|
# - service: python_script.special_events
|
|
# data:
|
|
# name: Christmas
|
|
# type: holiday
|
|
# date: 25/12/2001
|
|
#
|
|
# Where Name equals the name of the event, type is the type of event, and date is the date in DD/MM/YYYY format
|
|
#
|
|
# Year only matters if your want to take advantage fo the years attribute which will tell you have many years since the event. Useful
|
|
# with birthdays and anniversaries.
|
|
#
|
|
# I use the Following types:
|
|
# birthday
|
|
# anniversary
|
|
# holiday
|
|
# trip
|
|
#
|
|
# The type will be used in the name of the sensor it creates. For example:
|
|
# sensor.trip_camping
|
|
# sensor.birthday_jeff
|
|
# sensor.holiday_christmas
|
|
#
|
|
# The state of the sensor will be the days until the event. For birthdays and anniversaries it will never be more than 365.
|
|
# For example {{ states.sensor.birthday_jeff.state }} will be the number of days until my next birthday.
|
|
# And {{ states.sensor.birthday_jeff.attributes.years }} will be my age, or the number of years since my birth (if you put the real year in)
|
|
# For events with a year in the future, the state will be number of days to that exact moment in time.
|
|
#
|
|
###############################################################################
|
|
|
|
|
|
automation:
|
|
|
|
|
|
# Holiday Wishes
|
|
- id: wishes_five_min
|
|
alias: Wishes Five Minute
|
|
initial_state: true
|
|
trigger:
|
|
- platform: template
|
|
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.christmas_preshow', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: calendar.holidays_in_united_states
|
|
state: "on"
|
|
- condition: template
|
|
value_template: >
|
|
{%- set event=states.calendar.holidays_in_united_states.attributes.message %}
|
|
{%- if event == 'Christmas Eve' %}
|
|
true
|
|
{%- endif -%}
|
|
action:
|
|
- service: script.holiday_wishes_preshow
|
|
|
|
- id: wishes_show_start
|
|
alias: Wishes Show Start
|
|
initial_state: true
|
|
trigger:
|
|
- platform: template
|
|
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.christmas_show', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: calendar.holidays_in_united_states
|
|
state: "on"
|
|
- condition: template
|
|
value_template: >
|
|
{%- set event=states.calendar.holidays_in_united_states.attributes.message %}
|
|
{%- if event == 'Christmas Eve' %}
|
|
true
|
|
{%- endif -%}
|
|
action:
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.holiday_wishes
|
|
|
|
|
|
- id: e1cb2582-0423-11eb-adc1-0242ac120002
|
|
alias: Mainstreet USA Christmas Loop
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.mainstreet_usa_christmas_loop
|
|
to: 'on'
|
|
from: 'off'
|
|
id: start
|
|
- platform: state
|
|
entity_id: input_boolean.mainstreet_usa_christmas_loop
|
|
id: stop
|
|
from: 'on'
|
|
to: 'off'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: start
|
|
sequence:
|
|
- service: script.local_audio
|
|
data:
|
|
media: "/media/disney/MainStreetUSAChristmas.mp3"
|
|
volume: .35
|
|
speaker: 'media_player.ha_blue'
|
|
- conditions:
|
|
- condition: trigger
|
|
id: stop
|
|
sequence:
|
|
- service: media_player.media_stop
|
|
entity_id: media_player.ha_blue
|
|
- service: script.turn_off
|
|
entity_id: script.local_audio
|
|
default: []
|
|
initial_state: true
|
|
mode: single
|
|
|
|
- id: e1cb24ba-0423-11eb-adc1-0242ac120002
|
|
alias: Disneyland Christmas Loop
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.disneyland_christmas_loop
|
|
to: 'on'
|
|
from: 'off'
|
|
id: start
|
|
- platform: state
|
|
entity_id: input_boolean.disneyland_christmas_loop
|
|
id: stop
|
|
from: 'on'
|
|
to: 'off'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: start
|
|
sequence:
|
|
- service: script.local_audio
|
|
data:
|
|
media: "/media/disney/DisneylandChristmas.mp3"
|
|
volume: .35
|
|
speaker: 'media_player.ha_blue'
|
|
- conditions:
|
|
- condition: trigger
|
|
id: stop
|
|
sequence:
|
|
- service: media_player.media_stop
|
|
entity_id: media_player.ha_blue
|
|
- service: script.turn_off
|
|
entity_id: script.local_audio
|
|
default: []
|
|
initial_state: true
|
|
mode: single
|
|
|
|
- id: e1cb2348-0423-11eb-adc1-0242ac120002
|
|
alias: Disney Park Christmas Loop
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.disney_park_christmas_loop
|
|
to: 'on'
|
|
from: 'off'
|
|
id: start
|
|
- platform: state
|
|
entity_id: input_boolean.disney_park_christmas_loop
|
|
id: stop
|
|
from: 'on'
|
|
to: 'off'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: start
|
|
sequence:
|
|
- service: script.local_audio
|
|
data:
|
|
media: "/media/disney/DisneyParkHoliday.mp3"
|
|
volume: .35
|
|
speaker: 'media_player.ha_blue'
|
|
- conditions:
|
|
- condition: trigger
|
|
id: stop
|
|
sequence:
|
|
- service: media_player.media_stop
|
|
entity_id: media_player.ha_blue
|
|
- service: script.turn_off
|
|
entity_id: script.local_audio
|
|
default: []
|
|
initial_state: true
|
|
mode: single
|
|
|
|
- id: e1cb228a-0423-11eb-adc1-0242ac120002
|
|
alias: Christmas Around Disneyland
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.christmas_around_disneyland
|
|
to: 'on'
|
|
from: 'off'
|
|
id: start
|
|
- platform: state
|
|
entity_id: input_boolean.christmas_around_disneyland
|
|
id: stop
|
|
from: 'on'
|
|
to: 'off'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: start
|
|
sequence:
|
|
- service: script.local_audio
|
|
data:
|
|
media: "/media/disney/ChristmasAroundDisneyland.mp3"
|
|
volume: .35
|
|
speaker: 'media_player.ha_blue'
|
|
- conditions:
|
|
- condition: trigger
|
|
id: stop
|
|
sequence:
|
|
- service: media_player.media_stop
|
|
entity_id: media_player.ha_blue
|
|
- service: script.turn_off
|
|
entity_id: script.local_audio
|
|
default: []
|
|
initial_state: true
|
|
mode: single
|
|
|
|
- id: e1cb21cc-0423-11eb-adc1-0242ac120002
|
|
alias: Disney Springs Christmas
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.disney_springs_xmas
|
|
to: 'on'
|
|
from: 'off'
|
|
id: start
|
|
- platform: state
|
|
entity_id: input_boolean.disney_springs_xmas
|
|
id: stop
|
|
from: 'on'
|
|
to: 'off'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: start
|
|
sequence:
|
|
- service: script.local_audio
|
|
data:
|
|
media: "/media/disney/Disney_Springs_Xmas_Loop.mp3"
|
|
volume: .35
|
|
speaker: 'media_player.ha_blue'
|
|
- conditions:
|
|
- condition: trigger
|
|
id: stop
|
|
sequence:
|
|
- service: media_player.media_stop
|
|
entity_id: media_player.ha_blue
|
|
- service: script.turn_off
|
|
entity_id: script.local_audio
|
|
default: []
|
|
initial_state: true
|
|
mode: single
|
|
|
|
sensor:
|
|
- platform: rest
|
|
name: Halloween Countdown
|
|
resource: !secret WA_HALLOWEEN
|
|
value_template: "{{ (value|replace(' days', '')) | int }}"
|
|
unit_of_measurement: Days
|
|
scan_interval: 43200
|
|
|
|
- platform: rest
|
|
name: Christmas Countdown
|
|
resource: !secret WA_XMAS
|
|
value_template: "{{ (value|replace(' days', '')) | int }}"
|
|
unit_of_measurement: Days
|
|
scan_interval: 43200
|
|
|
|
|
|
script:
|
|
fireworks1d_xmas:
|
|
sequence:
|
|
- service: wled.effect
|
|
target:
|
|
entity_id: light.wled_tree
|
|
data:
|
|
effect: "Fireworks 1D"
|
|
intensity: 51
|
|
- service: light.turn_on
|
|
data:
|
|
entity_id: light.wled_tree
|
|
brightness: 127
|
|
blends_xmas:
|
|
sequence:
|
|
- service: wled.effect
|
|
target:
|
|
entity_id: light.wled_tree
|
|
data:
|
|
effect: "Blends"
|
|
intensity: 43
|
|
- service: light.turn_on
|
|
data:
|
|
entity_id: light.wled_tree
|
|
brightness: 43
|
|
aurora_xmas:
|
|
sequence:
|
|
- service: wled.effect
|
|
target:
|
|
entity_id: light.wled_tree
|
|
data:
|
|
effect: "Aurora"
|
|
intensity: 128
|
|
- service: light.turn_on
|
|
data:
|
|
entity_id: light.wled_tree
|
|
brightness: 255
|
|
twinklefox_xmas:
|
|
sequence:
|
|
- service: wled.effect
|
|
target:
|
|
entity_id: light.wled_tree
|
|
data:
|
|
effect: "Twinklefox"
|
|
intensity: 128
|
|
- service: light.turn_on
|
|
data:
|
|
entity_id: light.wled_tree
|
|
brightness: 127 |