# ONVIF

Кадр с IP-камеры и движение по ONVIF прямо в чате

Кадр по запросу и движение IP-камеры ONVIF через назначенный шлюз, только чтение

## Как агент работает с ONVIF

Данные с объекта забирает шлюз: служба на компьютере в сети объекта, которая отправляет данные наружу только исходящим соединением. В подключении указывается адрес камеры вида http://192.168.1.64 или полный адрес службы …/onvif/device_service, имя и пароль пользователя ONVIF. Подключение назначается шлюзу на вкладке «Шлюзы».

Шлюз читает камеру так же, как клиенты стандарта: сначала часы камеры, потом адреса её служб, профили и адрес снимка каждого профиля (Media 1 или Media 2). Каждый вход подписывается по часам самой камеры, поэтому камера с ушедшими часами вход не отклоняет. Движение шлюз получает подпиской pull-point, которая живёт около минуты и продлевается, чтобы не занимать у камеры место подписки.

Подключение только читает. Шлюз отправляет камере только запросы из закрытого списка: часы, службы, профили, события и снимок. Поворотом и зумом, настройками, записью и пользователями камеры он не управляет. Подписка на события ничего не меняет в том, что камера снимает, пишет или показывает, и заканчивается сама.

Кадр снимается по адресу снимка камеры (JPEG), а не из видеопотока: камеру без такого адреса шлюз прямо называет. Видеоролики и поток RTSP шлюз не забирает, камеры в сети сам не ищет, адрес вводится вручную. Если камера отказывает в подписке на события, шлюз продолжает работать с профилями и кадрами без движения.

## Сценарии интеграции

### Кадр по просьбе
Агент снимет один кадр с выбранной камеры и посмотрит, что сейчас у ворот, на складе или в серверной, а кадр пришлёт в чат.

### Обход камер
Агент снимет по кадру с нескольких камер подряд и коротко опишет, что видно на каждой.

### Было ли движение
Агент прочитает историю датчика движения камеры и назовёт, когда за ночь или выходные она фиксировала движение и сколько оно длилось.

### Где движение сейчас
Агент проверит текущее состояние движения по каждому видеоисточнику подключённых камер и назовёт те, где оно есть.

### Кадр и последнее движение
Агент снимет кадр и рядом назовёт, когда на этой камере последний раз было движение.

### Профили камеры
Агент перечислит профили камеры: имя, кодек, разрешение и есть ли у профиля снимок, чтобы выбрать, с какого брать кадр.

## Как подключить

**Перед подключением**

- IP-камера с ONVIF (Profile S) и включённой службой ONVIF
- Пользователь ONVIF камеры с паролем
- Компьютер в сети объекта, на котором работает служба шлюза
- Доступ с этого компьютера к камере по HTTP или HTTPS

### Включите ONVIF на камере
Hikvision: Configuration → Network → Advanced Settings → Integration Protocol, отметьте Enable ONVIF и сохраните. Axis: System → ONVIF. На новых прошивках ONVIF выключен.

### Заведите отдельного пользователя ONVIF
У Hikvision и Axis список пользователей ONVIF отдельный от входа в веб-интерфейс. Добавьте пользователя там и впишите его имя и пароль в поля подключения.

### Настройте время по NTP
События движения несут время камеры. Без NTP часы камеры уходят, а после отключения питания некоторые начинают с 1970 года.

### Для https добавьте сертификат камеры
Если адрес камеры https:// с самоподписанным сертификатом, положите сертификат на компьютер шлюза в папку данных pki/onvif/trusted/.

## Частые вопросы

### Как подключить камеру ONVIF?
Включите ONVIF на камере и заведите там пользователя ONVIF. Поставьте службу шлюза на компьютер в сети объекта и заведите его на вкладке «Шлюзы». В подключении укажите адрес камеры, например http://192.168.1.64, имя и пароль пользователя ONVIF и назначьте подключение шлюзу.

### Что агент видит в камере ONVIF?
Профили камеры с кодеком и разрешением, состояние движения по каждому видеоисточнику и его историю, если события камеры несут движение, и один кадр по запросу, снятый по адресу снимка камеры.

### Может ли агент повернуть камеру или изменить её настройки?
Нет. Шлюз не отправляет команд поворота и зума, не меняет настройки, запись и пользователей камеры. Он только читает часы, профили и события и снимает кадр.

### Камера отклоняет вход, хотя пароль верный. Что проверить?
У многих камер пользователи ONVIF заводятся отдельно от входа в веб-интерфейс: проверьте, что пользователь есть именно в списке ONVIF. Ещё проверьте, что ONVIF на камере включён: на новых прошивках он выключен.
