home-assistant-configuration/packages/presence.yaml

439 lines
13 KiB
YAML
Raw Normal View History

2019-07-12 20:35:11 +00:00
###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : Presence
# @description : A Collection of Presence Related Trackers and Sensors
###############################################################################
sensor:
- platform: template
sensors:
jeff_location:
friendly_name: "Jeff's Current Location"
unit_of_measurement: ''
value_template: >-
{%- if is_state('person.jeffrey', 'not_home') %}
2019-07-12 20:35:11 +00:00
{%- if states.device_tracker.life360_jeffrey_stone.attributes.moving == True %}
Flue Network
{%- elif states.device_tracker.life360_jeffrey_stone.attributes.driving == True %}
Flue Network
{% else %}
Lost
{%- endif %}
{% elif is_state('person.jeffrey', 'Sprouts') %}
2019-07-12 20:35:11 +00:00
Grocery Store
{% elif is_state('person.jeffrey', 'Kroger1') %}
2019-07-12 20:35:11 +00:00
Grocery Store
{% elif is_state('person.jeffrey', 'Kroger2') %}
2019-07-12 20:35:11 +00:00
Grocery Store
{% elif is_state('person.jeffrey', 'Home Depot') %}
2019-07-12 20:35:11 +00:00
Home Improvement Store
{% elif is_state('person.jeffrey', 'Lowes') %}
2019-07-12 20:35:11 +00:00
Home Improvement Store
{% elif is_state('person.jeffrey', 'Walmart') %}
2019-07-12 20:35:11 +00:00
Super Store
{% elif is_state('person.jeffrey', 'Target') %}
2019-07-12 20:35:11 +00:00
Super Store
{% else %}
{{ states.person.jeffrey.state }}
2019-07-12 20:35:11 +00:00
{%- endif %}
2019-07-14 01:38:53 +00:00
jeff_driving:
friendly_name: "Jeff' Driving"
unit_of_measurement: ''
value_template: >-
{%- if states.device_tracker.life360_jeffrey_stone.attributes.moving == True %}
on
{% elif states.device_tracker.life360_jeffrey_stone.attributes.driving == True %}
on
{% else %}
off
{% endif %}
2019-07-12 20:35:11 +00:00
- platform: template
sensors:
skylar_location:
friendly_name: "Skylar's Current Location"
unit_of_measurement: ''
value_template: >-
{%- if is_state('input_boolean.skylar_school', 'on')%}
school
{%- elif is_state('sensor.jeff_location', 'home') and is_state('sensor.kat_location', 'home') and is_state('input_boolean.skylar_school', 'off')%}
2019-07-12 20:35:11 +00:00
home
{%- elif is_state('sensor.jeff_location', 'Summit') and is_state('input_boolean.skylar_school', 'off')%}
{{ states.sensor.kat_location.state }}
{%- elif is_state('sensor.kat_location', 'Zoo Atlanta') and is_state('input_boolean.skylar_school', 'off')%}
{{ states.sensor.jeff_location.state }}
2019-07-12 20:35:11 +00:00
{% else %}
Mortal Peril
{%- endif %}
- platform: template
sensors:
kat_location:
friendly_name: "Kat's Current Location"
unit_of_measurement: ''
value_template: >-
{%- if is_state('person.katherine', 'not_home') %}
2019-07-12 20:35:11 +00:00
{%- if states.device_tracker.life360_kat_stone.attributes.moving == True %}
Flue Network
{% elif states.device_tracker.life360_kat_stone.attributes.driving == True %}
Flue Network
{% else %}
Lost
{%- endif %}
{% elif is_state('person.katherine', 'Sprouts') %}
2019-07-12 20:35:11 +00:00
Grocery Store
{% elif is_state('person.katherine', 'Kroger1') %}
2019-07-12 20:35:11 +00:00
Grocery Store
{% elif is_state('person.katherine', 'Kroger2') %}
2019-07-12 20:35:11 +00:00
Grocery Store
{% elif is_state('person.katherine', 'Home Depot') %}
2019-07-12 20:35:11 +00:00
Home Improvement Store
{% elif is_state('person.katherine', 'Lowes') %}
2019-07-12 20:35:11 +00:00
Home Improvement Store
{% elif is_state('person.katherine', 'Walmart') %}
2019-07-12 20:35:11 +00:00
Super Store
{% elif is_state('person.katherine', 'Target') %}
2019-07-12 20:35:11 +00:00
Super Store
{% else %}
{{ states.person.katherine.state }}
2019-07-12 20:35:11 +00:00
{%- endif %}
2019-07-14 01:38:53 +00:00
- platform: template
sensors:
kat_driving:
friendly_name: "Kat Driving"
unit_of_measurement: ''
value_template: >-
{%- if states.device_tracker.life360_kat_stone.attributes.moving == True %}
'on'
{% elif states.device_tracker.life360_kat_stone.attributes.driving == True %}
'on'
{% else %}
'off'
{% endif %}
2019-07-12 20:35:11 +00:00
- platform: mqtt
name: "Family Status"
state_topic: "house/family/status"
payload_available: "online"
payload_not_available: "offline"
- platform: template
sensors:
jeff_home:
value_template: >-
{{ is_state('device_tracker.jeffreystonesiphone', 'home')
or is_state('device_tracker.hass_jeffsiphone', 'home')
or is_state('device_tracker.life360_jeffrey_stone', 'home') }}
- platform: template
sensors:
kat_home:
value_template: >-
{{ is_state('device_tracker.katherinestonesiphone', 'home')
or is_state('device_tracker.life360_kat_stone', 'home') }}
- platform: template
sensors:
family_home:
value_template: >-
{{ is_state('device_tracker.jeffreystonesiphone', 'home')
or is_state('device_tracker.hass_jeffsiphone', 'home')
or is_state('device_tracker.life360_jeffrey_stone', 'home')
or is_state('device_tracker.katherinestonesiphone', 'home')
or is_state('device_tracker.life360_kat_stone', 'home')
or is_state('sensor.family_status', 'Home') }}
2019-07-14 01:38:53 +00:00
automation:
- id: kat_arrives_zoo
alias: Kat Arrives at Zoo
initial_state: true
trigger:
- platform: zone
event: enter
zone: zone.zoo_atlanta
entity_id: person.katherine
2019-07-14 01:38:53 +00:00
action:
- service: input_boolean.turn_off
entity_id: input_boolean.kat_travel_monitor
- service: script.ah_report
data:
speech_message: 'Kat has arrived at worked.'
call_interuption: 1
2019-07-14 01:38:53 +00:00
- id: kat_leaves_zoo
alias: Kat Leaves Zoo Notification
initial_state: true
trigger:
- platform: zone
event: leave
zone: zone.zoo_atlanta
entity_id: person.katherine
2019-07-14 01:38:53 +00:00
condition:
action:
- service: input_boolean.turn_on
entity_id: input_boolean.kat_travel_monitor
- service: script.ah_report
data:
call_interuption: 1
call_kat_headed_home: 1
2019-07-14 01:38:53 +00:00
- id: '1550109528753'
alias: Jeff Is Heading Home
initial_state: true
trigger:
- platform: webhook
webhook_id: jeff_heading_home
condition: []
action:
- service: script.jeff_destination_home
- service: script.ah_report
data:
call_interurption: 1
call_jeff_headed_home: 1
2019-07-14 01:38:53 +00:00
- id: skylar_at_school
alias: Skylar is at School
trigger:
2019-10-13 20:05:54 +00:00
- entity_id: device_tracker.life360_jeffrey_stone
event: enter
platform: zone
zone: zone.starling
2019-10-13 20:05:54 +00:00
- entity_id: device_tracker.life360_kat_stone
event: enter
platform: zone
zone: zone.starling
condition:
condition: time
2019-10-13 20:05:54 +00:00
after: '07:25:00'
before: '08:30:00'
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: input_boolean.turn_on
entity_id: input_boolean.skylar_school
initial_state: true
- id: skylar_left_school
alias: Skylar left School
trigger:
- entity_id: device_tracker.life360_jeffrey_stone
event: leave
platform: zone
zone: zone.starling
- entity_id: device_tracker.life360_kat_stone
event: leave
platform: zone
zone: zone.starling
condition:
condition: time
after: '14:45:00'
before: '15:30:00'
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: input_boolean.turn_off
entity_id: input_boolean.skylar_school
initial_state: true
2019-07-14 01:38:53 +00:00
- id: family_has_arrived
alias: Family Has arrived
trigger:
- entity_id: sensor.family_status
from: Away
platform: state
to: Home
- entity_id: person.jeffrey
2019-07-14 01:38:53 +00:00
event: enter
platform: zone
zone: zone.home
- entity_id: person.katherine
2019-07-14 01:38:53 +00:00
event: enter
platform: zone
zone: zone.home
condition:
- condition: state
entity_id: sensor.family_status
state: Away
action:
- service: script.vacation_canceled
- service: script.appliances_on
- service: script.standby
- service: script.washer_finished_notification_audible
- service: alarm_control_panel.alarm_arm_home
2019-09-07 19:11:00 +00:00
entity_id: alarm_control_panel.ah_base_station
2019-07-14 01:38:53 +00:00
initial_state: true
2019-07-14 01:38:53 +00:00
- id: family_has_left
alias: Family Has Left
initial_state: true
trigger:
- entity_id: sensor.family_status
from: Home
platform: state
to: Away
condition:
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
action:
- service: script.appliances_off
- service: script.inside_all_off
- service: script.security_check_garage
- service: script.security_check_zones
- service: script.lockdown
- service: script.lockdown_issue
- service: script.all_fans_off
2019-09-07 19:11:00 +00:00
- service: alarm_control_panel.alarm_arm_away
entity_id: alarm_control_panel.ah_base_station
2019-07-14 01:38:53 +00:00
- id: jeff_is_home
alias: Jeff is Home
initial_state: true
trigger:
- entity_id: person.jeffrey
2019-07-14 01:38:53 +00:00
event: enter
platform: zone
zone: zone.home
action:
- service: script.family_is_home
- service: script.jeff_destination_na
- service: script.driveway_on
- entity_id: input_boolean.jeff_travel_monitor
service: input_boolean.turn_off
2019-07-14 01:38:53 +00:00
- id: jeff_arrives_summit
alias: Jeff Arrives At Summit
trigger:
- entity_id: person.jeffrey
2019-07-14 01:38:53 +00:00
event: enter
platform: zone
zone: zone.summit
action:
- service: script.text_notify
data:
who: "kat"
message: "Jeff has arrived at Summit"
initial_state: true
2019-07-14 01:38:53 +00:00
- id: jeff_arrives_summit_notification
alias: Notify Kat Jeff At Summit
trigger:
- entity_id: person.jeffrey
2019-07-14 01:38:53 +00:00
event: enter
platform: zone
zone: zone.summit
action:
- service: script.jeff_destination_na
initial_state: true
2019-07-14 01:38:53 +00:00
- id: jeff_leaves_summit
alias: Jeff Leaves Summit
initial_state: true
trigger:
- entity_id: person.jeffrey
2019-07-14 01:38:53 +00:00
event: leave
platform: zone
zone: zone.summit
action:
- service: input_boolean.turn_off
entity_id: input_boolean.jeff_traffic_alert_home
2019-07-14 01:38:53 +00:00
- id: kat_is_home
alias: Kat is Home
initial_state: true
trigger:
- entity_id: person.katherine
event: enter
platform: zone
zone: zone.home
action:
- service: script.family_is_home
- service: script.driveway_on
- service: input_boolean.turn_off
entity_id: input_boolean.kat_travel_monitor
- id: welcome_home
alias: Welcome Home
2019-07-14 01:38:53 +00:00
trigger:
- platform: state
entity_id:
2019-09-07 19:11:00 +00:00
- device_tracker.jeffreystonesiphone
- device_tracker.katherinestonesiphone
2019-07-14 01:38:53 +00:00
from: 'not_home'
to: 'home'
2019-09-07 19:11:00 +00:00
condition:
- condition: state
entity_id: sensor.family_status
state: Home
2019-07-14 01:38:53 +00:00
action:
- service: script.ah_report
2019-07-14 01:38:53 +00:00
data_template:
welcome_home: >
{% set person = trigger.to_state.attributes.friendly_name %}
{%- macro greeting_sentence(person) -%}
{{ [
person + " has arrived.",
person + " is in the neighborhood.",
person + " is arriving.",
"My sensors are picking up the presence of additional humans. " ~ person +" has been identified as home.",
person + " has finally made it home."
] | random }}
{%- endmacro -%}
{{greeting_sentence(person)}}
call_interuption: 1
script:
jeff_destination_zoo:
sequence:
- service: mqtt.publish
data:
topic: jeff/driving/destination
payload: Zoo
retain: true
jeff_destination_summit:
sequence:
- service: mqtt.publish
data:
topic: jeff/driving/destination
payload: Summit
retain: true
jeff_destination_none:
sequence:
- service: mqtt.publish
data:
topic: jeff/driving/destination
payload: none
retain: true
jeff_destination_na:
sequence:
- service: mqtt.publish
data:
topic: jeff/driving/destination
payload: na
retain: true
jeff_destination_home:
sequence:
- service: mqtt.publish
data:
topic: jeff/driving/destination
payload: Home
retain: true
jeff_destination_harbins:
sequence:
- service: mqtt.publish
data:
topic: jeff/driving/destination
payload: Harbins
retain: true
kat_destination_na:
sequence:
- service: mqtt.publish
data:
topic: kat/driving/destination
payload: na
retain: true