Jeffrey Stone e02d084c92 Updated to V5 Version - Hassio Style
Lots of updates here.

Updated my Readme - Added Affiliate Links, added some more information, better organized devices
Updated gitignore with paths realtive to my hassio config
Combined my switches and lights into single yaml files instead of the directory structure previously
Added zigbee2mqtt.yaml to packages - contains automations and such for zigbee2mqtt

Archived my previous version in the V4-config branch.
2019-11-08 12:54:11 -05:00

212 lines
6.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.
#
###############################################################################
input_boolean:
this_is_halloween:
name: This is Halloween
haunted_sounds:
name: Haunted Sounds
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
- service: python_script.special_events
data:
name: Halloween
type: holiday
date: 31/10/2001
- 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
- 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
- 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
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
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
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