#-------------------------------------------
# People Greeting Announcement
# Description: Announces when family members arrive home
#
# Features:
# - Triggers when a person's state changes from 'not_home' to 'home'
# - Waits for specific sensors to confirm entry
# - Uses speech_engine script for personalized welcome messages
# - Includes responsibility reminders and home status checks
#
# Integration: Uses ChromeCast for audio output
# Follow me https://www.vcloudinfo.com/click-here
# More Blog Posts: https://www.vcloudinfo.com
#-------------------------------------------
- alias: 'People Greeting'
  id: 29c5c9dd-550a-4761-a224-78cdc3dd9f43
  mode: restart
  trigger:
    - platform: state
      entity_id:
        - person.carlo
        - person.stacey
        - person.paige
        - person.justin
      from: 'not_home'
      to: 'home'

  action:
    # This Group is defined in the groups directory.

    - service: group.set
      data:
        object_id: "arriving"
        add_entities: >-
          {{ trigger.to_state.entity_id }}

    - wait_template: "{{ states.binary_sensor.mcu1_gpio12.state == 'on' }}"
      timeout: '00:05:00'

    - wait_template: "{{ states.binary_sensor.kitchen_door.state == 'on' }}"
      timeout: '00:1:00'

    - delay: '00:01:00'
    - service: script.speech_engine
      data:
        personarriving: >
          {% set person = expand('group.arriving')|map(attribute='name')|join(' and ') %}
          {%- macro greeting_sentence(person) -%}
            {{"[Welcome " + person + " home]" }}
          {%- endmacro -%}

          {{greeting_sentence(person)}}
        call_responsibilities: 1
        call_no_announcement: 1
        call_garage_check: 1
        call_window_check: 1

    - service: group.set
      data:
        object_id: "arriving"
        entities: []