###############################################################################
#   @author         :   Jeffrey Stone 
#   @date           :   07/09/2019
#   @package        :   Jarvis
#   @description    :   Bringing some Jarvis to Home Assistant
###############################################################################

input_boolean:
  house_party_protocol_switch:
    name: House Party Switch

automation:
  - id: house_party_protocol_on
    alias: Turn On House Party Protocol
    initial_state: true
    trigger:
    - platform: state
      entity_id: input_boolean.house_party_protocol_switch
      to: 'on'
    action:
    - service: homeassistant.turn_on
      entity_id: group.incense
    - delay: 00:00:05
    - service: script.status_annc
      data_template:
        who: '{{ states.sensor.room_presence.state }}'
        call_house_party_protocol_enabled: 1
  
  - id: house_party_protocol_off
    alias: Turn Off House Party Protocol
    initial_state: true
    trigger:
    - platform: state
      entity_id: input_boolean.house_party_protocol_switch
      to: 'off'
    action:
    - service: homeassistant.turn_off
      entity_id: group.incense
    - delay: 00:00:05
    - service: script.status_annc
      data_template:
        who: '{{ states.sensor.room_presence.state }}'
        call_house_party_protocol_disabled: 1
            
script:
  
  # To Use:
  # service: script.amp_voice
  # Data
  #  who: media_player_ha_speaker
  #   #who:  “{{ states(‘sensor.room_presence’) }}” 
  #   message: something to say
  #
  amp_voice:
    sequence:
    - service: media_player.turn_on
      data_template:
        entity_id: >
          {{ who }} 
    - service: script.dim_main_volume
    - service: media_player.volume_set
      data_template:
        entity_id: >
          {{ who }}
        volume_level: >
            {% if is_state('input_boolean.audible_notifications.state','on') %}
              .6
            {% else %}
              .4
            {% endif %}
    - service: >
        {{ who }}
      data: 
          message: >
            {{ message }}
          data:
            type: tts
    - delay: 00:00:20
    - service: script.raise_main_volume
  


  # To Use:
  # service: script.polly_voice
  # Data
  #  who: media_player_ha_speaker
  #   #who:  “{{ states(‘sensor.room_presence’) }}” 
  #   message: something to say
  #
  polly_voice:
    sequence:
    - service: media_player.turn_on
      data_template:
        entity_id: >
          {{ who }}
    - service: media_player.volume_set
      data_template:
        entity_id: >
          {{ who }}
        volume_level: >
            {% if states.input_boolean.audible_notifications.state == 'on' %}
              .7
            {% else %}
              .4
            {% endif %}
    - service: tts.amazon_polly_say
      data_template:
        entity_id: >
          {{ who }}
        message: >-
          <speak>
          <break time="1s"/>
          {{ message }}
          </speak>
        cache: true
  

  alexa_interjection:
    sequence:
      - service: script.status_annc
        data:
          who: '{{ states.sensor.alexa_audio.state}}'
          call_interuption: 1

  google_interjection:
    sequence:
      - service: script.status_annc
        data:
          who: '{{ states.sensor.room_audio.state }}'
          call_interuption: 1


