2019-10-06 17:34:34 +00:00
###############################################################################
# @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.
#
###############################################################################
input_boolean :
this_is_halloween :
name : This is Halloween
2019-10-13 20:04:22 +00:00
haunted_sounds :
name : Haunted Sounds
2019-10-06 17:34:34 +00:00
automation :
- id : this_is_halloween_on
alias : This is Halloween On
initial_state : true
trigger :
- platform : state
entity_id : input_boolean.this_is_halloween
to : 'on'
action :
- service : script.turn_on
entity_id : script.this_is_halloween
2019-10-13 20:04:22 +00:00
- id : haunted_sounds_on
alias : Haunted Sounds On
initial_state : true
trigger :
- platform : state
entity_id : input_boolean.haunted_sounds
to : 'on'
action :
- service : script.turn_on
entity_id : script.haunted_sounds
- id : haunted_sounds_off
alias : Haunted Sounds Off
initial_state : true
trigger :
- platform : state
entity_id : input_boolean.haunted_sounds
to : 'off'
action :
- service : script.turn_off
entity_id : script.haunted_sounds
2019-10-06 17:34:34 +00:00
- id : this_is_halloween_off
alias : This is Halloween Off
initial_state : true
trigger :
- platform : state
entity_id : input_boolean.this_is_halloween
to : 'off'
action :
- service : script.turn_on
entity_id : script.kill_this_ride
- service : media_player.media_stop
entity_id : media_player.ha_speaker
- id : this_is_halloween
alias : This is Halloween
initial_state : true
trigger :
- platform : template
value_template : "{{ states('sensor.time') == (state_attr('input_datetime.halloween_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 == 'Halloween' %}
true
{%- endif -%}
action :
- service : input_boolean.turn_on
2019-10-13 20:04:22 +00:00
entity_id : input_boolean.this_is_halloween
- id : operation_haunted_house
alias : Operation Haunted House
initial_state : true
trigger :
- platform : template
value_template : "{{ states('sensor.time') == (state_attr('input_datetime.halloween_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 == 'Halloween' %}
true
{%- endif -%}
action :
- service : script.turn_on
entity_id : input_boolean.haunted_sounds
2019-12-09 13:27:39 +00:00
- 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 :
2020-01-03 17:26:59 +00:00
- service : input_boolean.turn_on
2019-12-09 13:27:39 +00:00
entity_id : input_boolean.holiday_wishes
2019-10-13 20:04:22 +00:00
script :
haunted_sounds :
sequence :
- delay : 00 : 05 : 00
- service : shell_command.haunted_scream
- delay : 00 : 07 : 06
- service : shell_command.haunted_leotta
- delay : 00 : 02 : 36
- service : shell_command.haunted_raven
- delay : 00 : 04 : 03
- service : shell_command.haunted_harp
- delay : 00 : 01 : 40
- service : shell_command.haunted_door
- delay : 00 : 03 : 33
- service : shell_command.haunted_howling
- delay : 00 : 04 : 03
- service : shell_command.haunted_laugh2
- delay : 00 : 03 : 56
- service : shell_command.haunted_seance_horn
- delay : 00 : 08 : 00
- service : shell_command.haunted_piano
- delay : 00 : 03 : 10
- service : shell_command.haunted_clock
- delay : 00 : 07 : 33
- service : shell_command.haunted_ballroom
- delay : 00 : 03 : 18
- service : shell_command.haunted_door2
- delay : 00 : 05 : 00
- service : shell_command.haunted_bells
- delay : 00 : 02 : 18
- service : shell_command.haunted_laugh
- delay : 00 : 06 : 36
- service : shell_command.haunted_chains
2019-11-08 17:54:11 +00:00
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