Last active
January 17, 2024 14:50
-
-
Save mcinnes01/921cbb14efc9c5c7a933beb903603f8c 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
I had to update line 78 with "off" for it to work