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

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
| Обзор | Видеокамеры, экшн-камеры и все для них

Здравствуйте друзья. В этом обзоре я хочу рассмотреть вопрос подключения 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<br />name: Alfawiseonvif<br />host: 192.168.0.190<br />username: admin<br />password: admin<br />port: 8080
- platform: mjpeg<br />mjpeg_url: http://192.168.0.190/snap.jpg<br />name: Alfawisejpeg<br />username: admin<br />password: admin
- platform: ffmpeg<br />name: Alfawisertsp<br />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<br />trigger:<br />- platform: event<br />event_type: click<br />event_data:<br />entity_id: binary_sensor.switch_158d0001e8a244<br />click_type: single <br />action: <br />- delay: 00:00:01<br />- service: camera.snapshot<br />data:<br />entity_id: camera.alfawise<br />filename: "/config/www/cam_captures/alfawise.jpg"<br />- delay: 00:00:05<br />- service: notify.telegram<br />data:<br />title: "Alfawise"<br />message: "Фотография" <br />data:<br />photo:<br />- file: /config/www/cam_captures/alfawise.jpg

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

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

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

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

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

- alias: enter_photo_on<br />initial_state: true<br />trigger:<br />- platform: event<br />event_type: timer.finished<br />event_data:<br />entity_id: timer.camphoto<br />action:<br />- service: automation.turn_on<br />entity_id: automation.enter_photo

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

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

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

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

5 комментариев

A
Добрый день. Я заранее извиняюсь за возможно глупый вопрос, просто для меня это будет первый опыт использования данной программы и мне многое не понятно. В частности, пытаюсь подключить 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
A
пытаюсь пол вечера осуществить Ваш проект не выходит. постоянно выдает сообщение при проверке конфигурации
/home/homeassistant/.homeassistant/configuration.yaml: Config file not found: /home/homeassistant/.homeassistant/includes/camera.yaml
у меня установлен homeassistan на а не hassio. Возможно есть какие нибудь нюансы?
1507278702933555@facebook
Не должно быть, все должно подхватывать. Попробуйте вложить все в одну папку с configuration.yaml — и уберите везде ссылку на includes.
З
А какой командой делается карточка камеры, уже в ui-lovelace?

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

Сейчас на главной

Новости

Публикации

Первый гревел Shulz: изучаем прототип велосипеда The Lightning

Бренд Shulz наконец-то дал возможность всесторонне рассмотреть, что из себя будет представлять первый гревел компании. Выпущенный видеоролик-анонс состоит из двух частей. В первой ведущий канала...

С какой скоростью надо ездить по лужам

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

Почему на современных стиральных машиных нельзя отключить отжим, и как это исправить вручную

Если на моделях стиральных машин 7-10 летней давности управление оборотами отжима (вплоть до 0) было базовой возможностью, то у современной техники подобная функция встречается всё реже. Но для...

Как можно узнать, сколько герц в экране Айфона и на что они влияют

В мире смартфонов происходит настоящая революция, связанная с частотой обновления экранов. Долгое время стандартом считались 60 Гц, но теперь производители, включая Apple, переходят на более...

Как одеваться в жаркую погоду, чтобы было комфортно

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

Обзор MobaPad M6S: максимально удобная альтернатива Joy-Conn для Nintendo Switch

Над альтернативой для штатных Joy-Conn игровой консоли Nintendo Switch работали сразу несколько производителей, причем относительного успеха добился каждый из них, но по возможностям лучше, чем...