Интеграция Frigate NVR и камер с Яндекс Станцией через HA
Современное видеонаблюдение давно вышло за рамки простой записи видео на жесткий диск. Благодаря развитию технологий искусственного интеллекта и машинного зрения, мы можем научить наши камеры понимать, что именно происходит в кадре.
Интеллектуальный видеорегистратор Frigate NVR — это одно из лучших локальных решений для распознавания образов в реальном времени. Используя мощности центрального процессора или специализированные ускорители (такие как Google Coral TPU или встроенную графику Intel через OpenVINO), Frigate с высокой точностью определяет в видеопотоке людей, автомобили, животных и другие объекты. В отличие от стандартных датчиков движения камер, которые ложно срабатывают от дождя, падающих листьев, теней или пролетающих птиц, Frigate реагирует только на реальные физические объекты. Связав эту систему с Home Assistant и Яндекс Станцией, мы получим мощный комплекс безопасности: Алиса сможет голосом предупреждать вас о появлении гостей на пороге или выводить видео с камер на телевизор. Для настройки качественного голосового оповещения мы рекомендуем использовать интеграцию Яндекс TTS, подробно описанную в нашей статье по настройке голосовых TTS-уведомлений на Яндекс Станции из Home Assistant.
Шаг 1. Развертывание и базовая настройка Frigate NVR
Frigate NVR обычно запускается в Docker-контейнере или в виде надстройки (Add-on) для Home Assistant OS. Вся конфигурация описывается в файле config.yml.
- Настройте подключение к вашей IP-камере по протоколу RTSP. Рекомендуется использовать два потока: субпоток с низким разрешением (например,
640x480или1280x720пикселей) для детекции объектов силами ИИ и основной поток высокого разрешения (1080pили4K) для записи архива. Это убережет центральный процессор от перегрева. - В файле конфигурации определите зоны детекции. Зоны позволяют ограничить область кадра, в которой будет происходить распознавание. Это важно, если в кадр попадает оживленная общественная улица или соседский двор, где постоянное движение прохожих будет вызывать лишние тревоги.
- Пропишите детекцию человека (
person) в секции объектов:
cameras:
front_door:
ffmpeg:
inputs:
- path: rtsp://admin:password@192.168.1.100:554/stream1
roles:
- detect
- record
detect:
width: 1280
height: 720
fps: 5
objects:
track:
- person
Шаг 2. Оптимизация детекции с помощью масок и ускорителей
Для стабильной работы искусственного интеллекта без ложных срабатываний и снижения нагрузки на сервер необходимо настроить маски детекции (masks). В Frigate существует два типа масок:
- Маска движения (Motion Mask): Закрывает области кадра со статическим повторяющимся движением (например, ветки деревьев, кусты, трава или штамп времени с часами в углу экрана). Frigate полностью игнорирует изменение пикселей в этих зонах, что снижает нагрузку на CPU.
- Маска объектов (Object Mask): Используется для фильтрации объектов, которые не должны детектироваться в определенном месте. Например, вы можете закрыть маской парковку соседа, чтобы его автомобиль не распознавался системой как «обнаруженная машина на вашей территории».
IMPORTANT
Если на вашем сервере запущено более трех камер высокого разрешения, процессор может не справляться со своевременным инференсом ИИ. Настоятельно рекомендуется использовать аппаратный ускоритель Google Coral TPU (USB или mini-PCIe). Он снижает время распознавания одного кадра до 5-8 мс и полностью разгружает процессор сервера.
Шаг 3. Подключение Frigate к Home Assistant по протоколу MQTT
Связующим звеном между Frigate и Home Assistant выступает брокер сообщений MQTT (обычно используется сервер Mosquitto MQTT).
- Убедитесь, что в настройках Frigate вписаны параметры вашего MQTT-брокера.
- В Home Assistant перейдите в магазин HACS, найдите интеграцию Frigate и установите её.
- Перезагрузите сервер Home Assistant.
- Перейдите в раздел Настройки ➡️ Устройства и службы ➡️ Добавить интеграцию и выберите Frigate. Интеграция автоматически считает данные о ваших камерах из MQTT-топиков и создаст в Home Assistant множество полезных сущностей: бинарные датчики движения, счетчики объектов в реальном времени и переключатели режимов записи.
Шаг 4. Создание виртуальных сенсоров для Яндекса
Для того чтобы передать событие обнаружения человека в экосистему Яндекса, нам понадобится виртуальный тумблер-посредник (input_boolean). Это связано с тем, что облако Яндекса лучше всего реагирует на простые триггеры типа «включено/выключено».
- Перейдите в Вспомогательные элементы в Home Assistant и создайте переключатель с именем «Движение у двери» (сущность
input_boolean.front_door_motion). - Напишите автоматизацию, которая будет включать этот тумблер, когда ИИ-датчик Frigate (
binary_sensor.front_door_person_motion) перейдет в состояние «Обнаружено» (on), и выключать его через30секунд после того, как человек исчезнет из кадра.
Пример YAML-кода для автоматизации:
alias: "Камера: Обнаружение человека у двери"
trigger:
- platform: state
entity_id: binary_sensor.front_door_person_motion
to: "on"
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.front_door_motion
- delay: "00:00:30"
- service: input_boolean.turn_off
target:
entity_id: input_boolean.front_door_motion
Шаг 5. Настройка голосового сценария в Алисе
После создания тумблера и синхронизации устройств с Яндексом через интеграцию Yandex Smart Home, виртуальный выключатель появится в вашем приложении «Дом с Алисой».
- Откройте приложение «Дом с Алисой» и найдите устройство «Движение у двери».
- Создайте новый сценарий, назвав его, например, «Оповещение о гостях».
- В качестве условия («Если») укажите: Движение у двери ➡️ Включилось.
- В качестве действия («Тогда») выберите вашу Яндекс Станцию и добавьте команду: Произнести текст ➡️ «Внимание, у входной двери обнаружен человек!». Если у вас установлена Станция Макс или модуль Яндекс ТВ, вы также можете настроить автоматический вывод картинки с камеры на большой экран при обнаружении активности.
Благодаря локальной обработке видеопотока системой Frigate NVR и быстрой передаче сигналов через MQTT, задержка от момента реального появления человека перед камерой до голосового сообщения Алисы составит не более 1-2 секунд.
Инструкция по настройке
Установка Frigate NVR
Запустите Frigate NVR in Docker или как аддон Home Assistant и настройте детекцию объектов на вашей IP-камере.
Настройка интеграции с HA
Установите интеграцию Frigate через HACS и настройте обмен данными через брокер сообщений MQTT.
Создание бинарных сенсоров
Создайте виртуальные датчики движения и присутствия людей на основе событий распознавания образов Frigate.
Настройка оповещений Алисы
Свяжите сенсоры с Умным домом Яндекса и настройте голосовые оповещения Алисы при появлении людей в кадре.