Forked from mcinnes01/send-camera-snapshot-when-event-type-detected.yaml
Last active
July 14, 2023 06:31
-
-
Save adirburke/ae18d355b83528848878f155fcf21656 to your computer and use it in GitHub Desktop.
Send a camera snapshot when motion event type is detected
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
blueprint: | |
name: Send a camera snapshot when motion event type is detected | |
description: 'This automation blueprint creates a camera snapshot if general motion or a specific motion event object is detected and sends a notification to your phone with the picture.' | |
domain: automation | |
input: | |
motion_sensor: | |
name: Motion sensor | |
description: The sensor which triggers the snapshot creation | |
selector: | |
entity: | |
domain: binary_sensor | |
device_class: motion | |
event_object: | |
name: Event detection type | |
description: Type of object to detect from a motion event | |
default: None Identified | |
selector: | |
select: | |
options: | |
- None Identified | |
- person | |
- car | |
override_sensor: | |
name: Override sensor | |
description: Binary sensor to override detection | |
selector: | |
entity: | |
domain: binary_sensor | |
camera: | |
name: Camera | |
description: The camera which creates the snapshot | |
selector: | |
entity: | |
domain: camera | |
notify_device: | |
name: Device to notify | |
description: Device needs to run the official Home Assistant app to receive | |
notifications | |
selector: | |
device: | |
integration: mobile_app | |
is_ios: | |
name: Is it an iOS device? | |
description: Toggle if your selected device runs iOS, default is Android | |
selector: | |
boolean: | |
default: false | |
notification_title: | |
name: Notification title (Optional) | |
description: 'Default: "Motion detected!"' | |
default: Motion detected! | |
notification_message: | |
name: Notification message (Optional) | |
description: 'Default: "{{ motion_sensor_name }} detected movement!"' | |
default: '{{ motion_sensor_name }} detected movement!' | |
delay: | |
name: Delay (Optional) | |
description: Wait before creating camera snapshot | |
default: '' | |
selector: | |
number: | |
min: 0.0 | |
max: 60.0 | |
unit_of_measurement: seconds | |
mode: slider | |
step: 1.0 | |
source_url: https://community.home-assistant.io/t/send-camera-snapshot-notification-on-motion/254565 | |
trigger: | |
platform: state | |
entity_id: !input 'motion_sensor' | |
from: 'off' | |
to: 'on' | |
condition: | |
- condition: and | |
conditions: | |
- condition: state | |
entity_id: !input 'override_sensor' | |
state: 'off' | |
- condition: state | |
entity_id: !input 'motion_sensor' | |
attribute: event_object | |
state: !input event_object | |
variables: | |
motion_sensor: !input 'motion_sensor' | |
motion_sensor_name: '{{ states[motion_sensor].name }}' | |
camera: !input 'camera' | |
notify_device: !input 'notify_device' | |
is_ios: !input 'is_ios' | |
notification_title: !input 'notification_title' | |
notification_message: !input 'notification_message' | |
delay: !input 'delay' | |
snapshot_create_file_path: /config/www/tmp/snapshot_{{ states[camera].object_id | |
}}.jpg | |
snapshot_access_file_path: '{{ snapshot_create_file_path | replace(''/config/www'',''/local'') | |
}}' | |
action: | |
- delay: '{{ delay }}' | |
- service: camera.snapshot | |
entity_id: !input 'camera' | |
data: | |
filename: '{{ snapshot_create_file_path }}' | |
- device_id: !input 'notify_device' | |
domain: mobile_app | |
type: notify | |
title: '{{ notification_title }}' | |
message: '{{ notification_message }}' | |
data: '{% set android_data = {"image": "%s"} | format(snapshot_access_file_path) | |
%} {% set ios_data = {"attachment": {"url": "%s", "content_type": "JPEG"}} | format(snapshot_access_file_path) | |
%} {{ ios_data if is_ios else android_data }}' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment