Сегодня я практически для себя разберу, как в мою систему Domoticz на базе Ubuntu 22.04 Server добавить IP—камеры из видеорегистратора, т.е. я хочу через "Панель" видеть и переходить в них дабы получать видеопоток, либо же нанести камеры на "План помещения" и наглядно с учетом плана участка отображать. Может конечно не все сразу, но часть задумки в этой заметке я реализую:
Мое домашнее видеонаблюдение состоит из:
- Dahua DHI-NVR2108HS-8P-4KS2 + HDD на 2Tb (Жесткий диск 2TB SATA 6Gb/s Seagate ST2000DM008)
- Dahua DH-IPC-HFW2230SP-S-0360B
- Dahua DH-IPC-HFW2230SP-S-0360B
- Dahua DH-IPC-HFW2431SP-S-0360B белый (4M)
Мой боевой Domoticz развернут на связке Ubuntu 20.04 + Domoticz (Version: 2021.1)
Т.к. я планирую обновление/переход на Ubuntu 22.04 Server, то сразу же разбираюсь задумку на ней.
Приступим:
Шаг №1: Первым делом разворачиваем по заметке самую последнюю версию где в качестве операционной системы используется Ubuntu 22.04 Server: "Разворачиваем Domoticz на Ubuntu 22.04 Server"
в итоге должно получиться http://172.33.33.117:8080/#/Login - admin&domoticz
О Domoticz
Version: 2023.2 (build 15457)Build Hash: 25624ca14Compile Date: 2023-07-22 11:39:06dzVents Version: 3.1.8Python Version: NoneActive User: admin
Шаг №2: Открываем Web—интерфейс регистратора и проверяем какие способы удаленного подключения к регистратору присутствуют:
http://172.33.33.117:8080/#/Login - user&pass - Настройка - Безопасность — вкладка "Базовые услуги"
CGI: отмечаю галочкойONVIF: отмечаю галочкойNTP-сервер: отмечаю галочкойРазрешить обнаружение устройства: отмечаю галочкой
и нажимаю OK окна с сообщением "Включение этой службы несет риски для безопасности. Продолжить?", а после еще раз "OK" в правом нижнем углу страницы.

Шаг №3: Разбираемся, как из консоли командной строки системы Ubuntu 22.04 Server подключаться к регистратору и заведенным на него камерам:
ekzorchik@srv-home:~$ sudo apt-get install -y curl
Получить изображение с камеры 1:
ekzorchik@srv-home:~$ curl --digest -u "admin:password" -g "http://172.33.33.250/cgi-bin/snapshot.cgi?Channel=1" -o camera1.jpg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 121k 100 121k 0 0 71226 0 0:00:01 0:00:01 --:--:-- 233k
ekzorchik@srv-home:~$
Смотрим/Извлекаем информацию по сохраненному скриншоту с камеры №1:
ekzorchik@srv-home:~$ ls -l camera1.jpg -rw-rw-r-- 1 ekzorchik ekzorchik 124504 Jan 16 11:57 camera1.jpg ekzorchik@srv-home:~$ file camera1.jpg camera1.jpg: JPEG image data, JFIF standard 1.01, resolution (DPCM), density 118x118, segment length 16, comment: "", comment: "DHAV\373", baseline, precision 8, 1920x1080, components 3 ekzorchik@srv-home:~$
или так через ONVIF подключение к регистратору:
ekzorchik@srv-home:~$ curl --digest -u "admin:password" -g "http://172.33.33.250/onvifsnapshot/media_service/snapshot?channel=1&subtype=0" -o camera1.jpg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 121k 100 121k 0 0 117k 0 0:00:01 0:00:01 --:--:-- 4341k
ekzorchik@srv-home:~$ file camera1.jpg
camera1.jpg: JPEG image data, JFIF standard 1.01, resolution (DPCM), density 118x118, segment length 16, comment: "", comment: "DHAV\373", baseline, precision 8, 1920x1080, components 3
ekzorchik@srv-home:~$
На заметку: По умолчанию только для учетной записи Login: admin разрешено подключение/обращение к камере через onvifs: https://172.33.33.250 - user&pass - Настройка - Уч.Зап - Пользователь ONVIF это так если что.
Если через WinSCP подключиться к Ubuntu 22.04 Server + Domoticz и скопировать себе полученный скриншот на рабочую станцию,

а после открыть через просмотрщик (ACDSee 8) изображений, то я увижу воочию снятое изображение, к примеру, в моем случае:

Отлично.
Шаг №4: Подключаемся по SSH к системе Ubuntu 22.04 Server на которой развернут Domoticz и создаем скрипт подключения к камере 1:
ekzorchik@srv-home:~$ sudo mkdir -p domoticz/camera
ekzorchik@srv-home:~$ sudo mkdir -p domoticz/scripts/customscripts
ekzorchik@srv-home:~$ sudo nano domoticz/scripts/customscripts/camera1.sh
#!/usr/bin/bash
curl --digest -u "admin:password" -g "http://172.33.33.250/cgi-bin/snapshot.cgi?Channel=1" -o /home/ekzorchik/domoticz/camera/camera1.jpg
ekzorchik@srv-home:~$ sudo chmod +x domoticz/scripts/customscripts/*
ekzorchik@srv-home:~$ sudo domoticz/scripts/customscripts/camera1.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 123k 100 123k 0 0 148k 0 --:--:-- --:--:-- --:--:-- 4404k
ekzorchik@srv-home:~$ ls -lh domoticz/camera/
total 124K
-rw-r--r-- 1 root root 124K Jan 16 12:13 camera1.jpg
ekzorchik@srv-home:~$
Отлично скрипт создан, ну по крайней мере его первая базовая версия.
На заметку: В заметке Шаг №4 не используется, это заготовка.
Шаг №5: Настраиваем функционал в Domoticz для взаимодействия с камерой, т.е. заводим подключение к камере:
http://172.33.33.117:8080/#/Login - admin:domoticz - Настройка - Дополнительно - Камеры - Добавить камеру
Включено: положение в значение включено (индикатор зеленого цвета)Имя: Camera1Aspect Ratio: 4:3Протокол: HTTPIP-Адрес: 172.33.33.250Порт: 80Имя: adminПароль: passwordImageUrl: cgi-bin/snapshot.cgi?Channel=1
На заметку: в поле ImageUrl: не нужно указать символ "/" перед cgi-bin, он уже идет как бы по умолчанию, но вот об этом нигде не указано.

и нажимаю Add, меня перекидываем в меню "Камеры" где уже отображается предварительный просмотр, также что мне доступно с камеры: это "Сделать снимок" и "Stream Video"

Это очень хорошо.
Проверяем:
- если нажать на иконку со всплывающим сообщением
"Сделать снимок" / http://172.35.35.10:8080/camsnapshot.jpg?idx=1будет произведено снятие скриншота с камеры - если нажать на иконку со всплывающим сообщением
"Stream Video"будет открыто окно где изображение обновляется каждые 2 секунды

Это уже что-то с этими данными можно работать.
Шаг №6: Создаю в Domoticz шаблон на виртуальный сенсор = Dummy:
http://172.33.33.117:8080/#/Login - admin:domoticz - Настройка - Оборудование -
Включено: положение в значение включено (индикатор зеленого цвета)Имя: DummyТип: Dummy (Does nothing, use for virtual switches only)Log Level: Info, Состояние, Ошибка в положении включено (индикатор зеленого цвета)Задержка данных: Отключен

и нажимаю "Добавить"
Шаг №7: Создаю переключатель на основе шаблона Dummy который сделал в предыдущем шаге, позже с ним свяжу элемент "Camera1":
http://172.33.33.117:8080/#/Login - admin:domoticz - Настройка - Оборудование — в шаблоне с именем "Dummy" нажимаю "Создать виртуальные датчики"

Указываю имя виртуального сенсора, к примеру, для удобства взаимодействия:
Имя: Camera1тип датчика: Переключатель
и нажимаю "OK"
найти созданный "Переключатель" можно в меню: "Переключатели"
Шаг №8: Связываем виртуальный датчик с именем Camera1 с камерой с именем Camera1:
http://172.33.33.117:8080/#/Login - admin:domoticz - Настройка - Дополнительно - Камеры, выделяем камеру и после ниже где "Устройство/Сцена" отобразится созданный тип датчика "Переключатель"

Выделил "Камеру", выбрал "Переключатель" и нажимаю "Добавить"

После в "Активные Устройства/Сцены" отобразится связанное устройство: [Light/Switches] Camera1
![После в "Активные Устройства/Сцены" отобразится связанное устройство: [Light/Switches] Camera1](https://home.ekzorchik.ru/wp-content/uploads/2024/01/Adding-Dahua-NVR-to-Domoticz-on-Ubuntu-22-04-011.jpg)
Это нам дает вот что, если перейти в меню "Переключатели" появится в созданном переключателе с именем "Camera1" значок видеокамеры, если на вести на него курсор мыши, то появится всплывающее окно с надписью "Stream Video"

кликнув на которое откроется окно где будет видеопоток с меняющимся видео с перескоком на 2 секунды, т.е. как бы видео хоть не как реальная картинка, но все же идет.

Получается вот так не особо визуализировано камеры с видеорегистратора добавляются в систему Domoticz на Ubuntu 22.04 Server, но работает ведь и это хорошо.
Шаг №9: Добавляем переключатель который будет отображать состояние регистратора: Включен или Выключен
http://172.33.33.117:8080/#/Login - admin:domoticz - Настройка - Оборудование
Включено: положение в значение включено (индикатор зеленого цвета)Имя: RegistratorТип: System Alive Checker (Ping)Log Level: Info, Состояние, Ошибка в положении включено (индикатор зеленого цвета)Задержка данных: Отключен

и нажимаю "Добавить"
После все здесь же в "Оборудование" переходим в созданный элемент "Registrator" - Настройка:

и указываю какой узел по IP адресу осуществлять проверку доступности:
Имя: РегистраторIP-Адрес: 172.33.33.250Задержка: 300 (Секунды)
и нажимаю "Добавить", "Применить настройки"

Чтобы вынести осуществляемую проверку в меню "Переключатели" можно:
http://172.33.33.117:8080/#/Login - admin:domoticz - Настройка - Устройства — отметить галочкой "Оборудование: Registrator" и нажать на стрелочку направленную вправо:

Появляется окно добавления устройства:
Имя: RegistratorВ виде: Главное устройство
и нажимаю "Добавить устройство"
И вот теперь в меню "Переключатели" отображается проверка регистратора на доступность через PING:

Отлично, но все же это все как-то угловато выглядит.
На заметку: если отметить галочкой звездочку напротив каждого "Переключателя", то элементы будет вынесены в меню "Панель".
Итого, пока хоть так, но у меня получилось добавить регистратор в свой Domoticz, все выше справедливо, если Domoticz версии 2021.1 + Ubuntu 20.04 LTS. Есть от чего отталкиваться если буду модернизировать данную заметку, а пока собственно все, с уважением автор блога Олло Александр aka ekzorchik.