############################################################################### # @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' entity_id: input_datetime.school_first_day,sensor.time 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' entity_id: input_datetime.school_last_day,sensor.time 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: - service: script.ah_report data: call_interuption: 1 speech_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: - service: script.ah_report data: call_interuption: 1 speech_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: 'off' 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.ah_report data: speech_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"}'