# 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