Решил я сделать в деревне видеонаблюдение.
Сосед порекомендовал некие Beseder c Aliexpress, которые он взял себе и нашим соседям. Взял попробовать, однако моя попытка зайти в настройки была мигом пресечена требованием вроде: пожалуйста, даунгрейдите свой браузер до версии 5-летней давности, с поддержкой ActiveX! 🤦
Да, камеры конечно дешевые, но такого мне не надо!

В общем, немного повыбирав, решил попробовать купить камеру HiWatch DS-I205M.
Стоила она на тот момент как тот комплект Beseder (4 камеры + регистратор). А сегодня стоит ещё в два раза дороже! 😮
Нужно было брать две! 😭
- купольная (с PTZ, что бы можно было удаленно двигать, приближать и тп.)
- сетевое подключение по Ethernet
- т.к. я пока жалею деньги на регистратор, то необходима встроенная SD-карта 😁
- ONVIF посвежее
- Обнаружением движения на улице пользоваться невозможно. Какой бы порог не выставлял - срабатывает на каждую мелочь, засыпая оповещениями на телефон. Обнаружение "пересечение линии" тоже не работает.
- В ней нет режима курсирования. Можно указать пресеты направления PTZ. Но самостоятельно камера между ними перемещаться не может.
- SD-карту достать сложно. Нужно демонтировать камеру, и отверткой её раскрутить. Но возможно это и плюс, если камеру сложно демонтировать.
- Нельзя скачать видео. Ни через веб-консоль, ни через смартфон.
Со смартфона можно перемотать, и посмотреть... Но, во-первых - это совсем не то же самое, что "скачать". Во-вторых, у меня скорость исходящего канала ADSL 0.5 Mbit/s. И даже находясь в деревне, я в него упираюсь, т.к. на смартфон поток идет через Интернет.
В общем, это довольно печалит, с учетом предыдущего недостатка. - Почему-то при подключении с моего смартфона первый раз (вероятно, в день) - камера перезагружается.
Недостатки вроде как не критичные. Первых два, вероятно, должен собой закрыть регистратор. Но пока его у меня нет, с режимом курсирования и скачкой видео я решил разобраться, написав для этого отдельную приблуду.
Взял самую звёздную библиотеку ONVIF для Go. Библиотека оказалась несколько ужасна, и в некоторых местах нерабочая. Я решил, что мне она не нравится, и лучше я сам с протоколом разберусь, и имплементируют себе только необходимое.
Протоколом оказался SOAP. Я его успел возненавидеть ещё в начале 2000-ых, когда еще работал в Гомеле на Ностре, и писал интеграцию с какой-то платежной системой.
Спецификация ONVIF довольно объёмная, но и не сказать, что бы очень понятная. Нужно ресёчить. К тому же, предыдущие версии некоторых документов, которые необходимы для моей камеры, приходилось выискивать при помощи гугла.
Но, потратив несколько дней, курсирование камеры я все-таки реализовал. Приблуду закинул на RaspberryPi, откуда она управляет камерой. Просто, с определенными заданными интервалами переключает пресеты позиций PTZ, и дожидается завершения поворота. Перед переключением на следующий пресет, проверяет отличие текущей позиции, от предыдущей запомненной. Если отличается - значит камерой кто-то управляет еще с другого места, и нужно заснуть на несколько минут.
Ещё есть пару идей на доработку. Но это когда/если руки дойдут. Возможно, попробую реализовать детекцию движения своими силами.
А вот со скачкой видео - косяк! В спецификации нет такого. Можно получить видеопоток реплея (в реальном времени). А просто скачать, скажем, день видеозаписи - нет. 🙁