Save a camera snapshot with archive when motion is detected

Tags: #<Tag:0x00007f326cc70218>

Github Gist: https://gist.github.com/niemyjski/08c566a4fe64fb2e70998ee4f38c9d1e

Explanation

Added the ability to save a camera snapshot to two folders one for latest and one for archive. I’m using it for taking snapshots of when my mailbox is opened.

Known issues:

There seems to be a bug with templates where it doesn’t pick up the defaults for file and archive file. Please copy those values from the blueprint.

Blueprint Code

blueprint:
  name: Save a camera snapshot when motion is detected
  description: Save a camera snapshot with archive when motion is detected
  domain: automation
  source_url: https://gist.github.com/niemyjski/08c566a4fe64fb2e70998ee4f38c9d1e
  input:
    motion_sensor:
      name: Motion sensor
      description: The sensor wich triggers the snapshot creation
      selector:
        entity:
          domain: binary_sensor
          device_class: motion
    camera:
      name: Camera
      description: The camera which creates the snapshot
      selector:
        entity:
          domain: camera
    file:
      name: File Path
      description: The file path to store the most current snapshot.
      default: '/media/CAMERA_NAME/last_motion.jpg'
    archive_file:
      name: Archive File Path
      description: The file path to store the snapshot in an archive folder.
      default: '/media/CAMERA_NAME/archive/motion_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
    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
trigger:
  platform: state
  entity_id: !input motion_sensor
  from: 'off'
  to: 'on'
variables:
  motion_sensor: !input 'motion_sensor'
  camera: !input 'camera'
  file: !input file
  archive_file: !input archive_file
  delay: !input 'delay'
action:
- delay: '{{ delay }}'
- service: camera.snapshot
  entity_id: !input 'camera'
  data:
    filename: !input file
- service: camera.snapshot
  entity_id: !input 'camera'
  data:
    filename: !input archive_file

Hi
Could you ad delay as an option as the original?

Best Regards

I’ve added the delay

Thank you :smiley: