- Introduced holiday automations for Christmas and Halloween, including turning decorations on/off and playing music. - Added day camp announcements and reminders for kids, including preparation and departure notifications. - Created specific automation scripts for Declan and Jordyn, focusing on medication reminders and school preparations. - Implemented daily schedules for kids during summer, with structured activities and announcements. - Added blueprints for litter notifications and tank moisture interlocks to enhance home automation. - Established a family schedule package to manage school dates and events effectively.
89 lines
3.3 KiB
YAML
89 lines
3.3 KiB
YAML
# One controller owns the Blink group and its cameras' motion detection.
|
|
- id: '1758196295864'
|
|
alias: Inside Blink Cameras - Reconcile Family Presence
|
|
description: >-
|
|
Disarm when either parent is home. Enable camera motion detection and arm
|
|
only when both trackers have valid away states. Reconcile on startup,
|
|
automation reload and Blink recovery; unknown location never means away.
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- device_tracker.joshuas_iphone_of_pain
|
|
- device_tracker.pollys_iphone
|
|
to: null
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type: automation_reloaded
|
|
- trigger: state
|
|
entity_id: alarm_control_panel.blink_inside
|
|
to:
|
|
- armed_away
|
|
- disarmed
|
|
conditions: []
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: template
|
|
value_template: >-
|
|
{{ is_state('device_tracker.joshuas_iphone_of_pain', 'home')
|
|
or is_state('device_tracker.pollys_iphone', 'home') }}
|
|
sequence:
|
|
- if:
|
|
- condition: template
|
|
value_template: >-
|
|
{{ has_value('alarm_control_panel.blink_inside')
|
|
and not is_state('alarm_control_panel.blink_inside', 'disarmed') }}
|
|
then:
|
|
- action: alarm_control_panel.alarm_disarm
|
|
continue_on_error: true
|
|
target:
|
|
entity_id: alarm_control_panel.blink_inside
|
|
# Recheck after the network action, before changing camera settings.
|
|
- condition: template
|
|
value_template: >-
|
|
{{ is_state('device_tracker.joshuas_iphone_of_pain', 'home')
|
|
or is_state('device_tracker.pollys_iphone', 'home') }}
|
|
- action: camera.disable_motion_detection
|
|
continue_on_error: true
|
|
target:
|
|
device_id:
|
|
- 3df00a0796efe006e4ea349a9752faba
|
|
- 0c13483d761efe3b85e534fadd323fe3
|
|
- 5aa158596e48441ea606dd881a34402d
|
|
- d045a0a68c3c4d52a7beb2a28fdf6993
|
|
- 044c43ea05ceff58b1209f6441c24183
|
|
- conditions:
|
|
- condition: template
|
|
value_template: >-
|
|
{{ states('device_tracker.joshuas_iphone_of_pain')
|
|
not in ['home', 'unknown', 'unavailable', '']
|
|
and states('device_tracker.pollys_iphone')
|
|
not in ['home', 'unknown', 'unavailable', '']
|
|
and has_value('alarm_control_panel.blink_inside') }}
|
|
sequence:
|
|
- action: camera.enable_motion_detection
|
|
# One unavailable camera must not prevent arming the rest of the group.
|
|
continue_on_error: true
|
|
target:
|
|
device_id:
|
|
- 3df00a0796efe006e4ea349a9752faba
|
|
- 0c13483d761efe3b85e534fadd323fe3
|
|
- 5aa158596e48441ea606dd881a34402d
|
|
- d045a0a68c3c4d52a7beb2a28fdf6993
|
|
- 044c43ea05ceff58b1209f6441c24183
|
|
- condition: template
|
|
value_template: >-
|
|
{{ states('device_tracker.joshuas_iphone_of_pain')
|
|
not in ['home', 'unknown', 'unavailable', '']
|
|
and states('device_tracker.pollys_iphone')
|
|
not in ['home', 'unknown', 'unavailable', ''] }}
|
|
- if:
|
|
- condition: template
|
|
value_template: "{{ not is_state('alarm_control_panel.blink_inside', 'armed_away') }}"
|
|
then:
|
|
- action: alarm_control_panel.alarm_arm_away
|
|
target:
|
|
entity_id: alarm_control_panel.blink_inside
|
|
mode: restart
|