Advertisement
DieMetRik

Frigate. Уведомление при ПЕРЕХОДЕ из определенной зоны в другую зону с более 1 камеры

Jun 16th, 2025 (edited)
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 5.35 KB | Housing | 0 0
  1. alias: >-
  2.   Frigate. Уведомление при ПЕРЕХОДЕ из определенной зоны в другую зону с более 1
  3.   камеры
  4. description: ""
  5. triggers:
  6.   - topic: frigate/events
  7.     trigger: mqtt
  8. conditions: []
  9. actions:
  10.   - variables:
  11.       entrance_zone_name_out: entrance_far_zone
  12.       entrance_zone_name_in: entrance_near_zone
  13.       entrance_camera_name: entrance
  14.       livingroom_zone_name_out: livingroom_zone1
  15.       livingroom_zone_name_in: livingroom_zone2
  16.       livingroom_camera_name: livingroom
  17.     alias: Определение УСТАНОВОЧНЫХ переменных для условий
  18.   - variables:
  19.       after_zones: "{{ trigger.payload_json['after']['entered_zones'] }}"
  20.       before_zones: "{{ trigger.payload_json['before']['entered_zones'] }}"
  21.       camera: "{{ trigger.payload_json['after']['camera'] }}"
  22.       id: "{{ trigger.payload_json['after']['id'] }}"
  23.       label: "{{ trigger.payload_json['after']['label'] }}"
  24.       score: "{{ trigger.payload_json['after']['score'] }}"
  25.       type: "{{ trigger.payload_json['type'] }}"
  26.       datetime: >-
  27.         {{ trigger.payload_json['after']['frame_time'] |
  28.        timestamp_custom('%Y-%m-%d %H:%M:%S') }}
  29.     alias: Определение переменных из MQTT frigate events
  30.   - alias: ПРОВЕРОЧНОЕ сообщение, если нужно проверить ПЕРЕМЕННЫЕ
  31.     action: telegram_bot.send_message
  32.     metadata: {}
  33.     data:
  34.       disable_notification: true
  35.       message: |-
  36.         MQTT frigate event:
  37.         <pre>after_zones: "{{ after_zones }}"
  38.         before_zones: "{{ before_zones }}"
  39.         camera: "{{ camera }}"
  40.         id: "{{ id }}"
  41.         label: "{{ label }}"
  42.         score: "{{ score }}"
  43.         type: "{{ type }}"
  44.         </pre>
  45.         УСТАНОВОЧНЫЕ:
  46.        <pre>camera_name = "{{ camera_name }}"
  47.         zone_name_out: "{{ zone_name_out }}"
  48.         zone_name_in: "{{ zone_name_in }}"
  49.         </pre>
  50.       parse_mode: html
  51.     enabled: false
  52.   - alias: >-
  53.       Сравниваем название камеры прилетевшее с frigate event с УСТАНОВОЧНЫМ
  54.       значением.
  55.     if:
  56.       - condition: template
  57.         value_template: "{{ type == \"update\" }}"
  58.         alias: type == update
  59.       - condition: template
  60.         value_template: "{{ before_zones !=  after_zones}}"
  61.         alias: before_zones !=  after_zones
  62.       - condition: template
  63.         value_template: "{{ after_zones | length > 1 }}"
  64.         alias: Если длинна массива after_zones[...] > 1
  65.     then:
  66.       - variables:
  67.           max_arr: "{{ after_zones | length - 1 }}"
  68.           zone_out: "{{ after_zones[max_arr - 1] }}"
  69.           zone_in: "{{ after_zones[max_arr] }}"
  70.       - alias: >-
  71.           Если название камеры = установочной (для каждоый камеры нужны свои
  72.           зоны)
  73.         if:
  74.           - condition: or
  75.             conditions:
  76.               - condition: and
  77.                 conditions:
  78.                   - alias: camera == camera_name
  79.                     condition: template
  80.                     value_template: "{{ camera == entrance_camera_name }}"
  81.                   - condition: and
  82.                     conditions:
  83.                       - condition: template
  84.                         value_template: "{{ zone_out == entrance_zone_name_out }}"
  85.                       - condition: template
  86.                         value_template: "{{ zone_in == entrance_zone_name_in }}"
  87.                 alias: Камера 1 (entrance)
  88.               - alias: Камера 2 (livingroom)
  89.                 condition: and
  90.                 conditions:
  91.                   - alias: camera == camera_name
  92.                     condition: template
  93.                     value_template: "{{ camera == livingroom_camera_name }}"
  94.                   - condition: and
  95.                     conditions:
  96.                       - condition: template
  97.                         value_template: "{{ zone_out == livingroom_zone_name_out }}"
  98.                       - condition: template
  99.                         value_template: "{{ zone_in == livingroom_zone_name_in }}"
  100.         then:
  101.           - action: telegram_bot.send_message
  102.             metadata: {}
  103.             data:
  104.               disable_notification: true
  105.               message: |-
  106.                 <pre>
  107.                 datetime: "{{datetime}}"
  108.                 zone_out: "{{ zone_out }}"
  109.                 entrance_zone_name_out: "{{ entrance_zone_name_out }}"
  110.                 zone_in: "{{ zone_in }}"
  111.                 entrance_zone_name_out: "{{ entrance_zone_name_in}}"
  112.                 </pre>
  113.               parse_mode: html
  114.             alias: ПРОВЕРОЧНОЕ сообщение
  115.             enabled: false
  116.           - action: telegram_bot.send_photo
  117.             metadata: {}
  118.             data:
  119.               parse_mode: html
  120.               authentication: digest
  121.               url: >-
  122.                 http://192.168.1.130:8123/api/frigate/notifications/{{id}}/snapshot.jpg?bbox=1&motion=1&regions=1
  123.               caption: |-
  124.                 Перемещение
  125.                 <u> {{ zone_out }} </u> --> <u>{{ zone_in }}</u>
  126.                <pre>{{ datetime }}"
  127.                id:{{ id }}</pre>
  128.            enabled: true
  129.    enabled: true
  130. mode: single
  131.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement