############################################################################### # @author : Jeffrey Stone # @date : 02/19/2019 # @package : Announcements # @description : Daily Announcements. ############################################################################### ############################### # input_datetime - So the time report automation fires can be set in the UI ############################### input_datetime: morning_report: name: Morning Report has_date: false has_time: true nightly_report: name: Nightly Report has_date: false has_time: true daily_report: name: Daily Report has_date: false has_time: true skylar_morning_report: name: Skylar Dressed Announcement has_date: false has_time: true skylar_nightly_report: name: Skylar Bedtime Announcement has_date: false has_time: true audible_notification_on: name: Audible Notifications On has_date: false has_time: true audible_notification_off: name: Audible Notifications Off has_date: false has_time: true ################################ # Announcment Automation - fires at the time of the above input_datetimes ################################ automation: - id: 81bee5ee-6820-4626-aebf-3deb8de69e4d alias: Turn On Audible Notifications initial_state: true trigger: platform: template value_template: "{{ states('sensor.time') == (state_attr('input_datetime.audible_notification_on', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" action: - service: input_boolean.turn_on entity_id: input_boolean.audible_notifications # Turn off audible notifications if they have't been turned off yet. - id: e0e9c774-6abe-42aa-bdab-32108bebb0e9 alias: Turn Off Audible Notifications initial_state: true trigger: - platform: template value_template: "{{ states('sensor.time') == (state_attr('input_datetime.audible_notification_off', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" condition: - condition: state entity_id: input_boolean.audible_notifications state: 'on' action: - service: input_boolean.turn_off entity_id: input_boolean.audible_notifications - id: cb0063e4-1dfe-4537-8b9e-4f64b2eba35d initial_state: true alias: Skylar Nightly Announcements trigger: platform: template value_template: "{{ states('sensor.time') == (state_attr('input_datetime.skylar_nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" action: - service: script.skylar_nightly_briefing # - id: 15056866-5ac7-4b33-a371-ab9e449548d1 # initial_state: true # alias: Nightly Report # trigger: # platform: template # value_template: "{{ states('sensor.time') == (state_attr('input_datetime.nightly_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" # action: # - service: script.nightly_briefing_report - id: 1d8f396a-f6ec-460d-97e3-d11900418f95 alias: Good Morning Report initial_state: true trigger: # platform: template # value_template: "{{ states('sensor.time') == (state_attr('input_datetime.morning_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" - platform: state entity_id: binary_sensor.kitchen_occupancy to: 'on' condition: - condition: time after: '06:45:00' before: '08:30:00' - condition: state entity_id: input_boolean.good_morning_report state: 'off' action: - service: script.morning_briefing - service: script.twitter_notify data: message: >- {{ [ "I just provided a morning briefing including weather, and traffic conditions, and other things that ensure the residents of Anchorage House know what to expect today.", "Time for the daily update. It was like that scene in Ironman where JARVIS gives the daily briefing but no one was listening. ", "I have prepared a safety briefing to present to my residents but they would just ignore it.", "Do you like to be prepared for the day? So do my residents. So I provided them with an update on whats happening today.", "Sometimes I just like to be snarky, but this morning I decided to just tell everyone what is going on in the world.", "#Homeassistant gives me the ability to make daily announcements like the one I just did using #Amazon Polly.", "Each day at this time I provide the residents of this house an update that includes everything they need to know about the upcoming day. But with more snark." ] | random }} - service: input_boolean.turn_on entity_id: input_boolean.good_morning_report - id: e8580ba4-fa76-4185-818b-fba3c3cea41c alias: Master Bedroom Report initial_state: true trigger: #platform: template #value_template: "{{ states('sensor.time') == (state_attr('input_datetime.daily_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" platform: time at: input_datetime.daily_report condition: - condition: time weekday: - mon - tue - wed - thu - fri - sat action: - service: script.morning_wakeup_report - id: 09bf89e7-180c-40fb-9543-5bd862e21049 alias: skylar morning alarm announcement trigger: platform: template value_template: "{{ states('sensor.time') == (state_attr('input_datetime.skylar_morning_report', 'timestamp') | int | timestamp_custom('%H:%M', False)) }}" condition: condition: template value_template: '{{ states.calendar.skylar_school.attributes.offset_reached == True }}' action: - service: scene.turn_on entity_id: scene.skylar_room_morning - service: script.skylar_morning_briefing - id: bbbafc52-eab1-44cd-ac24-4f9b7f4210b6 alias: set skylar morning report time trigger: - platform: time at: '05:50:00' action: - service: input_datetime.set_datetime entity_id: input_datetime.skylar_morning_report data_template: time: > {% if states.calendar.skylar_school.attributes.offset_reached == True %} 06:15 {% else %} 07:15 {% endif %} # - id: set_morning_report_time # alias: set morning report time # trigger: # - platform: time # at: '05:50:30' # action: # - service: input_datetime.set_datetime # entity_id: input_datetime.morning_report # data_template: # time: > # {% if states.calendar.skylar_school.attributes.offset_reached == True %} # 07:10 # {% else %} # 08:00 # {% endif %} script: reset_annc_switches: sequence: - service: input_boolean.turn_off entity_id: input_boolean.good_morning_report security_briefing: sequence: - service: script.speech_engine data_template: who: '{{ states.sensor.alexa_audio.state }}' message: !include ../templates/speech/security_report.yaml event_briefing: sequence: - service: script.speech_engine data_template: who: '{{ states.sensor.alexa_audio.state }}' message: !include ../templates/speech/event_briefing.yaml skylar_morning_briefing: sequence: - service: script.speech_engine data: who: > {%- if is_state('media_player.theater_tv', 'on') %} theater {%- elif is_state('binary_sensor.skylar_room_occupancy', 'on') %} skylar_bedroom {% else %} main {%- endif %} message: !include ../templates/speech/skylar_morning_briefing.yaml skylar_nightly_briefing: sequence: - service: script.speech_engine data_template: who: main message: !include ../templates/speech/skylar_nightly_briefing.yaml nightly_briefing_report: sequence: - service: script.speech_engine data_template: who: main message: !include ../templates/speech/nightly_briefing.yaml sundown_briefing: sequence: - service: script.speech_engine data_template: who: kitchen message: !include ../templates/speech/sundown_briefing.yaml morning_briefing: sequence: - service: script.speech_engine data_template: who: kitchen message: !include ../templates/speech/morning_briefing.yaml morning_wakeup_report: sequence: - service: script.speech_engine data_template: who: master_bedroom message: !include ../templates/speech/morning_wakeup_report.yaml