Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- blueprint:
- name: Frigate Notification
- description: "## Frigate Mobile App Notification\n\nThis blueprint will send a notification\
- \ to your device when a Frigate event for the selected\ncamera is fired. The notification\
- \ will initially include the thumbnail of the detection, but\nwill update to include\
- \ an actionable notification allowing you to view the saved clip when\navailable.\n\
- \nWith this blueprint, you may send the notification to multiple devices by leaving\
- \ \"Device\"\nblank and instead use a [notification group][1].\n\n### Required\
- \ entities:\n - Frigate Camera Name\n - Mobile App Device **or** the name of\
- \ a Notification Group\n\n### Optional features:\n - You can limit notifications\
- \ to objects entering pre-defined [zones][2] in Frigate.\n - You can specify\
- \ which [zones][2] to be notified about. This must be a list (e.g.):\n ```yaml\n\
- \ - backyard\n ```\n - You can specify what type of [objects][3] to be\
- \ notified about. This must be a list (e.g.):\n ```yaml\n - person\n \
- \ - car\n ```\n - You can disable notifications if a presence entity or group\
- \ is \"home\".\n - You can configure a cooldown for the camera to reduce the\
- \ number of notifications\n when back-to-back events occur.\n - You can silence\
- \ future notifications for a defined amount of time through\n actionable notifications.\
- \ This is helpful in situations where you know you will\n be triggering detections\
- \ for an extended period of time. i.e. kids playing outside.\n\n[1]: https://companion.home-assistant.io/docs/notifications/notifications-basic#sending-notifications-to-multiple-devices\n\
- [2]: https://blakeblackshear.github.io/frigate/configuration/cameras#zones\n[3]:\
- \ https://blakeblackshear.github.io/frigate/configuration/objects\n"
- domain: automation
- source_url: https://gist.github.com/hunterjm/23c1588a9f2b8b9c2a62ffc364e17f8c
- input:
- camera:
- name: Frigate Camera
- description: The name of the camera as defined in your frigate configuration.
- notify_device:
- name: Device
- description: The device must run the official Home Assistant app to receive
- notifications.
- default: false
- selector:
- device:
- integration: mobile_app
- notify_group:
- name: Notification Group
- description: The name of the notification group to call.
- default: ''
- zone_filter:
- name: (Optional) Zone Filter
- description: Only notify if object has entered a defined zone.
- default: false
- selector:
- boolean: {}
- zones:
- name: (Optional) Trigger Zones
- description: A list (-) of zones you wish to recieve notifications for.
- default: []
- selector:
- object: {}
- labels:
- name: (Optional) Trigger Objects
- description: A list (-) of objects you wish to recieve notifications for.
- default: []
- selector:
- object: {}
- presence_filter:
- name: (Optional) Presence Filter
- description: Only notify if selected presence entity is not "home".
- default: ''
- selector:
- entity: {}
- cooldown:
- name: (Optional) Cooldown
- description: Delay before sending another notification for this camera after
- the last event.
- default: 30
- selector:
- number:
- max: 300.0
- min: 0.0
- unit_of_measurement: seconds
- step: 1.0
- mode: slider
- silence_timer:
- name: (Optional) Silence Notifications
- description: 'How long to silence notifications for this camera when requested
- as part of the actionable notification.
- '
- default: 30
- selector:
- number:
- max: 300.0
- min: 0.0
- unit_of_measurement: minutes
- step: 1.0
- mode: slider
- base_url:
- name: Base URL
- description: (Optional) An Input Text with the base URL for notifications.
- default: ''
- selector:
- entity:
- domain: input_text
- mode: single
- max_exceeded: silent
- trigger:
- platform: mqtt
- topic: frigate/events
- payload: !input 'camera'
- value_template: '{{ value_json[''after''][''camera''] }}'
- variables:
- id: '{{ trigger.payload_json[''after''][''id''] }}'
- camera: '{{ trigger.payload_json[''after''][''camera''] }}'
- camera_name: '{{ camera | replace(''_'', '' '') | title }}'
- object: '{{ trigger.payload_json[''after''][''label''] }}'
- label: '{{ object | title }}'
- entered_zones: '{{ trigger.payload_json[''after''][''entered_zones''] }}'
- type: '{{ trigger.payload_json[''type''] }}'
- group_target: !input 'notify_group'
- zone_only: !input 'zone_filter'
- input_zones: !input 'zones'
- zones: '{{ input_zones | list }}'
- input_labels: !input 'labels'
- labels: '{{ input_labels | list }}'
- presence_entity: !input 'presence_filter'
- base_url: !input 'base_url'
- condition:
- - '{{ type != ''end'' }}'
- - '{{ not zone_only or entered_zones|length > 0 }}'
- - '{{ not zones|length or zones|select(''in'', entered_zones)|list|length > 0 }}'
- - '{{ not labels|length or object in labels }}'
- - '{{ not presence_entity or not is_state(presence_entity, ''home'') }}'
- action:
- - choose:
- - conditions: '{{ not group_target }}'
- sequence:
- - device_id: !input 'notify_device'
- domain: mobile_app
- type: notify
- message: A {{ label }} is being detected on the {{ camera_name }} camera.
- data:
- tag: '{{ id }}'
- group: frigate-notification-{{ camera }}
- image: '{{ base_url }}/api/frigate/notifications/{{ id }}/thumbnail.jpg?format=android'
- attachment:
- url: '{{ base_url }}/api/frigate/notifications/{{ id }}/thumbnail.jpg'
- content-type: jpeg
- default:
- - service: notify.{{ group_target }}
- data:
- message: A {{ label }} is being detected on the {{ camera_name }} camera.
- data:
- tag: '{{ id }}'
- group: frigate-notification-{{ camera }}
- image: '{{ base_url }}/api/frigate/notifications/{{ id }}/thumbnail.jpg?format=android'
- attachment:
- url: '{{ base_url }}/api/frigate/notifications/{{ id }}/thumbnail.jpg'
- content-type: jpeg
- - repeat:
- sequence:
- - wait_for_trigger:
- - platform: mqtt
- topic: frigate/events
- payload: '{{ id }}'
- value_template: '{{ value_json[''after''][''id''] }}'
- timeout:
- minutes: 2
- continue_on_timeout: false
- - condition: template
- value_template: '{{ wait.trigger.payload_json[''type''] == ''end'' }}'
- - choose:
- - conditions: '{{ not group_target }}'
- sequence:
- - device_id: !input 'notify_device'
- domain: mobile_app
- type: notify
- message: A {{ label }} was detected on the {{ camera_name }} camera.
- data:
- tag: '{{ id }}'
- group: frigate-notification-{{ camera }}
- image: '{{ base_url }}/api/frigate/notifications/{{ id }}/thumbnail.jpg?format=android'
- attachment:
- url: '{{ base_url }}/api/frigate/notifications/{{ id }}/thumbnail.jpg'
- content-type: jpeg
- actions:
- - action: URI
- title: View Clip
- uri: '{{ base_url }}/api/frigate/notifications/{{ id }}/{{ camera }}/clip.mp4'
- - action: silence-{{ camera }}
- title: Pause Notifications
- destructive: true
- default:
- - service: notify.{{ group_target }}
- data:
- message: A {{ label }} was detected on the {{ camera_name }} camera.
- data:
- tag: '{{ id }}'
- group: frigate-notification-{{ camera }}
- image: '{{ base_url }}/api/frigate/notifications/{{ id }}/thumbnail.jpg?format=android'
- attachment:
- url: '{{ base_url }}/api/frigate/notifications/{{ id }}/thumbnail.jpg'
- content-type: jpeg
- actions:
- - action: URI
- title: View Clip
- uri: '{{ base_url }}/api/frigate/notifications/{{ id }}/{{ camera }}/clip.mp4'
- - action: silence-{{ camera }}
- title: Pause Notifications
- destructive: true
- - wait_for_trigger:
- - platform: event
- event_type: mobile_app_notification_action
- event_data:
- action: silence-{{ camera }}
- timeout:
- seconds: !input 'cooldown'
- continue_on_timeout: false
- - delay:
- minutes: !input 'silence_timer'
- until: '{{ wait.trigger.payload_json[''type''] == ''end'' }}'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement