mirror of
https://github.com/thejeffreystone/home-assistant-configuration.git
synced 2025-02-10 01:22:45 +00:00
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.
212 lines
6.4 KiB
YAML
Executable File
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
|