Files
Home-Assistant-Configs/packages/presence.yaml

253 lines
7.1 KiB
YAML

input_datetime:
last_time_home_tony:
name: Tony Last Seen
has_date: true
has_time: true
icon: mdi:binoculars
last_time_home_tina:
name: Tina Last Seen
has_date: true
has_time: true
icon: mdi:binoculars
last_time_home_kallen:
name: Kallen Last Seen
has_date: true
has_time: true
icon: mdi:binoculars
proximity:
home_tony:
devices:
- device_tracker.tony_s_iphone
zone: home
tolerance: 5
unit_of_measurement: mi
home_tina:
devices:
- device_tracker.tinas_iphone
zone: home
tolerance: 5
unit_of_measurement: mi
home:
devices:
- device_tracker.tony_s_iphone
- device_tracker.tinas_iphone
zone: home
tolerance: 5
unit_of_measurement: mi
sensor:
- platform: template
sensors:
tony_location:
friendly_name: "Tony"
unit_of_measurement: ""
value_template: >-
{% set person = states.person.tony_stork.state %}
{%- if person in ['Wal-Mart','Kroger','Chief','Meijer'] %}
Grocery Store
{% else %}
{% if person in ['not_home','Stationary'] %}
{{ state_attr('device_tracker.life360_tony_stork','address') }}
{% else %}
{{ states('person.tony_stork') }}
{%- endif %}
{%- endif %}
- platform: template
sensors:
tina_location:
friendly_name: "Tina"
unit_of_measurement: ""
value_template: >-
{% set person = states.person.christina_stork.state %}
{%- if person in ['Wal-Mart','Kroger','Chief','Meijer'] %}
Grocery Store
{% elif person in ['Chipotle'] and is_state('input_boolean.work_today','on') %}
Work
{% else %}
{% if person in ['not_home','Stationary'] %}
{{ state_attr('device_tracker.life360_christina_stork','address') }}
{% else %}
{{ states('person.christina_stork') }}
{%- endif %}
{%- endif %}
- platform: template
sensors:
kallen_location:
friendly_name: "Kallen"
unit_of_measurement: ""
value_template: >-
{% if is_state('input_boolean.kallen_school', 'on') %}
school
{% elif is_state('calendar.kallen_events', 'on') %}
{{ state_attr('calendar.kallen_events', 'message') }}
{%- elif is_state('person.tony_stork', 'home') and is_state('person.christina_stork', 'home') and is_state('input_boolean.kallen_school', 'off')%}
home
{%- elif is_state('person.tony_stork', 'Hospital') and is_state('input_boolean.kallen_school', 'off')%}
{{ states('sensor.tina_location') }}
{%- elif is_state('person.christina_stork', 'Chipotle') and is_state('input_boolean.kallen_school', 'off')%}
{{ states('sensor.tony_location') }}
{% else %}
Unknown
{%- endif %}
- platform: template
sensors:
tony_home:
value_template: >-
{{ is_state('device_tracker.tony_s_iphone', 'home') or is_state('device_tracker.tony_s_iphone_app', 'home') or is_state('device_tracker.life360_tony_stork','home') }}
- platform: template
sensors:
tina_home:
value_template: >-
{{ is_state('device_tracker.tinas_iphone', 'home') or is_state('device_tracker.tinas_iphone_app', 'home') or is_state('device_tracker.life360_christina_stork','home') }}
mqtt:
sensor:
- name: "Family Status"
state_topic: "house/family/status"
payload_available: "online"
payload_not_available: "offline"
- name: "Family Arrived"
state_topic: "house/family/arrived"
payload_available: "online"
payload_not_available: "offline"
automation:
- id: kallen_at_school
alias: Kallen is at School
trigger:
- entity_id: person.tony_stork
event: leave
platform: zone
zone: zone.school
- entity_id: person.christina_stork
event: leave
platform: zone
zone: zone.school
- entity_id: person.kallen_stork
event: enter
platform: zone
zone: zone.school
condition:
- condition: time
before: "11:30:00"
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: input_boolean.kallen_school
state: "off"
action:
- service: input_boolean.turn_on
entity_id: input_boolean.kallen_school
- service: script.text_alert
data:
who: parents
message: "Kallen has been dropped off at school."
initial_state: true
- id: kallen_left_school
alias: Kallen left School
trigger:
- entity_id: person.tony_stork
event: leave
platform: zone
zone: zone.school
- entity_id: person.christina_stork
event: leave
platform: zone
zone: zone.school
- entity_id: person.kallen_stork
event: leave
platform: zone
zone: zone.school
condition:
- condition: time
after: "11:30:02"
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: input_boolean.kallen_school
state: "on"
action:
- service: input_boolean.turn_off
entity_id: input_boolean.kallen_school
- service: script.text_alert
data:
who: parents
message: "Kallen has been picked up from school."
initial_state: true
script:
family_is_away:
alias: Family Is Away
sequence:
- condition: state
entity_id: group.family
state: not_home
- service: light.turn_off
target:
area_id:
- basement_studio
- furnace_room
- kallen_bedroom
- living_room
- master_bedroom
- mud_room
- nursery
- upstairs_hallway
- dining_room
- downstairs_bathroom
- upstairs_bathroom
data: {}
- service: script.security_arm_away
mode: single
icon: mdi:shield-lock
family_is_home:
alias: Family Is Home
sequence:
- service: switch.turn_off
target:
entity_id: switch.presence_simulation
data: {}
- service: script.security_disarm
- service: switch.turn_off
target:
entity_id:
- switch.basement_echo_dot_do_not_disturb_switch
- switch.living_room_echo_dot_do_not_disturb_switch
- switch.master_bedroom_echo_dot_do_not_disturb_switch
data: {}
- service: light.turn_off
target:
area_id:
- furnace_room
- kallen_bedroom
- nursery
- master_bedroom
- upstairs_hallway
- basement_studio
- downstairs_bathroom
- upstairs_bathroom
- dining_room
- living_room
data: {}
- condition: sun
after: sunset
after_offset: -00:30
- service: light.turn_on
data: {}
target:
entity_id:
- light.living_room_lights
- light.mud_room_overhead
- light.dining_room_lamp
mode: single
icon: mdi:home-account