В моей квартире установлен аналоговый домофон Визит, вызывная панель которого оснащена камерой. Этот домофон не современный, а координатный - аналоговый и ему больше 10 лет.
В статье разбираюсь, что нужно для того, чтобы получать видеопоток с камеры домофона в режиме реального времени в RTSP формат и затем управлять этой камерой в системе видеонаблюдения и умном доме.
Физическое подключение к камере домофона
Для физического подключения понадобится:
1. Самая дешевая USB карта видеозахвата EasyCAP (HD).
2. Разъем питания DC для камер видеонаблюдения.
3. Вывод витой пары подключенной параллельно входу камеры в блок домофона.
Программное подключение к камере домофона
Я решил использовать проект Go2RTC от AlexxIT, установив его на старый Orange Pi Zero 512Mb.
Шаг 1. Установил и подготовил систему
Используя BalenaEtcher записал на карту памяти Armbian - это дистрибутив Linux, разработанный специально для одноплатных компьютеров на базе процессоров ARM.
Далее по инструкции вошёл в систему как root.
Потом обновил систему:
root@orangepizero:~# sudo apt update && sudo apt upgrade -y
Установил необходимые зависимости: поскольку используется USB-устройство захвата видео, необходимо установить некоторые инструменты, связанные с мультимедиа и видео, такие как ffmpeg, которые Go2RTC может использовать для обработки видеопотоков.
root@orangepizero:~# sudo apt install ffmpeg v4l-utils -y
- ffmpeg: необходим для кодирования/декодирования видео.
- v4l-utils: содержит инструменты для взаимодействия с устройством видеозахвата.
Проверил USB-устройство захвата подключил USB-карту видеозахвата EasyCAP и убедился, что она распознается системой:
root@orangepizero:~# ls /dev/video*/dev/video0/dev/video1
В ответе было что-то вроде /dev/video0. Это означает, что устройство обнаружено.
Дополнительно посмотрел доступные форматы:
Шаг 2. Установил Go2RTC
Загрузил готовый бинарный файл для моей архитектуры ARMv6:
Переместил бинарный файл в нужное место в моём PATH, /usr/local/bin:
Шаг 3. Настроил Go2RTC
Создал каталог конфигурации, переключившись на самого себя - пользователя, которого я создал:
root@orangepizero:~# su -l mikemike@orangepizero:~$mkdir-p ~/.config/go2rtc
Создал файл конфигурации go2rtc.yaml, указав USB-устройство видеозахвата в качестве источника входного сигнала:
mike@orangepizero:~# nano ~/.config/go2rtc/go2rtc.yaml
Простая конфигурация для захвата видео с USB-устройства и его потоковой передачи:
streams: usb_camera: ffmpeg:device?video=0&video_size=1280x720#video=h264
А это памятка для самого себя - чтобы сохранить и выйти из редактора nano в Linux, выполните следующие шаги:
- Нажмите сочетание клавиш Ctrl + X. Это приведет к выводу сообщения "Save modified buffer (y/n/a/q/K)?".
- Нажмите Y для сохранения изменений.
- Нажмите Enter для подтверждения выбора.
- Введите имя файла, если вы хотите сохранить его под другим именем, или просто нажмите Enter, чтобы сохранить файл под текущим именем.
- Нажмите Enter еще раз для подтверждения.
- Нажмите Enter, чтобы закрыть редактор nano.
Проверил конфигурацию, для этого вручную запустил двоичный файл Go2RTC с указанной конфигурацией, чтобы проверить, всё ли работает правильно:
Шаг 4. Настроил в качестве службы Systemd
Чтобы обеспечить автоматический запуск Go2RTC при загрузке, создал служебный файл systemd:
mike@orangepizero:~$ sudo nano /etc/systemd/system/go2rtc.service
[sudo] пароль для mike:
Добавил следующее содержимое для моего имени пользователя - mike:
[Unit]
Description=Go2RTC Service
After=network.target
[Service]
ExecStart=/usr/local/bin/go2rtc -config /home/mike/.config/go2rtc/go2rtc.yaml
Restart=always
User=mike
[Install]
WantedBy=multi-user.target
Запустил и включил службу:
mike@orangepizero:~$ sudo systemctl daemon-reload
mike@orangepizero:~$ sudo systemctl enable go2rtc.service
Created symlink /etc/systemd/system/multi-user.target.wants/go2rtc.service → /etc/systemd/system/go2rtc.service.
mike@orangepizero:~$ sudo systemctl start go2rtc.service
Шаг 5. Проверил потоковую передачу
Через VLC подключился к потоку rtsp://192.168.165.117:8554/usb_camera с компьютера, телефона и системы видеонаблюдения.
Все подключения отобразились по адресу Go2RTC http://192.168.165.117:1984/network.htmlВидео с камеры домофона через Go2RTC в VLC
Альтернативный вариант сделать из обычного квартирного домофона камеру видеонаблюдения
Уже когда всё настроил программно - наткнулся на алиэкспрессе на конвертер CVBS -> RJ45. Это означает в теории, что можно только используя этот конвертер, который стоит примерно полторы тысячи рублей сделать всё тоже самое - из аналогового видеосигнала сделать ONVIF без установки Go2RTC и покупки платы видеозахвата. Но я не пробовал.
Настройка камеры квартирного домофона в системе видеонаблюдения
Очень часто я использую Synology Surveillance Station - это программное обеспечение, разработанное компанией Synology Inc., которое позволяет пользователям создавать системы видеонаблюдения. Причём, чтобы использовать оборудование Synology не обязательно его покупать, потому что есть варианты. Хотя у меня есть несколько и фирменных серверов Synology.
Камера домофона Визит легко добавилась в Synology Surveillance Station через Go2RTC. Единственной проблемой стало то, что при настройках путь rtsp, потому что не задан логин и пароль, постоянно сбрасывается на следующий вид и не даёт сохранить изменения в последующих настройках:
:########@192.168.165.117:8554/usb_camera
Для того чтобы это исправить пришлось задать имя и пароль в настройках Go2RTC. Просто через веб-интерфейс http://192.168.165.117:1984/editor.html изменил:
То есть ссылка приняла вид: rtsp://admin:pass@192.168.165.117:8554/usb_camera
Дополнительно: настройка камеры многоквартирного домофона в системе домашней автоматизации Home Assistant
Раз Go2RTC позволяет получить картинку, то можно использовать её в автоматизации вызова домофона в квартиру. Адрес картинки выглядит примерно так:
http://192.168.165.117:1984/api/frame.jpeg?src=usb_camera
Автоматизация, когда Алиса говорит через колонку, что снизу с 1го этажа кто-то звонит в квартиру, а в телеграмм отсылается текстовое уведомление и фотка с камеры домофона на 1м этаже выглядит примерно так:
alias: Домофон оповещение
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.domofon_incoming_call
to: "on"
condition: []
action:
- target:
entity_id: media_player.yandex_station
data:
media_content_id: >-
Кто-то звонит в домофон с 1го этажа в {{
now().hour|round|format(morph='час') }} {{
now().minute|round|format(morph='минута') }}.
media_content_type: text
extra:
volume_level: 0.9
action: media_player.play_media
- data:
title: "*🔉 Звонок в домофон* "
message: в {{ now().hour }} часов {{ now().minute }} минут.
action: notify.telegram_me
- data:
message: Фото
data:
photo:
- url: http://192.168.165.117:1984/api/frame.jpeg?src=usb_camera
caption: 📸 Камера домофона на 1м этаже
disable_notification: true
enabled: true
action: notify.telegram_me
- delay:
hours: 0
minutes: 1
seconds: 0
milliseconds: 0
mode: single
Физический слаботочный щиток квартиры после установки оборудования
Orange Pi Zero 512Mb вместе с USB картой видеозахвата EasyCAP (HD) лежат по нижней части щитка - на фото видны лишь частично:
Вместо итогов
Сделать из обычного квартирного домофона камеру видеонаблюдения и завести её не только в систему видеонаблюдения, но вписать в собственный умный дом - возможно.
И как из квартиры дотянуть витую пару до входа в подъезд?
Кажется это придётся согласовывать и будет выглядеть очень странно - придётся прикладывать кабель-канал да и не факт что разрешат
Подтвержу, что конвертор CVBS (аналогового видео) в цифровое RTSP работает. Стоит на АлиЭкспрессе порядка 2000р.
А скажите, пож, как технически у вас в лифте камера установлена?