You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.8 KiB
83 lines
2.8 KiB
######################################################################
|
|
# @CCOSTAN - Follow Me on X
|
|
# For more info visit https://www.vcloudinfo.com/click-here
|
|
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
|
# -------------------------------------------------------------------
|
|
# People Greeting Announcement - family and Life360 arrival greetings
|
|
# Announces covered home arrivals after entry sensor confirmation.
|
|
# -------------------------------------------------------------------
|
|
# Notes: `group.arriving` batches simultaneous arrivals; Life360 triggers
|
|
# only include tracked people not already covered by `group.family`.
|
|
######################################################################
|
|
- 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'
|
|
- platform: state
|
|
entity_id:
|
|
- device_tracker.life360_adriano_costanzo
|
|
- device_tracker.life360_amanda_desantis
|
|
- device_tracker.life360_gabriella_desantis
|
|
- device_tracker.life360_jessica_desantis
|
|
- device_tracker.life360_joseph_desantis
|
|
- device_tracker.life360_joyce_ruskin
|
|
- device_tracker.life360_yolanda_costanzo
|
|
to: 'home'
|
|
|
|
condition:
|
|
- condition: template
|
|
value_template: >-
|
|
{{
|
|
trigger.from_state is not none
|
|
and trigger.from_state.state not in ['home', 'unknown', 'unavailable']
|
|
}}
|
|
|
|
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 ns = namespace(names=[]) %}
|
|
{% for arrival in expand('group.arriving') %}
|
|
{% set clean_name = arrival.name | replace('Life360 ', '') | trim %}
|
|
{% set ns.names = ns.names + [clean_name.split(' ')[0]] %}
|
|
{% endfor %}
|
|
{% set person = ns.names | join(' and ') if ns.names else 'someone' %}
|
|
{%- macro greeting_sentence(person) -%}
|
|
{{"[Welcome " + person + " home]" }}
|
|
{%- endmacro -%}
|
|
|
|
{{greeting_sentence(person)}}
|
|
call_garbage_day: 1
|
|
call_no_announcement: 1
|
|
call_garage_check: 1
|
|
call_window_check: 1
|
|
|
|
- service: group.set
|
|
data:
|
|
object_id: "arriving"
|
|
entities: []
|
|
|