Статья

Подключаем USB Web камеру к homebridge

Ранее Уважаемый Eduard Sallo [Edward]  уже рассказал в статье Установка Homebridge на Raspberry. Версия для начинающих как быстро и просто установить Homebridge на микрокомпьютер Raspberry PiЕсли у вас завалялась USB Web камера, по почему бы не попробовать подключить ее к homebridge для последующего отображения в приложении Дом ваших iOS устройств. Я без проблем подключил HP Webcam 3110.Нам понадобиться Малинка c установленным homebridge и плагином homebridge-camera-ffmpeg, а так же Putty для работы с терминалов малинки.Первым делом подключаем к RaspberryPi (я бы рекомендовал использовать модель Raspberry Pi 3b) вашу камеру , желательно в USB порты которые находятся дальше от Ethernet порта

Затем подключаемся через Putty к вашей малинке, в программе нужно указать ip адрес малины и выбрать тип подключения SSH. После подключения нужно ввести ваш логин это как правило pi и пароль, если не меняли со стандартного то raspberry.Вводим команду - она открывает доступ пользователю под которым запущен homebridge к камере

bash
Копировать
sudo usermod -aG video pi

На всякий случай перезагрузите малинку и снова подключитесь к ее терминалу, теперь проверим работает ли ваша камера, для его вводим команду:

bash
Копировать
ffmpeg -f v4l2 -framerate 30 -video_size 1280x720 -i /dev/video0 -pix_fmt yuv420p  -c:v h264_omx  output.mkv

если камера работает то в терминале вы увидите следующее:

bash
Копировать
ffmpeg version N-90468-g0dc11d8bbd Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 6.3.0 (Raspbian 6.3.0-18 rpi1 deb9u1) 20170516
  configuration: --prefix=/usr/local --arch=armel --target-os=linux --enable-omx-rpi --enable-nonfree --enable-gpl --enable-libfdk-aac --enable-mmal --enable-libx264 --enable-decoder=h264 --enable-network --enable-protocol=tcp --enable-demuxer=rtsp
  libavutil      56. 12.100 / 56. 12.100
  libavcodec     58. 16.100 / 58. 16.100
  libavformat    58. 10.100 / 58. 10.100
  libavdevice    58.  2.100 / 58.  2.100
  libavfilter     7. 13.100 /  7. 13.100
  libswscale      5.  0.102 /  5.  0.102
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
[video4linux2,v4l2 @ 0x2822290] The driver changed the time per frame from 1/30 to 1/10
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 112245.051873, bitrate: 147456 kb/s
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, 147456 kb/s, 10 fps, 10 tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_omx))
Press [q] to stop, [?] for help
[h264_omx @ 0x2825700] Using OMX.broadcom.video_encode
Output #0, matroska, to 'output.mkv':
  Metadata:
    encoder         : Lavf58.10.100
    Stream #0:0: Video: h264 (h264_omx) (H264 / 0x34363248), yuv420p, 1280x720, q=2-31, 200 kb/s, 10 fps, 1k tbn, 10 tbc
    Metadata:
      encoder         : Lavc58.16.100 h264_omx
frame=    6 fps=0.0 q=-0.0 size=       1kB time=00:00:00.50 bitrate=  11.4kbits/frame=   11 fps= 11 q=-0.0 size=       1kB time=00:00:01.00 bitrate=   5.7kbits/frame=   16 fps= 10 q=-0.0 size=      24kB time=00:00:01.50 bitrate= 133.2kbits/frame=   21 fps= 10 q=-0.0 size=      24kB time=00:00:02.00 bitrate=  99.9kbits/frame=   26 fps= 10 q=-0.0 size=      51kB time=00:00:02.50 bitrate= 165.7kbits/frame=   31 fps= 10 q=-0.0 size=      51kB time=00:00:03.00 bitrate= 138.1kbits/frame=   36 fps= 10 q=-0.0 size=      51kB time=00:00:03.50 bitrate= 118.3kbits/frame=   41 fps= 10 q=-0.0 size=      86kB time=00:00:04.00 bitrate= 177.0kbits/frame=   46 fps= 10 q=-0.0 size=      86kB time=00:00:04.50 bitrate= 157.4kbits/frame=   51 fps= 10 q=-0.0 size=     118kB time=00:00:05.00 bitrate= 192.7kbits/frame=   56 fps= 10 q=-0.0 size=     118kB time=00:00:05.50 bitrate= 175.2kbits/frame=   61 fps= 10 q=-0.0 size=     118kB time=00:00:06.00 bitrate= 160.6kbits/frame=   66 fps= 10 q=-0.0 size=     148kB time=00:00:06.50 bitrate= 186.5kbits/frame=   71 fps= 10 q=-0.0 size=     148kB time=00:00:07.00 bitrate= 173.2kbits/frame=   76 fps= 10 q=-0.0 size=     177kB time=00:00:07.50 bitrate= 193.4kbits/frame=   81 fps= 10 q=-0.0 size=     177kB time=00:00:08.00 bitrate= 181.3kbits/frame=   86 fps= 10 q=-0.0 size=     206kB time=00:00:08.50 bitrate= 198.1kbits/frame=   92 fps= 10 q=-0.0 size=     206kB time=00:00:09.10 bitrate= 185.0kbits/frame=   96 fps= 10 q=-0.0 size=     206kB time=00:00:09.60 bitrate= 175.4kbits/frame=  101 fps= 10 q=-0.0 size=     235kB time=00:00:10.10 bitrate= 190.7kbits/frame=  105 fps=9.9 q=-0.0 Lsize=     262kB time=00:00:10.60 bitrate= 202.1kbits/s speed=   1x
video:260kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.688294%

для остановки нажмите q, а в папке /home/pi/ будет лежать файл output.mkv - если его скачать например с помощью программы WinSCP, то можно  посмотреть его в медиаплеере.Если ничего из вышеуказанного не получилось, то скорее всего ваша камера не поддерживается ядром Linux на котором работает малинка, тогда можно попробовать поискать драйвера для нее в интернете.Если с видео все  порядке, то переходим к подключению камеры к homebridge - для этого добавляем в ваш config.json следующие строки, не забывая про правильное форматирование:

json
Копировать
{
"platform": "Camera-ffmpeg",
      "cameras": [ {
                    "name": "Камера Web",
                    "videoConfig": {
                        "source": "-f v4l2 -r 20 -s 1280x720 -i /dev/video0",
                        "maxStreams": 2,
                        "maxWidth": 1280,
                        "maxHeight": 720,
                        "maxFPS": 20,
                        "maxBitrate": 1536,
                        "vcodec": "h264_omx"
                    }
                }
             ]
}

Перезапускайте бридж и добавляйте камеру в Дом - в приложении жмем на " " в верхнем правом углу,
далее добавить аксессуар и затем выбирайте "Нет кода или не можете сканировать?"  - появится камера, тапаете по ней и вводите пин код от вашего моста. На этом все - камера будет работать. Теперь можете поместить ее в комнату с датчиком движения и на датчике активировать "Допуск уведомлений". Когда датчик зафиксирует движение, то вам на телефон придет уведомление с кадром с камеры, по тапу на которое у вас откроется прямая трансляция с камеры. 


Вернуться назад
Вернуться назад