-
-
Save NdR91/5486a1e55101e062c48545395b7dd9a3 to your computer and use it in GitHub Desktop.
blueprint: | |
name: Frigate - Telegram Notification | |
description: Create automations to receive Snapshots and Clips from Frigate | |
domain: automation | |
input: | |
camera: | |
name: Frigate Camera | |
description: The name of the camera as defined in your frigate configuration (/conf.yml). | |
target_chat: | |
name: Target | |
description: 'The chat_id to be used by the Telegram bot. | |
!secret chat_id is not allowed on Blueprint, you will need the chat_id code. | |
' | |
notification: | |
name: Notification | |
description: 'Select "true" to disable notification, lave "false" to receive | |
notification. | |
' | |
selector: | |
select: | |
options: | |
- 'true' | |
- 'false' | |
default: 'false' | |
base_url: | |
name: (Optional) Base URL | |
description: The external url for your Home Assistant instance. This will default | |
to a relative URL and will open the clips in the app instead of the browser, | |
which may cause issues on some devices. | |
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: {} | |
source_url: https://gist.github.com/NdR91/5486a1e55101e062c48545395b7dd9a3 | |
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 }}' | |
target_chat: !input 'target_chat' | |
object: '{{ trigger.payload_json[''after''][''label''] }}' | |
label: '{{ object | title }}' | |
entered_zones: '{{ trigger.payload_json[''after''][''entered_zones''] }}' | |
type: '{{ trigger.payload_json[''type''] }}' | |
base_url: !input 'base_url' | |
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' | |
notification: !input 'notification' | |
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: | |
- service: telegram_bot.send_photo | |
data: | |
target: '{{ target_chat }}' | |
disable_notification: '{{ notification }}' | |
caption: | | |
Movimento rilevato. Telecamera: {{ camera_name }} (ID: {{ id }}) | |
url: >- | |
{{base_url}}/api/frigate/notifications/{{id}}/snapshot.jpg | |
- 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'' }}' | |
- service: telegram_bot.send_video | |
data: | |
target: '{{ target_chat }}' | |
disable_notification: '{{ notification }}' | |
caption: 'Movimento rilevato. Telecamera: {{ camera_name }}' | |
url: >- | |
{{base_url}}/api/frigate/notifications/{{id}}/{{camera}}/clip.mp4 | |
until: '{{ wait.trigger.payload_json[''type''] == ''end'' }}' |
I'm getting errors like this in logs that seem to prevent the notification being sent:
2021-12-13 19:56:27 ERROR (SyncWorker_1) [homeassistant.components.telegram_bot] Can't load data into ByteIO: Invalid URL '/api/frigate/notifications/1639454176.217215-dez4om/camera_1/clip.mp4': No schema supplied. Perhaps you meant http:///api/frigate/notifications/1639454176.217215-dez4om/camera_1/clip.mp4?
Where does the base_url come from?
I see the same error. Have you solved it finally? @patmood
Me ocurre lo mismo. lo habeis solucionado?
I see the same error. Have you solved it finally?
Hello i got same issue,
looking at source code i see we "need" to specify Base URL in the blueprint automation, base url is our homeassistant ip.
Anyone figure out how to get this working under frigate 12 beta, the automation fires but I don't get a snapshot sent to my chat id
I'm also on frigate12, and automation i used on frigate 11 still works
Can you help me out with the settings, did you have to use a base url, put the - in the target chat, notification set to true/false? maybe post your YAML (without the chat Id #)
Here you are the frigate automation
alias: Frigate - Notification Telegram
description: ""
trigger:
- platform: mqtt
topic: frigate/events
payload: new
value_template: "{{ value_json.type }}"
action:
- service: notify.telegram_main
data_template:
message: rilevato {{trigger.payload_json["after"]["label"]}}
data:
photo:
- url: >-
http://localhost:5000/api/events/{{trigger.payload_json["after"]["id"]}}/snapshot.jpg?quality=100&bbox=1
caption: >-
**{{trigger.payload_json["after"]["camera"]}}**: rilevato
{{trigger.payload_json["after"]["label"]}}.
mode: single
service: notify.telegram_main
I don't think you are working off the current blueprint, your code references service: notify.telegram_main and the new code uses the service: telegram_bot.send_video
For me it doesn't work. Cameras aren't autodetected on the camera field (tried putting camera.cameranameonfrigateconf and cameranameonfrigateconf with no success). Tried with my Home Assistant IP / Frigate IP on Baase URL with the same results, can someone who has it working share the UI configuration that is using?
I don't receive any type of message on the desired group, that's what i see on logs:
Edit: Just fixed it by addind home assistant URL:PORT on BaseURL and adding a little delay on the yaml config:
Suggestion: Is it posible to add this delay on the blueprint GUI? And also the message customization? Here it's done, if you want to check:
Nice job :)
Sounds like you didn't load the integration part, can you view the cameras entities in lovelace?
…
On Fri, Feb 17, 2023 at 6:35 AM hardwareadictos @.> wrote: @.* commented on this gist. ------------------------------ For me it doesn't work. Cameras aren't autodetected on the camera field (tried putting camera.cameranameonfrigateconf and cameranameonfrigateconf with no success). Tried with my Home Assistant IP / Frigate IP on Baase URL with the same results, can someone who has it working share the UI configuration that is using? — Reply to this email directly, view it on GitHub https://gist.github.com/5486a1e55101e062c48545395b7dd9a3#gistcomment-4474209 or unsubscribe https://github.com/notifications/unsubscribe-auth/AIZ2PT55EWLLKXPY3XWJ7N3WX5PB5BFKMF2HI4TJMJ2XIZLTSKBKK5TBNR2WLJDHNFZXJJDOMFWWLK3UNBZGKYLEL52HS4DFQKSXMYLMOVS2I5DSOVS2I3TBNVS3W5DIOJSWCZC7OBQXE5DJMNUXAYLOORPWCY3UNF3GS5DZVRZXKYTKMVRXIX3UPFYGLK2HNFZXIQ3PNVWWK3TUUZ2G64DJMNZZDAVEOR4XAZNEM5UXG5FFOZQWY5LFVEYTCMRZGU4DMOJTU52HE2LHM5SXFJTDOJSWC5DF . You are receiving this email because you commented on the thread. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .
It's a already fixed (I edited the reply). Thanks anyways.
i see it is not working because i defined some zones.
I removed the zones and it works.
In the field for zones, i tried (zone_name), zone_name and -zone_name. I don't know how we should enter the zones. But as soon as filtering is on and i define the zone, it stops working. tried on two camera's, both stop working then for telegram notifications. But when i disable zone filtering, it works immediately.
would love some assistance there.
So it was adding lines/minus characters to get it fixed.
- zone_0
- zone_1
Now working good, except that sometimes i do not get videos send. Photos are always being send, videos only sometimes. Could the video file be too big? Or too short after another? How can i debug? In frigate the events can be played without a problem.
@borgqueenx I had the same issue too. The only thing that seemed to help is adding timeout: 1000
like this.
- service: telegram_bot.send_video
data:
target: '{{ target_chat }}'
disable_notification: '{{ notification }}'
caption: 'Movimento rilevato. Telecamera: {{ camera_name }}'
timeout: 1000
url: >-
{{base_url}}/api/frigate/notifications/{{id}}/{{camera}}/clip.mp4
It changes the send_video timeout to 1000 seconds instead of the default. Videos might arrive 10 mins+ after the event but it can't be helped.
Last time I tried to troubleshoot, I noticed the automation hanging in the send_video section, even though the source video is already playable locally.
10mb files shouldn't take so long to upload on my internet speed so I really believe it's Telegram themselves limiting video upload speeds. 🫤
I am getting the following error message
2024-01-14 13:18:51.917 ERROR (SyncWorker_2) [homeassistant.components.telegram_bot] Can't load data into ByteIO: Invalid URL '/api/frigate/notifications/1705234731.428055-zw79cd/snapshot.jpg': No scheme supplied. Perhaps you meant https:///api/frigate/notifications/1705234731.428055-zw79cd/snapshot.jpg? 2024-01-14 13:18:51.918 ERROR (SyncWorker_2) [homeassistant.components.telegram_bot] Can't send file with kwargs: {'disable_notification': False, 'caption': 'Movimento rilevato. Telecamera: Garage (ID: 1705234731.428055-zw79cd)', 'url': '/api/frigate/notifications/1705234731.428055-zw79cd/snapshot.jpg'} 2024-01-14 13:19:13.164 ERROR (SyncWorker_8) [homeassistant.components.telegram_bot] Can't load data into ByteIO: Invalid URL '/api/frigate/notifications/1705234731.428055-zw79cd/garage/clip.mp4': No scheme supplied. Perhaps you meant https:///api/frigate/notifications/1705234731.428055-zw79cd/garage/clip.mp4? 2024-01-14 13:19:13.164 ERROR (SyncWorker_8) [homeassistant.components.telegram_bot] Can't send file with kwargs: {'disable_notification': False, 'caption': 'Movimento rilevato. Telecamera: Garage', 'url': '/api/frigate/notifications/1705234731.428055-zw79cd/garage/clip.mp4'}
Is it possible to send the snapshot to telegram with the motion box detected by Frigate ?
Works like a charm, thanks a lot!
Could you consider the possibility that we can modify the Italian texts for custom ones?
I have also included mqtt message data from Frigate.
If anyone is interested, I created a fork that incorporates Gemini AI generative comments.
(https://gist.github.com/jakesOneFourSeven/cc8fab1e8712a34dbd596ebd355d76ea)
Has anyone managed to send a video via telegram?
Has anyone managed to send a video via telegram?
Yes, I receive a screenshot and then a video shortly after that.
Has anyone managed to send a video via telegram?
Yes, I receive a screenshot and then a video shortly after that.
But HOW?
Not work...
alias: Snapshot to TG by moving
description: ""
trigger:
- platform: mqtt
topic: frigate/events
value_template: "{{ value_json['after']['camera'] }}"
condition:
- condition: state
entity_id: alarm_control_panel.aqara_hub_alarm
state: armed_away
action:
- service: notify.me
data:
title: A title
message: A message
data:
inline_keyboard:
- >-
Disable Camera Alerts - 30m:/disable_cam_30, Disable Camera Alerts -
1h:/disable_cam_60
- >-
Disable Camera Alerts Forever:/disable_cam_forever, Sound Panic
Alarm:/sound_alarm
photo:
- url: >-
http://192.168.1.169:5000/api/frigate/notifications/{{trigger.payload_json["after"]["id"]}}/snapshot.jpg
mode: single
Error rendering data template: UndefinedError: 'dict object' has no attribute 'payload_json'
@kornalexandr2
This is from the blueprint:
-
service: telegram_bot.send_video
data:
target: '{{ target_chat }}'
disable_notification: '{{ notification }}'
caption: ' {{ generated_content.text }} '
url: '{{base_url}}/api/frigate/notifications/{{id}}/{{camera}}/clip.mp4' -
service: telegram_bot.send_photo
data:
target: '{{ target_chat }}'
disable_notification: '{{ notification }}'
caption: ' {{ generated_content.text }} '
url: '{{base_url}}/api/frigate/notifications/{{id}}/snapshot.jpg'
Can I also enable notificationa for the audio detectors of frigate? E.g. der audio detector for fire alarm I would Like to get These notifications
This seems to work, BUT it's sending a notification every "interval" for stationary objects.
that means a big cluttering of notifications for parked cars, for example
If you need notification of offline devices via app and telegram, check my project.
https://github.com/guikof97/Automation_Home_Assistant_Telegram_Notify_and_Check_Offline_Cameras_Frigate
This is great. Thank you so much for creating this. Is there anyway a "Message thread id" can be added so we can specify a topic to send the message to? This is done in other Telegram bot actions but i cant seem to figure out how to add it on my own to this blueprint
this works beautifully! The only thing i changed was the message body to english.