Skip to content

Instantly share code, notes, and snippets.

@aries-soft
Last active December 29, 2024 14:43
Show Gist options
  • Save aries-soft/7ef3ba11318aeb62c3efd9ca94fdd65f to your computer and use it in GitHub Desktop.
Save aries-soft/7ef3ba11318aeb62c3efd9ca94fdd65f to your computer and use it in GitHub Desktop.
alias: frigate new
description: ""
trigger:
- platform: mqtt
topic: frigate/reviews
condition:
- condition: template
alias: Is person?
value_template: "{{ 'person' in objects}}"
- condition: or
conditions:
- condition: template
alias: Is new?
value_template: "{{ type == 'new' }}"
- condition: template
alias: Is end?
value_template: "{{ type == 'end' }}"
alias: Is new or end
- condition: or
conditions:
- condition: template
value_template: "{{ 'street' in zones}}"
alias: street?
- condition: state
entity_id: input_boolean.athome
state: "off"
alias: Is street or nobody home
action:
- variables:
object_name:
person: 🙍‍♂️
cat: 🐱
dog: 🐶
car: 🚗
bird: 🐦
bicycle: 🚲
camera_name:
camera_1: двор
camera_2: двор 2
camera_3: улица
- choose:
- conditions:
- condition: template
alias: Is new?
value_template: "{{ type == 'new' }}"
sequence:
- action: telegram_bot.send_photo
metadata: {}
data:
authentication: digest
url: >-
http://192.168.0.10:8123/api/frigate/notifications/{{events[0]}}/snapshot.jpg?bbox=1&motion=1&regions=1
caption: >-
🎥: {% for obj in objects %} {{ object_name[obj] }} {% endfor %}
{{ camera_name[camera] }}
parse_mode: html
- conditions:
- condition: template
alias: Is end?
value_template: "{{ type == 'end' }}"
sequence:
- action: telegram_bot.send_animation
metadata: {}
data:
authentication: digest
caption: >-
🎥: {% for obj in objects %} {{ object_name[obj] }} {% endfor %}
{{ camera_name[camera] }}
url: >-
http://192.168.0.10:8123/api/frigate/notifications/{{id}}/review_preview.gif
inline_keyboard: |-
{% set ns = namespace(c = '') %} {% for eid in events %}
{% set ns.c = ns.c ~ "🎥:/send_video " ~ eid %}
{%- if not loop.last %}
{%- if loop.index % 3 > 0 %}
{% set ns.c = ns.c ~ ',' %}
{%- else %}
{% set ns.c = ns.c ~ ';' %}
{%- endif %}
{%- endif %}
{% endfor %} {{ ns.c.split(";") }}
parse_mode: html
variables:
id: "{{ trigger.payload_json['after']['id'] }}"
camera: "{{ trigger.payload_json['after']['camera'] }}"
type: "{{ trigger.payload_json['type'] }}"
zones: "{{ trigger.payload_json['after']['data']['zones'] }}"
objects: "{{ trigger.payload_json['after']['data']['objects'] }}"
events: "{{ trigger.payload_json['after']['data']['detections'] }}"
mode: parallel
max: 10
alias: frigate new full
description: ""
trigger:
- platform: mqtt
topic: frigate/reviews
condition:
- condition: template
alias: Is person?
value_template: "{{ 'person' in objects}}"
enabled: false
- condition: or
conditions:
- condition: template
alias: Is new?
value_template: "{{ type == 'new' }}"
- condition: template
alias: Is end?
value_template: "{{ type == 'end' }}"
alias: Is new or end
enabled: false
- condition: or
conditions:
- condition: template
value_template: "{{ 'street' in zones}}"
alias: street?
- condition: state
entity_id: input_boolean.athome
state: "off"
alias: Is street or nobody home
enabled: false
action:
- variables:
object_name:
person: 🙍‍♂️
cat: 🐱
dog: 🐶
car: 🚗
bird: 🐦
bicycle: 🚲
camera_name:
camera_1: двор
camera_2: двор 2
camera_3: улица
- choose:
- conditions:
- condition: template
alias: Is new?
value_template: "{{ type == 'new' }}"
sequence:
- action: telegram_bot.send_photo
metadata: {}
data:
authentication: digest
url: >-
http://192.168.0.10:8123/api/frigate/notifications/{{events[0]}}/snapshot.jpg?bbox=1&motion=1&regions=1
caption: >-
🎥: {% for obj in objects %} {{ object_name[obj] }} {% endfor %}
{{ camera_name[camera] }}
parse_mode: html
- conditions:
- condition: template
alias: Is end?
value_template: "{{ type == 'end' }}"
sequence:
- action: telegram_bot.send_animation
metadata: {}
data:
authentication: digest
caption: >-
🎥: {% for obj in objects %} {{ object_name[obj] }} {% endfor %}
{{ camera_name[camera] }}
url: >-
http://192.168.0.10:8123/api/frigate/notifications/{{id}}/review_preview.gif
inline_keyboard: 🎥:/send_video_full {{camera}} {{start_time}} {{end_time}}
parse_mode: html
mode: parallel
variables:
id: "{{ trigger.payload_json['after']['id'] }}"
camera: "{{ trigger.payload_json['after']['camera'] }}"
type: "{{ trigger.payload_json['type'] }}"
zones: "{{ trigger.payload_json['after']['data']['zones'] }}"
objects: "{{ trigger.payload_json['after']['data']['objects'] }}"
events: "{{ trigger.payload_json['after']['data']['detections'] }}"
start_time: "{{ trigger.payload_json['after']['start_time'] }}"
end_time: "{{ trigger.payload_json['after']['end_time'] }}"
max: 10
alias: frigate send video
description: ""
trigger:
- platform: event
event_type: telegram_callback
event_data:
command: /send_video
id: send_video
- platform: event
event_type: telegram_callback
event_data:
command: /send_video_full
id: send_video_full
condition: []
action:
- choose:
- conditions:
- condition: trigger
id: send_video
sequence:
- action: telegram_bot.send_video
metadata: {}
data:
authentication: digest
target: "{{telegram_chat_id}}"
url: >-
http://192.168.0.10:8123/api/frigate/notifications/{{telegram_args_as_text}}/clip.mp4
- conditions:
- condition: trigger
id:
- send_video_full
sequence:
- action: telegram_bot.send_video
metadata: {}
data:
authentication: digest
target: "{{telegram_chat_id}}"
url: >-
http://192.168.0.10:5000/api/{{telegram_args[0]}}/start/{{telegram_args[1]}}/end/{{telegram_args[2]}}/clip.mp4
caption: >-
{{ as_datetime(telegram_args[1]|int+10800).strftime('%d.%m.%Y
%H:%M:%S') }}
variables:
trigger_event_type: "{{ trigger.event.event_type }}"
telegram_args: "{{ trigger.event.data['args'] }}"
telegram_args_as_text: "{% for arg in telegram_args %}{{ arg }} {% endfor %}"
telegram_chat_id: "{{ trigger.event.data['chat_id'] }}"
telegram_sender_first_name: "{{ trigger.event.data['from_first'] }}"
telegram_sender_last_name: "{{ trigger.event.data['from_last'] }}"
telegram_sender_full_name: "{{ telegram_sender_first_name }} {{ telegram_sender_last_name }}"
telegram_sender_user_id: "{{ trigger.event.data['user_id'] }}"
mode: single
@voldemar2022
Copy link

voldemar2022 commented Dec 29, 2024

Video on demand is not sent. These arguments need to be written down somewhere else.?
{{telegram_args[0]}}/start/{{telegram_args[1]}}/end/{{telegram_args[2]}}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment