Posting this quite clunky solution for self-imagined problem. I would be interested what other methods there would be to solve this.
Recently Frigate integration took Image entities image entity to use for recognized objects (Image Entity | Home Assistant Developer Docs)
This entity points to URL /api/image_proxy/image.[camera name]_[object]?token=[token]
This part of URL is found from image entitys “entity_picture” attribute.
Token changes every time.
I wanted to get notification when car arrives to front yard (easy) with picture of recognized object (surprisingly not that easy). I could have used cameras snapshot functionality, but I specifically wanted the image of recognized object by Frigate. Yes, snapshot from camera at the same time would effectively be same, but my mind was set.
For notifications I use Pushover. It does not allow downloading pictures from URL in sending, file must be local. I was not able to find location of image entitys pictures from local disk.
Solution in use is:
- Download image entity image using Downloader
- Send pushover notification attaching downloaded picture
Here are relevant configurations:
downloader in configuration.yaml
downloader:
download_dir: downloads
Automation:
alias: "Cameras: car arrival"
description: ""
trigger:
- platform: state
entity_id:
- sensor.frontyard_car_count
id: frontyard_car_count
condition: []
action:
- choose:
- conditions:
- condition: and
conditions:
- condition: trigger
id:
- frontyard_car_count
- condition: template
value_template: >-
{{ trigger.from_state.state|int < trigger.to_state.state|int
}}
sequence:
- service: downloader.download_file
data:
overwrite: true
url: >-
{{ 'http://[IP ADDRESS FOR HOME ASSISTANT]:8123'+state_attr('image.frontyard_car','entity_picture') }}
subdir: frontyard
filename: car.jpg
- service: notify.pushover
data:
message: Car at front yard
data:
attachment: downloads/frontyard/car.jpg
mode: single