Картинка, событие и уведомление — три проверки
Просмотр камеры подтверждает доступность видео. Затем нужен объект или review в Frigate, сообщение в MQTT и запуск автоматизации HA. Только после этого имеет смысл проверять доставку уведомления. Поиск начинаем с одного воспроизводимого события: кто, на какой камере, какой результат ожидался.
- FrigateСоздаёт событие
- MQTTДоставляет JSON
- Home AssistantПроверяет условия
- ДействиеДаёт наблюдаемый результат
В нашем доме Telegram-сообщения отправляет Home Assistant. Видеорегистратор непрерывно пишет восемь камер, а Frigate анализирует выбранные прямые потоки.
1. Слушать точный topic
В настройках интеграции MQTT откройте прослушивание topic и укажите frigate/reviews. Если в Frigate изменён topic_prefix, используйте свой префикс. Frigate и HA должны обращаться к одному брокеру; рабочий экран Frigate этого не подтверждает.
Воспроизведите событие и сохраните одно полученное сообщение. Нет сообщения — сначала проверяйте MQTT и настройки Frigate. Сообщение есть — сравните поле after.camera с ID камеры из конфигурации, а не её красивым названием. end находится в поле type; отдельного topic frigate/reviews/end для этого нет.
Поля и префикс: официальная справка Frigate MQTT.
2. Не спутать review и объект
frigate/events обновляет отслеживаемый объект: новый снимок или изменение зоны могут прийти с прежним ID. В frigate/reviews сообщения new, update и end описывают жизнь review. Например, new может иметь важность detection, а переход в alert придёт как update. Условие «только new и alert» пропустит такой переход.
Ниже упрощённый синтетический JSON. ID придуманы для примера. after.id — ID review; after.data.detections содержит ID объектов. Для снимка объекта нужен соответствующий object ID: подставлять вместо него ID review нельзя.
{
"type": "end",
"before": {
"id": "demo-review-1",
"severity": "alert"
},
"after": {
"id": "demo-review-1",
"camera": "camera_example",
"severity": "alert",
"data": {
"objects": [
"person"
],
"detections": [
"demo-object-1"
]
}
}
}
Frigate рекомендует reviews для уведомлений; в официальном примере уведомления ID review используется как тег мобильного уведомления, а снимок запрашивается по ID объекта. Полученное сообщение само по себе ещё не подтверждает существование готового клипа.
3. Сначала получить запись в журнале HA
Откройте редактор новой автоматизации в режиме YAML и адаптируйте пример: замените camera_example на свой ID камеры и при необходимости измените префикс topic. Он принимает завершённый review с человеком и важностью alert, затем вызывает только logbook.log. Telegram и ТВ этот пример не запускает.
alias: "Frigate — завершённый review в журнале"
triggers:
- trigger: mqtt
topic: frigate/reviews
payload: "end"
value_template: "{{ value_json.type }}"
conditions:
- condition: template
value_template: >-
{% set a = trigger.payload_json.get('after', {}) %}
{{ a.get('camera') == 'camera_example'
and a.get('severity') == 'alert'
and a.get('id')
and 'person' in a.get('data', {}).get('objects', []) }}
actions:
- action: logbook.log
data:
name: "Учебное событие Frigate"
message: >-
Завершён review {{ trigger.payload_json['after']['id'] }}
камеры {{ trigger.payload_json['after']['camera'] }}.
mode: queued
max: 10
Скачать учебную автоматизацию · YAML
Нужны подключённая MQTT-интеграция и доступное действие журнала. Получите реальное завершённое событие и найдите «Учебное событие Frigate» в журнале активности. Если действие прошло, но запись скрыта, проверьте фильтры журнала для домена logbook. Синтетический JSON служит для чтения полей; не отправляйте его в рабочий topic с другими подписчиками.
Синтаксис: MQTT-триггер HA; действие и фильтры: запись активности, пользовательские записи журнала.
4. Найти остановку в трассировке
- Нет запуска: сравните topic, включённость автоматизации и
typeполученного сообщения. - Условие не прошло: сверяйте
camera,severityи списокobjectsиз этого сообщения. - Действие завершилось ошибкой: откройте его данные в трассировке. До подключения уведомлений добейтесь записи в журнале.
«Run actions» обходит триггер и условия верхнего уровня. В примере используются данные trigger, поэтому ручной запуск действий не заменяет проверку через MQTT. Когда журнал работает, подключайте свой проверенный канал уведомлений и наблюдайте доставку отдельно. Почему ручной запуск отличается.
5. Задержка и повторы требуют отдельного решения
Пример ждёт end: активность review должна закончиться. Для немедленного сообщения о человеке у калитки нужна другая логика начала alert, включая переход detection → alert.
queued упорядочивает запуски, но не удаляет одинаковые сообщения. Cooldown ограничивает частоту и может скрыть другое полезное событие; идемпотентность проверяет уже обработанный ID. Выбирайте правило под задачу и проверяйте повторную доставку. Гарантии «ровно один раз» этот пример не даёт. Режимы выполнения описаны в справке HA.
Наш клип открытия ворот и ролики человека/автомобиля примерно на 60/30 секунд создаёт отдельный архиватор. Их длительность не задаётся этим MQTT-примером или обычным retention Frigate.
Дальше — запись и место на диске
Как связаны потоки, review и хранение · Как оценить размер архива · Событийный режим калькулятора · Весь маршрут Frigate
