Alfawise 1080P и интеграция IP-камер в Home Assistant

Здравствуйте друзья.

В этом обзоре я хочу рассмотреть вопрос подключения IP камер к системе управления умным домом Home Assistant, взяв в качестве примера наружную камеру от Alfawise, которая является клоном довольно известного китайского бренда Escam. Метод показанный в обзоре можно использовать для любых IP камер с стандартными протоколами передачи видеопотока. Начнем с камеры - 

Где купить

GearBest — на момент написания обзора, распродажа по $34.99

Упаковка

Коробка ничем не примечательная, коробка из переработанного картона, надпись IP Camera — почти в традициях китайского нонейма, но все же название бренда на коробке имеется.

Привыкнув к качественной и продуманной упаковке от Xiaomi и ее суббрендов, немного странно видеть такую вот картинку, где все насыпом.

Что в коробке

Тем не менее, противоударный пакет для камеры присутствует, да и сама коробка при пересылке совершенно не пострадала. Кроме камеры в комплекте блок питания, комплект крепежа, ethernet кабель и инструкция

Блок питания с евровилкой, на 12 Вольт, максимальный ток — 1А. В ходе испытаний я фиксировал мощность не более 4 Ватт.

Камера имеет одну съемную внешнюю антенну, которая идет в комплекте, не забыл производитель и про три шурупа и дюбеля, а также шестигранник для регулировки положения камеры.
Внешний вид

Камера представляет собой классический “кирпичик” — прямоугольный  корпус влагозащищенный по стандарту IP66 и предназначенный для наружной установки.

Диапазон рабочих температур (℃): -30-60 Deg.C
Относительная влажность (%) RH: 10%-90%

Объектив камеры имеет угол обзора в 110 градусов, камера оснащена 2 МП матрицей которая снимает с разрешением 1920 * 1080 с частотой 15 кадров в секунду, используя кодек H.264. Кольцо из 18 инфракрасных светодиодов, имеют заявленную дальность подсветки в 15 метров. Подсветка хорошо видна невооруженным глазом.

Размер камеры — 20см * 6 см * 6 см, она довольно компактная, что хорошо видно в сравнении со спичечным коробком.

В нижней части камеры находится металлическая крышка, которая крепится на два винта.  Крышка изнутри имеет резиновую прокладку, для защиты от влаги.

Открыв крышку — получаем вид на электронную начинку камеры и слот для  Micro SD карты.

Под объективом камеры находится датчик освещенности. Кабель камеры — разделяется на три части.  Один конец — это порт Ethernet, для проводного подключения к сети, если есть такая возможность. Второй — разъем для подключения блока питания и третий — закрытая крышкой кнопка сброса.

Подключение

Для подключения камеры, используется приложение CamHi, тоже самое что применяется для работы камер EsCam и некторых других. Перед подключением нужно найти сеть с названием IPCAM — цифры и подключится к ней, используя пароль 01234567.

После этого, запускаем ранее установленное приложение, нажимаем добавить камеру, запускаем мастер поиска в сети с логином и паролем admin / admin, и соединяемся с камерой.

После того, как с камерой установлено соединение, нужно перейти в настройки камеры, нажав на шестеренку справа, там выбрать настройки wi-fi, и запустить поиск wi-fi сетей.

Далее — выбираем нужную wi-fi сеть, подключаемся к ней введя пароль и получаем онлайн доступ к камере, который доступен из любой точки мира, где есть интернет.

Картинка с камеры — довольно неплохая, данные передаются практически без таймлага, сверху и снизу опции, например качество видео потока, SD или HD. Если у вас нормальный канал с интернет, то разницы в скорости между SD и HD не будет, а вот в качестве картинке — она будет существенно лучше. Так же имеются опции по перевороту и зеркалированию изображения в кадре.  Приложение универсальное, и имеет возможность подключения разных камер, поэтому есть опции зуммирования и фокуса. Опции сохранения точек поворота и наклона головки камеры — что в данной модели конечно не работает. Есть опция управления съемкой, например можно принудительно отключить съемку в ИК освещении для получения цветной картинки.

В приложении имеется режим обнаружения движения в кадре, причем область кадра можно задавать. По факту обнаружения — есть выбор опций — отправка пуш уведомления, запись видео на карту памяти — пишется 15 секунд, отправка 1,2 или 3 фото на e-mail или ftp, сохранение на внешний ftp видео фрагмента.

 

В приложение можно настроить битрейт для основного и дополнительного видеопотока. Включить постоянную запись видео с камеры — любого из потоков, ролики длительностью от 15 секунд до 15 минут. Можно просмотреть занятое место и отформатировать карту памяти.

В приложении имеется доступ к локальному альбому фотографий, и хранилищу камері с видеороликами. Видна их продолжительность, тревожные ролики выделены красным шрифтом. Отсюда можно их скачать на телефон и сразу преобразовать в mp4 файлы которые можно просматривать любым проигрывателем.

Камера имеет встроенный веб сервер, для корректного получения видеопотока надо будет скачать и установить по компонент, по ссылке на приветственной странице.  Язык по умолчанию китайский — переключается на английский.  Здесь есть все те же настройки что и в приложении, но в более расширенном виде. Вот так выглядит страница настройки видеопотоков.  Для камеры можно установить фиксированный IP адрес, что сбережет место в пуле статических адресов роутера. На этой странице задаются порты для веб сервера и стандартных видеопотоков. Имеется страница настройки видеопотока в стандарте onvif.

На карту памяти камера пишет файлы с расширением .264, но такой способ передачи данных — вряд ли будет востребован, учитывая то, что карта памяти скрыта за металлической крышкой на винтах.  После преобразования в приложении, получаются видеофайлы разрешением 1920*1080 и частотой 18 кадров в секунду. Микрофона в камере нет, видео без звука.

Видео как по мне — довольно не плохое как для бюджетной камеры. Достаточная детализация и скорость, видно по экрану телевизора.  Режим в ИК подсветке — похуже, но в целом тоже вполне достаточный. Примеры съемки — смотрите в видеоверсии обзора, в конце статьи.

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


Интеграция

Если с протоколом onvif особенных трудностей нет, порт можно настроить в приложении, то адрес для rtsp и mjpeg — нужно поискать. Я для этого использую сайт ispyconnect — где есть большая база производителей. Нужные строки я нашел в разделе камер от Escam — клоном которого является эта камера Alfawise. Нужная строка генерируется на сайте по исходным параметрам.

Для проверки корректности подключения я использовал плагин для hassio — который называется motioneye. Сначала нашел адрес обновляемой картинки в jpg.  Потом подобрал параметры потока rtsp. Здесь это удобно делать просто на лету, можно использовать метод проб и ошибок.

Параметры камеры прописываются в разделе camera, основного конфига системы, или, как в моем примере — в отдельно вынесенном файле. Вот так выглядят три варианта для платформ mjpeg, ffmpeg для потока rtsp и onvif.

— platform: onvif
name: Alfawiseonvif
host: 192.168.0.190
username: admin
password: admin
port: 8080

— platform: mjpeg
mjpeg_url: http://192.168.0.190/snap.jpg
name: Alfawisejpeg
username: admin
password: admin

— platform: ffmpeg
name: Alfawisertsp
input: -rtsp_transport tcp -i rtsp://admin:admin@192.168.0.190/11

Особой разницы при использовании в Home Assistant — я не увидел, так выглядит основное окно системы с тремя подключенными камерами.


Пример сценария

Рассмотрим пример сценария в котором по однократному нажатию на беспроводную кнопку — бинарный датчик с событием клик

Запускается действие — camera.snapshot, указываем ID нужной камеры и путь куда сохранять файл. Папки создаются один раз вручную. При необходимости имя может быть динамическое — например с указанием времени используя сенсор time.  После этого, я даю 5 секунд, с запасом, для сохранения файла, и используя службу notify отправляю снимок в телеграмм. Аналогично можно отправлять на email.

— alias: photo_alfawise
trigger:
— platform: event
event_type: click
event_data:
entity_id: binary_sensor.switch_158d0001e8a244
click_type: single
action:
— delay: 00:00:01
— service: camera.snapshot
data:
entity_id: camera.alfawise
filename: "/config/www/cam_captures/alfawise.jpg"
— delay: 00:00:05
— service: notify.telegram
data:
title: «Alfawise»
message: «Фотография»
data:
photo:
— file: /config/www/cam_captures/alfawise.jpg

А это мой реальный, рабочий скрипт, который запускается из сценария по открытию входной двери — три фотографии с трех камер время задержек выставлено экспериментально.

photo_door_t:
sequence:
— service: camera.snapshot
data:
entity_id: camera.alfawise
filename: "/config/www/cam_captures/alfawise.jpg"
— delay: 00:00:01
— service: camera.snapshot
data:
entity_id: camera.xiaofang
filename: "/config/www/cam_captures/xiaofang.jpg"
— service: camera.snapshot
data:
entity_id: camera.reolink
filename: "/config/www/cam_captures/reolink.jpg"
— delay: 00:00:05
— service: notify.telegram
data:
title: «Дверь»
message: «Фотография»
data:
photo:
— file: /config/www/cam_captures/xiaofang.jpg
— file: /config/www/cam_captures/reolink.jpg
— file: /config/www/cam_captures/alfawise.jpg

Вот мой рабочий сценарий, который по событию открытия двери, генерирует сообщение с датой и временем события, потом запускает скрипт который делает фото, а далее — запуск трехминутного таймера и отключение самого себя.

— alias: enter_photo
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_158d000119378d
from: 'off'
to: 'on'
action:
— service: notify.telegram
data:
title: «Дверь»
message: «Входная дверь открыта в {{ states('sensor.time__date') }}»
— service: script.turn_on
entity_id: script.photo_door_t
— service: timer.start
entity_id: timer.camphoto
— service: automation.turn_off
entity_id: automation.enter_photo

Чтобы не генерить мусорные сообщения, если дверь открывается несколько раз, сценарий работает не чаще одного раза в три минуты, по таймеру, который по завершению включает сценарий обратно.

— alias: enter_photo_on
initial_state: true
trigger:
— platform: event
event_type: timer.finished
event_data:
entity_id: timer.camphoto
action:
— service: automation.turn_on
entity_id: automation.enter_photo

И вот результат отработки сценария по открытию двери — сначала приходит сообщение с временем и датой, после этого три фотографии с разных точек, показывая кто пришел или ушел.

Используя шаги описанные в этом обзоре, аналогично можно интегрировать практически любую IP камеру с стандартными протоколами, для работы в системе Home Assistant.

Видеоверсия обзора:

На этом все, спасибо за внимание

 

Об авторе
+3 0 7232 4
Автор 1507278702933555@facebook Рейтинг +285.65 Сила 726.44
Блог Видеокамеры, экшн-камеры и все для них 47 66 RSS

4 комментария

Alieksandr_h
Добрый день. Я заранее извиняюсь за возможно глупый вопрос, просто для меня это будет первый опыт использования данной программы и мне многое не понятно. В частности, пытаюсь подключить ip камеру, вернее камеру подключил, она работает, все ок. В настоящий момент пытаюсь настроить отправку картинки в telegramпри нажатии кнопки aqara, по аналогии как у вас.
Вызывают вопросы следующие моменты:
— как вы вынесли отдельный Вы отдельно вынесли настройки камеры в отдельный файл? Что указали в configuration.yaml, чтобы они работали. Я все настройки сразу прописал configuration.yaml. Хочу реализовать по аналогии как у Вас.
— не могу понять, как запускается действие — camera.snapshot, вернее куда вносить настройки? Можете указать путь?
— также непонятно куда вносятся настройки скрипта.
Насколько я понял действие и скрипт, явно не связаны с файлом configuration.yaml?
Извините, мне просто негде больше спросить.
1507278702933555@facebook
Здравствуйте.

Ответ Alieksandr_h на комментарий
отдельно вынесли настройки камеры


В файле configuration.yaml в разделе camera: — где вы прописывали камеру, я прописал путь к файлу —
camera: !include includes/camera.yaml
Создал папку include (вложенную в папку /config/ где находится configuration.yaml) и в ней создал camera.yaml — в нем уже и прописывал камеры — это позволяет не загромождать configuration.yaml

Ответ Alieksandr_h на комментарий
как запускается действие — camera.snapshot


Как и любое другое действие — в разделе action: сценария или в скрипте — я сдела в скрипте мне так удобнее

Ответ Alieksandr_h на комментарий
также непонятно куда вносятся настройки скрипта


Скрипт — по сути это просто отдельно вынесенный action сценария, просто с возможностью ручного запуска и вызова из разных сценариев, так удобнее. Изначально путь к ним прописан в configuration.yaml —
script: !include scripts.yaml — т.е. в отдельный файл scripts.yaml в папке /config/. У меня скриптов много, и одним файлом не обойтись, я изменил путь на папку
script: !include_dir_merge_named includes/scripts
то есть все файлы .yaml находящиеся в папке /config/includes/scripts/ -распознаются системой как скрипты.
Работает все так, при открытии входной двери — автоматизация запускает скрипт
## Фото при входе
— alias: 01_enter_photo
initial_state: true
trigger:
## Открытие входной двери
platform: state
entity_id: binary_sensor.door_window_sensor_158d000119378d
from: 'off'
to: 'on'
action:
— service: script.turn_on
entity_id: script.01_photo_door_t
А скрипт — запускает фотографии с камер (с трех сразу) и отправку их в телеграмм —
01_photo_door_t:
sequence:
— service: notify.telegram
data:
title: «Дверь»
message: «Входная дверь открыта в {{ states('sensor.time_date') }}»
— service: camera.snapshot
data:
entity_id: camera.alfawise
filename: "/config/www/cam_captures/alfawise.jpg"
— delay: 00:00:01
— service: camera.snapshot
data:
entity_id: camera.xiaofang
filename: "/config/www/cam_captures/xiaofang.jpg"
— service: camera.snapshot
data:
entity_id: camera.reolink
filename: "/config/www/cam_captures/reolink.jpg"
— delay: 00:00:10
— service: notify.telegram
data:
title: «Дверь»
message: «Фотография»
data:
photo:
— file: /config/www/cam_captures/xiaofang.jpg
— file: /config/www/cam_captures/reolink.jpg
— file: /config/www/cam_captures/alfawise.jpg
Alieksandr_h
пытаюсь пол вечера осуществить Ваш проект не выходит. постоянно выдает сообщение при проверке конфигурации
/home/homeassistant/.homeassistant/configuration.yaml: Config file not found: /home/homeassistant/.homeassistant/includes/camera.yaml
у меня установлен homeassistan на а не hassio. Возможно есть какие нибудь нюансы?
1507278702933555@facebook
Не должно быть, все должно подхватывать. Попробуйте вложить все в одну папку с configuration.yaml — и уберите везде ссылку на includes.

Добавить комментарий