288 lines
8.2 KiB
YAML
Executable File
288 lines
8.2 KiB
YAML
Executable File
###############################################################################
|
|
# @author : Jeffrey Stone
|
|
# @date : 02/19/2019
|
|
# @package : Events
|
|
# @description : Special Events.
|
|
###############################################################################
|
|
|
|
input_boolean:
|
|
rex_manning_audio:
|
|
name: Rex Manning audio
|
|
icon: mdi:speaker-wireless
|
|
blackout_time:
|
|
name: Blackout Time
|
|
icon: mdi:closed-octagon
|
|
school_in_session:
|
|
name: School In Session
|
|
icon: mdi:bus-school
|
|
school_is_digital:
|
|
name: Digital Learning
|
|
icon: mdi:laptop
|
|
|
|
input_datetime:
|
|
school_first_day:
|
|
name: First Day of School
|
|
has_date: true
|
|
has_time: false
|
|
initial: '2020-08-12'
|
|
school_last_day:
|
|
name: Last Day of School
|
|
has_date: true
|
|
has_time: false
|
|
initial: '2021-05-26'
|
|
school_day_start:
|
|
name: School Day Start
|
|
has_date: false
|
|
has_time: true
|
|
initial: '07:45:00'
|
|
school_day_end:
|
|
name: School Day End
|
|
has_date: false
|
|
has_time: true
|
|
initial: '14:45:00'
|
|
blackout_time_start:
|
|
name: Blackout Time Start
|
|
has_date: false
|
|
has_time: true
|
|
initial: '12:00:00'
|
|
blackout_time_end:
|
|
name: Blackout Time End
|
|
has_date: false
|
|
has_time: true
|
|
initial: '16:00:00'
|
|
|
|
input_number:
|
|
skylar_ps_time:
|
|
name: Skylar PS Time
|
|
initial: 120
|
|
min: 0
|
|
max: 360
|
|
step: 15
|
|
icon: mdi:clock
|
|
skylar_yt_time:
|
|
name: Skylar YT Time
|
|
initial: 60
|
|
min: 0
|
|
max: 360
|
|
step: 15
|
|
icon: mdi:youtube
|
|
skylar_tv_time:
|
|
name: Skylar TV Time
|
|
initial: 120
|
|
min: 0
|
|
max: 360
|
|
step: 15
|
|
icon: mdi:television-box
|
|
|
|
input_select:
|
|
skylar_activity:
|
|
name: Skylar Activity
|
|
options:
|
|
- Restricted
|
|
- Limited
|
|
- Full
|
|
initial: Full
|
|
icon: mdi:human
|
|
|
|
sensor:
|
|
- platform: template
|
|
sensors:
|
|
school_start_days2go:
|
|
value_template: '{{ (((states.input_datetime.school_first_day.attributes.timestamp)-as_timestamp(now())) | int /60/1440) | round(0) }}'
|
|
unit_of_measurement: 'Days'
|
|
school_end_days2go:
|
|
value_template: '{{ (((states.input_datetime.school_last_day.attributes.timestamp)-as_timestamp(now())) | int /60/1440) | round(0) }}'
|
|
unit_of_measurement: 'Days'
|
|
|
|
automation:
|
|
- id: refresh_special_event_sensors
|
|
alias: Refresh special event sensors
|
|
initial_state: true
|
|
trigger:
|
|
- platform: time
|
|
at: '00:00:01'
|
|
- platform: homeassistant
|
|
event: start
|
|
action:
|
|
- service: python_script.special_events
|
|
data:
|
|
name: Skylar
|
|
type: birthday
|
|
date: !secret skylar_bday
|
|
- service: python_script.special_events
|
|
data:
|
|
name: Jeff
|
|
type: birthday
|
|
date: !secret jeff_bday
|
|
- service: python_script.special_events
|
|
data:
|
|
name: Kat
|
|
type: birthday
|
|
date: !secret kat_bday
|
|
- service: python_script.special_events
|
|
data:
|
|
name: Our wedding
|
|
type: anniversary
|
|
date: !secret wed_anniversary
|
|
- service: python_script.special_events
|
|
data:
|
|
name: Disney
|
|
type: trip
|
|
date: !secret disney_trip
|
|
|
|
- id: rex_manning_audio
|
|
alias: Rex Manning Day Audio
|
|
initial_state: true
|
|
trigger:
|
|
- platform: time
|
|
at: '14:00:00'
|
|
condition:
|
|
- condition: state
|
|
entity_id: calendar.anchorage_holidays
|
|
state: "on"
|
|
- condition: template
|
|
value_template: >
|
|
{%- set event=states.calendar.anchorage_holidays.attributes.message %}
|
|
{%- if event == 'Rex Manning Day' %}
|
|
true
|
|
{%- endif -%}
|
|
action:
|
|
- service: script.turn_on
|
|
entity_id: script.rex_manning_audio
|
|
- delay:
|
|
seconds: 40
|
|
- service: script.turn_off
|
|
entity_id: script.rex_manning_audio
|
|
- service: media_player.media_stop
|
|
entity_id: media_player.ha_speaker
|
|
|
|
- id: new_ha_notification
|
|
alias: New HA Notification
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.updater
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
- service: script.twitter_new_ha
|
|
# - service: ifttt.trigger
|
|
# data_template: {"event":"GitPost", "value1":"Home Assistant {{ states.binary_sensor.updater.attributes.newest_version }} is now available.", "value2":"{{ states.binary_sensor.updater.attributes.newest_version }}"}
|
|
- service: rest_command.new_version_github_issue
|
|
data_template:
|
|
version: "{{ states.binary_sensor.updater.attributes.newest_version }}"
|
|
|
|
- id: blackout_time_start
|
|
initial_state: true
|
|
alias: Blackout time Start
|
|
trigger:
|
|
platform: template
|
|
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.blackout_time_start', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
|
condition:
|
|
condition: template
|
|
value_template: '{{ states.calendar.skylar_school.state == "Off" }}'
|
|
action:
|
|
- wait_template: "{{ not is_state('media_player.ha_speaker', 'playing') }}"
|
|
- service: script.speech_engine
|
|
data_template:
|
|
who: '{{ states.sensor.room_audio.state }}'
|
|
message: "Blackout time has started."
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.blackout_time
|
|
|
|
- id: blackout_time_end
|
|
initial_state: true
|
|
alias: Blackout time End
|
|
trigger:
|
|
platform: template
|
|
value_template: "{{ states('sensor.time') == (state_attr('input_datetime.blackout_time_end', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}"
|
|
condition:
|
|
condition: state
|
|
entity_id: input_boolean.blackout_time
|
|
state: 'on'
|
|
action:
|
|
- wait_template: "{{ not is_state('media_player.ha_speaker', 'playing') }}"
|
|
- service: script.speech_engine
|
|
data_template:
|
|
who: '{{ states.sensor.room_audio.state }}'
|
|
message: "Blackout time has ended"
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.blackout_time
|
|
|
|
- id: digital_learning_start
|
|
alias: Digital Learning Start
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id: calendar.skylar_school
|
|
to: 'on'
|
|
condition:
|
|
condition: state
|
|
entity_id: input_boolean.school_is_digital
|
|
state: 'on'
|
|
action:
|
|
- service: scene.turn_on
|
|
entity_id: scene.skylar_desk_on
|
|
- service: script.turn_on
|
|
entity_id: script.digital_learning_notification
|
|
|
|
- id: digital_learning_end
|
|
alias: Digital Learning End
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id: calendar.skylar_school
|
|
to: 'off'
|
|
condition:
|
|
condition: state
|
|
entity_id: input_boolean.school_is_digital
|
|
state: 'on'
|
|
action:
|
|
- service: scene.turn_on
|
|
entity_id: scene.skylar_desk_off
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.audible_notifications
|
|
|
|
script:
|
|
|
|
rex_manning_audio:
|
|
sequence:
|
|
- condition: state
|
|
entity_id: input_boolean.audible_notifications
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id: sensor.family_status
|
|
state: Home
|
|
- service: media_player.turn_on
|
|
entity_id: media_player.ha_speaker
|
|
- service: media_player.volume_set
|
|
data_template:
|
|
entity_id: media_player.ha_speaker
|
|
volume_level: .4
|
|
- service: media_player.play_media
|
|
entity_id: media_player.ha_speaker
|
|
data:
|
|
media_content_id: http://192.168.7.40/audio/Rex_Manning_-_Say_No_More_Mon_Amour.mp3
|
|
media_content_type: "music"
|
|
|
|
digital_learning_notification:
|
|
sequence:
|
|
- condition: state
|
|
entity_id: sensor.family_status
|
|
state: Home
|
|
- service: script.speech_engine
|
|
data_template:
|
|
who: '{{ states.sensor.room_audio.state }}'
|
|
message: "Skylar, digital learning will begin in about thirty minutes. I have turned on the lighting around your desk. I will be disabling audible notifications during school hours."
|
|
- delay:
|
|
minutes: 5
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.audible_notifications
|
|
|
|
rest_command:
|
|
new_version_github_issue:
|
|
url: https://api.github.com/repos/thejeffreystone/home-assistant-configuration/issues
|
|
method: POST
|
|
headers:
|
|
Authorization: !secret github_issue_token
|
|
payload: '{"title":"Home-Assistant {{ version }} available","body":"Home-Assistant {{ version }} is now available"}' |