blakeblackshear.frigate/docs/docs/guides/ha_notifications.md
SgtBatten 6e0faa930a
Change blueprint url to newest version. (#6091)
When home assistant mate the default values change last year it broke the original blueprint when it looked for the camera fps as no default was coded. I've been maintaining a fixed version with new features in hunterjms absence. Yesterday the mods split the thread so this is the latest post and blueprint now.
2023-04-15 07:20:31 -05:00

3.4 KiB

id title
ha_notifications Home Assistant notifications

The best way to get started with notifications for Frigate is to use the Blueprint. You can use the yaml generated from the Blueprint as a starting point and customize from there.

It is generally recommended to trigger notifications based on the frigate/events mqtt topic. This provides the event_id needed to fetch thumbnails/snapshots/clips and other useful information to customize when and where you want to receive alerts. The data is published in the form of a change feed, which means you can reference the "previous state" of the object in the before section and the "current state" of the object in the after section. You can see an example here.

Here is a simple example of a notification automation of events which will update the existing notification for each change. This means the image you see in the notification will update as Frigate finds a "better" image.

automation:
  - alias: Notify of events
    trigger:
      platform: mqtt
      topic: frigate/events
    action:
      - service: notify.mobile_app_pixel_3
        data_template:
          message: 'A {{trigger.payload_json["after"]["label"]}} was detected.'
          data:
            image: 'https://your.public.hass.address.com/api/frigate/notifications/{{trigger.payload_json["after"]["id"]}}/thumbnail.jpg?format=android'
            tag: '{{trigger.payload_json["after"]["id"]}}'
            when: '{{trigger.payload_json["after"]["start_time"]|int}}'

Note that iOS devices support live previews of cameras by adding a camera entity id to the message data.

automation:
  - alias: Security_Frigate_Notifications
    description: ""
    trigger:
      - platform: mqtt
        topic: frigate/events
        payload: new
        value_template: "{{ value_json.type }}"
    action:
      - service: notify.mobile_app_iphone
        data:
          message: 'A {{trigger.payload_json["after"]["label"]}} was detected.'
          data:
            image: >-
              https://your.public.hass.address.com/api/frigate/notifications/{{trigger.payload_json["after"]["id"]}}/thumbnail.jpg              
            tag: '{{trigger.payload_json["after"]["id"]}}'
            when: '{{trigger.payload_json["after"]["start_time"]|int}}'
            entity_id: camera.{{trigger.payload_json["after"]["camera"] | replace("-","_") | lower}}
    mode: single

Conditions

Conditions with the before and after values allow a high degree of customization for automations.

When a person enters a zone named yard

condition:
  - "{{ trigger.payload_json['after']['label'] == 'person' }}"
  - "{{ 'yard' in trigger.payload_json['after']['entered_zones'] }}"

When a person leaves a zone named yard

condition:
  - "{{ trigger.payload_json['after']['label'] == 'person' }}"
  - "{{ 'yard' in trigger.payload_json['before']['current_zones'] }}"
  - "{{ not 'yard' in trigger.payload_json['after']['current_zones'] }}"

Notify for dogs in the front with a high top score

condition:
  - "{{ trigger.payload_json['after']['label'] == 'dog' }}"
  - "{{ trigger.payload_json['after']['camera'] == 'front' }}"
  - "{{ trigger.payload_json['after']['top_score'] > 0.98 }}"